|
@@ -141,25 +141,39 @@ void send_MegaTec_cmd(cmdMegaTecEnums_t command)
|
|
bool ups_megatec_rx_pdu(void)
|
|
bool ups_megatec_rx_pdu(void)
|
|
{
|
|
{
|
|
int c = 0;
|
|
int c = 0;
|
|
|
|
+ uint8_t cnt_answer = 0;
|
|
|
|
|
|
ups_pdu.len = 0;
|
|
ups_pdu.len = 0;
|
|
|
|
|
|
- while ((ups_pdu.len < UPS_PDU_MAX_LEN) && (c != 0x0d)) {
|
|
|
|
- c = ups_getchar(100);//portMAX_DELAY200
|
|
|
|
- if(c < 0)
|
|
|
|
- {
|
|
|
|
|
|
+ while(c >= 0){
|
|
|
|
+ c = ups_getchar(200);//portMAX_DELAY200
|
|
|
|
+ if(c >= 0){
|
|
ups_pdu.len = 0;
|
|
ups_pdu.len = 0;
|
|
- break;
|
|
|
|
|
|
+ memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
|
|
|
|
+ ups_pdu.data[ups_pdu.len++] = c;
|
|
|
|
+ while ((ups_pdu.len < UPS_PDU_MAX_LEN) && (c != 0x0d)) {
|
|
|
|
+ c = ups_getchar(100);//portMAX_DELAY200
|
|
|
|
+ if(c < 0)
|
|
|
|
+ {
|
|
|
|
+ ups_pdu.len = 0;
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ ups_pdu.data[ups_pdu.len++] = c;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ if(ups_pdu.len == 0){
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(++cnt_answer >= 5){
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
- ups_pdu.data[ups_pdu.len++] = c;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
DBG printf("UPS raw data: %s\r\n", ups_pdu.data);
|
|
DBG printf("UPS raw data: %s\r\n", ups_pdu.data);
|
|
DBG printf("UPS raw data len: %d\r\n", ups_pdu.len);
|
|
DBG printf("UPS raw data len: %d\r\n", ups_pdu.len);
|
|
|
|
|
|
- if (ups_pdu.len == 0)
|
|
|
|
- return false;
|
|
|
|
-
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -671,7 +685,7 @@ void request_task(void* params)
|
|
uint8_t num_req = 0;
|
|
uint8_t num_req = 0;
|
|
uint8_t *req;
|
|
uint8_t *req;
|
|
|
|
|
|
- ups_megatec_rx_pdu();
|
|
|
|
|
|
+ //ups_megatec_rx_pdu();
|
|
for(;;)
|
|
for(;;)
|
|
{
|
|
{
|
|
if(UPS.Present == true){
|
|
if(UPS.Present == true){
|
|
@@ -693,6 +707,7 @@ void request_task(void* params)
|
|
|
|
|
|
//memset(UPS.model, 0, 11);
|
|
//memset(UPS.model, 0, 11);
|
|
memset(UPS.vertion, 0, 11);
|
|
memset(UPS.vertion, 0, 11);
|
|
|
|
+ init_ups_rbuf();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|