OSDN Git Service

GPSによるLinuxシステム時刻セット機能追加前のcommit
[scilog/scilog.git] / thread_disp.c
1 #include <stdio.h>
2
3 #include "ad_ring.h"
4 #include "lcd.h"
5
6 /*
7
8 */
9 static void scr_disp_time(AdData *d)
10 {
11         int     iLeft, iY;
12         char    buf[128];
13         struct tm *t;
14         
15         t = &(d->t);
16         iLeft = 0;
17         iY = 0;
18         /*      Time */
19         lcd_pos(iLeft, iY++);
20         sprintf(buf, "%02d/%02d/%02d %02d:%02d:%02d %02X",
21                 t->tm_year % 100, t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec,
22                 d->gps.valid);
23         lcd_print(buf);
24 }
25 /*
26
27 */
28 static void scr_disp_ad(AdData *d)
29 {
30         int     iLeft, iY;
31         char    buf[128];
32         int     ch = 0;
33         
34         iLeft = 0;
35         iY = 1;
36         for(ch = 0; ch < 3; ch++) {
37                 sprintf(buf, "%d% 8ld", ch+1, d->data1sec[ch]);
38                 lcd_pos(iLeft, iY++);
39                 lcd_print(buf);
40         }
41         iLeft = 10;
42         iY = 1;
43         for(ch = 3; ch < 6; ch++) {
44                 sprintf(buf, "%d% 8ld", ch+1, d->data1sec[ch]);
45                 lcd_pos(iLeft, iY++);
46                 lcd_print(buf);
47         }
48 }
49
50 void* thread_disp(void* pParam)
51 {
52         int     i;
53         AdData *d;
54
55         i = ad_ring_latest_get();
56 //      scr_init();
57         lcd_clear();
58         while(1) {
59                 // FG表示
60                 if (i != ad_ring_latest_get()) {
61                         i = ad_ring_latest_get();
62                         // データ取得
63                         d = ad_ring_get(i);
64                         // 時刻表示
65                         scr_disp_time(d);
66                         // AD表示
67                         scr_disp_ad(d);
68                 }
69                 usleep(100*1000);
70         }
71 }