コード例 #1
0
ファイル: clock.c プロジェクト: ArcEye/RTAI
void *ClockChrono_Write(void *args)
{
	RT_TASK *mytask;
	Display_tDest receiver;
	MenageHmsh_tChain11 chain;
	mqd_t Screen;
	struct mq_attr sc_attrs = { MAX_MSGS, 12, 0, 0 };

 	if (!(mytask = rt_thread_init(nam2num("WRITE"), 1, 0, SCHED_FIFO, 0xF))) {
		printf("CANNOT INIT TASK ClockChronoWrite\n");
		exit(1);
	}

	Screen = mq_open("SCREEN", O_WRONLY | O_CREAT | O_NONBLOCK, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, &sc_attrs);
	printf("INIT TASK ClockChronoWrite %p.\n", mytask);

	mlockall(MCL_CURRENT | MCL_FUTURE);

	while(1) {
		Display_Get(&chain, &receiver);
		if (chain.chain[1] == 'e') {
			goto end;
		}
		if (!hide && !Pause) {
			mq_send(Screen, chain.chain, 12, 0);
		}
	}
end:
	mq_close(Screen);
 	rt_task_delete(mytask);
	printf("END TASK ClockChronoWrite %p.\n", mytask);
	return 0;
}
コード例 #2
0
ファイル: clock.c プロジェクト: cjecho/RTAI
static void ClockChrono_Write(long t)
{
	Display_tDest receiver;
	MenageHmsh_tChain11 chain;
	char buf[25] = "00:00:00   00:00:00:00";
	int i;

	while(1) {
		cpu_used[hard_cpu_id()]++;
		Display_Get(&chain, &receiver);

		if (receiver == destChrono) {
			for (i = 0; i < 11; i++) {
				buf[i+11] = chain.chain[i+1];
			}
		} else {
			for (i = 0; i < 8; i++) {
				buf[i] = chain.chain[i+1];
			}
		}
/*
		printk("\r%s K ",buf);
*/
			if (!hide && !pause) {
				rtf_put(Screen, chain.chain, 12);
			}
	}
}