📄 watch.cpp
字号:
#include <vxworks.h>
#include <tasklib.h>
#include <syslib.h>
#include <tylib.h>
#include <fiolib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define START 0
#define STOP 1
#define PAUSE 2
void refresh();
int tick = 0;
int state = STOP;
int stdIN, stdOUT;
int watch()
{
char c;
int cnt;
stdIN = ioGlobalStdGet(0);
stdOUT = ioGlobalStdGet(1);
ioctl(stdOUT, FIOFLUSH, 0);
ioctl(stdOUT, FIOSETOPTIONS, OPT_RAW);
while (1)
{
/* 延迟 0.1 秒 */
taskDelay(sysClkRateGet()/10);
/* 如果当前状态不是停止且不是暂停的话那么计数加一 */
if (state == START)
tick += 1;
refresh();
ioctl (stdIN, FIONREAD, (int) &cnt);
if (cnt)
{
read(stdIN, &c, 1);
if (c == 'q')
{
break;
}
else if (c == '5')
{
// write(stdOUT, "+", 1);
if (state == STOP)
state = START;
else
state = STOP;
}
else if (c == '6')
{
if (state == START)
state = PAUSE;
else if (state == PAUSE)
state = START;
}
else if (c == '0')
{
tick = 0;
}
}
}
// write(stdOUT, "\n\rbye...\n\r", 8);
ioctl(stdOUT, FIOSETOPTIONS, OPT_TERMINAL);
return 0;
}
void refresh()
{
fdprintf(stdOUT, "%02d:%02d.%d\r", tick/600, tick/10%60, tick%10);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -