恭喜,你发布的帖子
发布于 2016-02-03 10:58:28
2楼
可以根据需要的数量, 在全局脚本定义BOOL数组和time_t数组, 全局脚本, 循环检查, time_t存放其实时间,超过宽度就复位;
需要使用的地方, 只要把相应的BOOL元素置1, 初试时间设定一下。就可以。
全局脚本250ms:
#define COUNT 5
#define WIDTH 5 //5s
extern BOOL flag[COUNT];
extern time_t timeOri[COUNT];
extern const char* tags[COUNT];
int i =0;
time_t ct = time(NULL); //current time (s);
for(i = 0; i != COUNT; ++i)
{
if(flag[i])
{
if(ct - timeOri[i] >= WIDTH) // width reached.
{
flag[i] = FALSE;
SetTagBit(tags[i], 0);
}
}
}
return 0;
}
BOOL flag[COUNT];
time_t timeOri[COUNT];
const char* tags[COUNT] = { "tag1", "tag2", "tag3", "tag4", "tag5"};
按钮脚本:
#define TAG "tag1"
#define COUNT 5
#define WIDTH 5 //5s
extern BOOL flag[COUNT];
extern time_t timeOri[COUNT];
extern const char* tags[COUNT];
int i = FindIndex(TAG);
if(-1 == i)
printf("Error.TagName %s cannot be found.
", TAG);
else
{
SetTagBit(TAG, 1);
flag[i] = TRUE;
timeOri[i] = time(NULL);
}
项目函数FindIndex如下:
#pragma option(mbcs)
int FindIndex(const char* p)
{
#define COUNT 5
extern const char* tags[COUNT];
int i = 0;
for(i = 0; i != COUNT; ++i)
{
if(!strcmp(p, tags[i]))
{
return i;
}
}
return -1;
}
好了, COUNT,和 Width可以做到头文件里, 就不用没处都声明了, 也可以做成全局变量, 这些工作自己搞吧。 以上的思路, 使用时, 只写一次代码, 然后通过变量连接替换变量即可。
精华帖版主置评:还算不错的思路, 有兴趣的可以一学。
请填写推广理由:
分享
只看
楼主