Kaynağa Gözat

[fix bug megatec] read tx buffer before starting data transmit

balbekova 5 yıl önce
ebeveyn
işleme
a51a454351
3 değiştirilmiş dosya ile 11 ekleme ve 7 silme
  1. 9 4
      modules/MegaTec/megatec.c
  2. 1 1
      modules/settings_api.c
  3. 1 2
      user/init_task.c

+ 9 - 4
modules/MegaTec/megatec.c

@@ -145,7 +145,7 @@ bool ups_megatec_rx_pdu(void)
 	ups_pdu.len = 0;
 
 	while ((ups_pdu.len < UPS_PDU_MAX_LEN) && (c != 0x0d)) {
-		c = ups_getchar(200);//portMAX_DELAY100
+		c = ups_getchar(100);//portMAX_DELAY200
 		if(c < 0)
 		{
 			ups_pdu.len = 0;
@@ -670,6 +670,8 @@ void request_task(void* params)
 	uint8_t voltronic_req[5] = {ups_status_req, ups_akb_info, ups_model_req, ups_version_req, ups_serial_req};//
 	uint8_t num_req = 0;
 	uint8_t *req;
+
+		ups_megatec_rx_pdu();
 		for(;;)
 		{
 			if(UPS.Present == true){
@@ -695,7 +697,7 @@ void request_task(void* params)
 				}
 			}
 
-			if(megatec_send){
+		/*	if(megatec_send){
 				memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
 				megatec_send= false;
 				UPS.Flag_Present = false;
@@ -704,7 +706,7 @@ void request_task(void* params)
 					ups_megatec_process_pdu(ups_protocol_id_req);
 
 				megatec_send=true;
-			}
+			}*/
 
 			switch(sSettings.UPS_Setting.type_ups){
 			case ups_kestar:
@@ -716,6 +718,8 @@ void request_task(void* params)
 				req = voltronic_req;
 				break;
 			default:
+				num_req = sizeof(kestar_req);
+				req = kestar_req;
 				break;
 			}
 
@@ -725,8 +729,9 @@ void request_task(void* params)
 					megatec_send= false;
 					UPS.Flag_Present = false;
 					send_MegaTec_cmd(req[i]);
-					if (ups_megatec_rx_pdu())
+					if (ups_megatec_rx_pdu()){
 						ups_megatec_process_pdu(req[i]);
+					}
 
 					megatec_send=true;
 				}

+ 1 - 1
modules/settings_api.c

@@ -142,7 +142,7 @@ void SETTINGS_SetUPSSettingsDef(void)
 {
   sSettings.UPS_Setting.Ucellmin = 1.67;
   sSettings.UPS_Setting.Ucellmax = 2.27;
-  sSettings.UPS_Setting.type_ups = ups_voltronic;//ups_kestar;
+  sSettings.UPS_Setting.type_ups = ups_kestar;
 }
 
 /**

+ 1 - 2
user/init_task.c

@@ -80,9 +80,8 @@ void InitTask(void *params)
 {
 // -----------------------------------------------------------------------------    
   InitUSART();
-  ups_megatec_init();
   log_init(false);
-
+  ups_megatec_init();
 // -----------------------------------------------------------------------------    
   //SETTINGS_SetDefaultDebug();
   //SETTINGS_SetAllDefault();