なんかおかしい

Dependencies:   mbed

Revision:
1:5e06e6104734
Parent:
0:890389640538
--- a/main.cpp	Fri Feb 12 11:01:20 2021 +0000
+++ b/main.cpp	Mon Feb 15 13:09:07 2021 +0000
@@ -9,7 +9,8 @@
 
 
 void calsat_callback(char c);
-void calsat_callback(char c){
+void calsat_callback(char c)
+{
     pc.printf("%02hhx ",c);
 }
 
@@ -27,7 +28,7 @@
     int size;//累計の長さこれが32となったら1つのレジスタの設定が完了として次のレジスタの設定へ移る
     int register_num;//レジスタ番号
     int buf;
-    char command[128];
+    char command[512];
 
     const char* filename;
     FILE *fp;
@@ -44,6 +45,20 @@
     }
     //main関数内でコマンドが0x00の時にmainでbinary()を呼ぶと計算をしてuint_32型の値を返す
 
+
+    void packet(char data, int i)
+    {
+        printf("%d\r\n",i);
+        command[i] = data;
+
+        if(data == 0xfd && ( command[4] == 0x00 ||command[11] == 0x00 )) {
+
+            file_read(command);
+
+        }
+     
+    }
+
     void Shift_bit(uint32_t& Register, int Register_data, int Size)
     {
         Register |= (Register_data << Size);
@@ -63,6 +78,7 @@
         int l = 1;//行数
         uint32_t _register = 0;//最終的に欲しいレジスタの値.32ビット
         while ( fscanf(fp,"%[^,],%d,%d%d",name, &register_data,&length,&buf) != EOF ) {
+
             if(l == 1 || l == 14 || l == 21 || l == 26 || l == 36)
                 l++;
 
@@ -95,6 +111,7 @@
 
                 }
                 //printf("%s %d %d\n",name,register_data,length);
+
                 l++;
             }
         }
@@ -132,13 +149,7 @@
         return doppler_data / 1000000;
     }
 
-    void packet(char data, int i)
-    {
-        command[i] = data;
-        if(data == 0xfd && command[4] == 0x00) {
-            file_read(command);
-        }
-    }
+
 
     void show(uint32_t bin)
     {
@@ -157,17 +168,23 @@
 int main()
 {
     Serial device( p9, p10, 9600);
-    
+    int i = 0;
     while(1) {
         if(device.readable()) {
+
             calsat32 tmp;
-            int i = 0;
             char c = device.getc();
             calsat_callback(c);
             tmp.packet(c,i);
             printf("\r\n");
+
             i++;
-            
-        }
+           /* if(i == 256)
+            break;*/
+
+
+        }//printf("one packet done");
+    
     }
+    return 0;
 }