Quellcode durchsuchen

py test continue

Juraj Ďuďák vor 2 Jahren
Ursprung
Commit
53e204744a
4 geänderte Dateien mit 54 neuen und 41 gelöschten Zeilen
  1. 3 3
      Core/Src/app_adc.c
  2. 1 1
      Modules/nbus
  3. 31 27
      test/app.py
  4. 19 10
      test/comm.py

+ 3 - 3
Core/Src/app_adc.c

@@ -73,10 +73,10 @@ uint8_t mcu_adc_getSensorCount(){
  * @brief Return data from one or all sensors
  * @param sensor_index If is >0, return data from specified sensors.
  * If sensor_index=0, return data from all sensors.
- * @retval buber of bytes in written to array *data
+ * @retval number of bytes in written to array *data
  * @note data format for:
- * sensor_index=0  sensor1_index|sensor1_data[2B]|sensor2_index|sensor2_data[2B]|...
- * sensor_index>0  sensor_index|sensor_data[2B]
+ * sensor_index=0  sensor1_index[1B]|sensor1_data[2B]|sensor2_index[1B]|sensor2_data[2B]|...
+ * sensor_index>0  sensor_index[1B]|sensor_data[2B]
  */
 uint8_t mcu_adc_getData(uint8_t sensor_index, uint8_t *data){
 

+ 1 - 1
Modules/nbus

@@ -1 +1 @@
-Subproject commit e2b19551a533cecf768395769150a62d60c8d267
+Subproject commit 2a0f94d5cc4ec3d8778fd3a80d0b2dc11e07e79c

+ 31 - 27
test/app.py

@@ -30,7 +30,7 @@ class AppTest:
         resp = self.serial_port.request(self.module, self.sensor, (CMD_PARAM),[])     
 
     def cmd_sensor_cnt(self):
-        resp = self.serial_port.request(self.module, 0, CMD_SENSOR_CNT,[])
+        resp = self.serial_port.request(self.module, 0, CMD_SENSOR_CNT,[])        
         return resp[3]
 
     def cmd_sensor_type(self, index):
@@ -50,16 +50,20 @@ class AppTest:
 
     def cmd_sensor_get_data(self, index):
         resp = self.serial_port.request(self.module, index, CMD_DATA,[])
-        h = resp[5] * 256 + resp[4]
+        if len(resp)>1:
+            h = resp[5] * 256 + resp[4]
         # print(hex(h))        
-        return h/4096*3.3
+            return h/4096*3.3
+        return 0
 
     def cmd_sensor_get_data_all(self, cnt):
         resp = self.serial_port.request(self.module, 0, CMD_DATA,[])
-        for i in range(cnt):
-            sen = resp[3+3*i]
-            h = resp[5+3*i] * 256 + resp[4+3*i]
-            print("FSR",sen,":\t", h/4096.0*3.3)
+        # print(resp)
+        if len(resp)>1:
+            for i in range(cnt):
+                sen = resp[3+3*i]
+                h = resp[5+3*i] * 256 + resp[4+3*i]
+                print("FSR",sen,":\t", h/4096.0*3.3)
         
         
 
@@ -93,41 +97,41 @@ if __name__ == "__main__":
     app.cmd_module_start()
 
     pocet = app.cmd_sensor_cnt()
-    
+    print("pocet senzorov=", pocet)
     app.cmd_sensor_get_data_all(pocet)
 
-    
+    # quit()
     for i in range(pocet):
         d=app.cmd_sensor_get_data(i+1)
         print("Data", i+1, ":\t", d)
     
 
-    #time.sleep(1)
+    time.sleep(1)
     app.cmd_module_stop()
     
     
     
-    # print("Sensor type")
-    # for i in range(pocet):
-    #     print(app.cmd_sensor_type(i+1))
-    # print("Sensors type")
-    # print(app.cmd_sensors_type(pocet))
-    # par = app.cmd_sensor_get_params(1)
-    # print(par)
+    print("Sensor type")
+    for i in range(pocet):
+        print(app.cmd_sensor_type(i+1))
+    print("Sensors type")
+    print(app.cmd_sensors_type(pocet))
+    par = app.cmd_sensor_get_params(1)
+    print(par)
 
     
-    # r=app.cmd_module_info(0xE1)
-    # print('NAME:' , r)    
-    # r=app.cmd_module_info(0xE2)
-    # print('TYPE', r)
+    r=app.cmd_module_info(0xE1)
+    print('NAME:' , r)    
+    r=app.cmd_module_info(0xE2)
+    print('TYPE', r)
         
-    # r=app.cmd_module_info(0xE4)
-    # print('FW', r)
+    r=app.cmd_module_info(0xE4)
+    print('FW', r)
 
-    # r=app.cmd_module_info(0xE5) 
-    # print('HW', r)
+    r=app.cmd_module_info(0xE5) 
+    print('HW', r)
     
-    # r=app.cmd_module_info(0xE3)    
-    # print("UUID", r)
+    r=app.cmd_module_info(0xE3)    
+    print("UUID", r)
     app.finish()
 

+ 19 - 10
test/comm.py

@@ -127,7 +127,10 @@ class SerialComm:
 
     def receive_response(self):
         data = []
+
         response_l = self.port.read(1)
+        if len(response_l) == 0:
+            return []
         response = self.port.read(ord(response_l))
 
         for bajt in response:
@@ -146,16 +149,22 @@ class SerialComm:
         self.callback('d', sensor, "\tRQ>", m)
         # SEND THE REQUEST
         # self.port.write(m)
-        self.port.write([m[0]]) # send legth of message
-        # usleep(5)
-        self.port.write(m[1:]) # send body of message
-
-#        if self.wait_to_response(long_answer) == 0:
-#            return []
-
-        data = self.receive_response()
-#        if not skip_check:
-#            self.check_respose(data)
+        has_response = False
+        counter = 0
+        while has_response == False:
+            self.port.write([m[0]]) # send legth of message
+            # usleep(5)
+            self.port.write(m[1:]) # send body of message
+            data = self.receive_response()
+            if len(data)>0:
+                has_response = True
+            counter = counter + 1
+            if counter > 5:
+                return []
+
+        if data[2] & 0x80 != 0:
+            print("Chyba", data[3])
+            return [data[3]]
         return data
 
     def read_bytes(self, num):