OSDN Git Service

記録パス設定 記録CH設定 ファイル書込タイミング
[scilog/scilog.git] / thread_rec.c
index ed228ab..b5bff1f 100644 (file)
@@ -87,14 +87,25 @@ int ProcRec(void)
        AdData  *d;
        FILE    *fp = NULL;
        char    buf[HIGH_WRITE_LEN_MAX+128];
-       
+       static int i = -1;
+       int     secw = 0;
+       int highw = 0;
+
+       // 書込タイミングを制御する
+       if (i != ad_ring_latest_get()) {
+               i = ad_ring_latest_get();
+               // データ取得
+               d = ad_ring_get(i);
+               if (d->t.tm_sec == 0) secw = 1;
+               if (d->t.tm_sec % HIGH_FLUSH_NUM == 0) highw = 1;
+       }
 //
 /**** 1secデータ記録
 */
        /*
-               パケットバッファにデータたまった?
+               パケットバッファにデータたまった? or 書込タイミング?
        */
-       if (ad_ring_num_get_sec() >= SEC_FLUSH_NUM) {
+       if (ad_ring_num_get_sec() >= SEC_FLUSH_NUM || secw) {
                // データ取り出し
                d = ad_ring_get(ad_ring_read_get_sec());
                // ファイルオープン
@@ -164,7 +175,7 @@ PDEBUG("\r\n");
        /*
                パケットバッファにデータたまった?
        */
-       if (ad_ring_num_get_high() >= HIGH_FLUSH_NUM) {
+       if (ad_ring_num_get_high() >= HIGH_FLUSH_NUM || highw) {
                // データ取り出し
                d = ad_ring_get(ad_ring_read_get_high());
                // ファイルオープン