|
@@ -37,6 +37,8 @@ uint16_t TimeParam2 = 0;
|
|
bool megatec_send = true;
|
|
bool megatec_send = true;
|
|
UPS_value_t UPS;
|
|
UPS_value_t UPS;
|
|
|
|
|
|
|
|
+static bool flag_buzzer_on = false;
|
|
|
|
+
|
|
enum {
|
|
enum {
|
|
NORMAL = 0x00,
|
|
NORMAL = 0x00,
|
|
VER_ERROR = 0x01,
|
|
VER_ERROR = 0x01,
|
|
@@ -75,6 +77,7 @@ const char *MegaTecCMD[] = {
|
|
"QPI\r",
|
|
"QPI\r",
|
|
"QS\r",
|
|
"QS\r",
|
|
"M\r",
|
|
"M\r",
|
|
|
|
+ "PDA\r",
|
|
};
|
|
};
|
|
|
|
|
|
extern bool flUpdateLog;
|
|
extern bool flUpdateLog;
|
|
@@ -577,9 +580,13 @@ void ups_version_response(char *data)
|
|
data++;
|
|
data++;
|
|
|
|
|
|
if (UPS.vertion[0] != 0) {
|
|
if (UPS.vertion[0] != 0) {
|
|
- return;
|
|
|
|
|
|
+ if(strncmp(data, UPS.vertion, strlen(UPS.vertion)) == 0){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ memset(UPS.vertion, 0, sizeof(UPS.vertion));
|
|
|
|
+
|
|
len = get_ups_param(data, ":", value);
|
|
len = get_ups_param(data, ":", value);
|
|
data += (len + 1);
|
|
data += (len + 1);
|
|
|
|
|
|
@@ -675,6 +682,22 @@ void ups_protocol_id_response(char *data)
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void ups_buzzer_cntrl_response(char *data)
|
|
|
|
+{
|
|
|
|
+ UPS.Present = true;
|
|
|
|
+ UPS.Flag_Present = true;
|
|
|
|
+ UPS.cnt_err_ups = 0;
|
|
|
|
+
|
|
|
|
+ if (strlen(data) != 0) {
|
|
|
|
+ if (strncmp(data, "(ACK", 4) == 0) {
|
|
|
|
+ flag_buzzer_on = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ DBG printf("UPS ups_buzzer_cntrl_parser_start: %s\r\n", data);
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
void ups_megatec_process_pdu(cmdMegaTecEnums_t command)
|
|
void ups_megatec_process_pdu(cmdMegaTecEnums_t command)
|
|
{
|
|
{
|
|
switch (command) {
|
|
switch (command) {
|
|
@@ -711,6 +734,9 @@ void ups_megatec_process_pdu(cmdMegaTecEnums_t command)
|
|
case ups_protocol_id_req:
|
|
case ups_protocol_id_req:
|
|
ups_protocol_id_response(ups_pdu.data);
|
|
ups_protocol_id_response(ups_pdu.data);
|
|
break;
|
|
break;
|
|
|
|
+ case ups_buzzer_cntrl:
|
|
|
|
+ ups_buzzer_cntrl_response(ups_pdu.data);
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -798,6 +824,20 @@ void request_task(void *params)
|
|
case ups_voltronic:
|
|
case ups_voltronic:
|
|
num_req = sizeof(voltronic_req);
|
|
num_req = sizeof(voltronic_req);
|
|
req = voltronic_req;
|
|
req = voltronic_req;
|
|
|
|
+#ifdef UPS_BUZZER_OFF
|
|
|
|
+ if (!flag_buzzer_on) {
|
|
|
|
+ if (megatec_send) {
|
|
|
|
+ memset(ups_pdu.data, 0, UPS_PDU_MAX_LEN);
|
|
|
|
+ megatec_send = false;
|
|
|
|
+ UPS.Flag_Present = false;
|
|
|
|
+ send_MegaTec_cmd(ups_buzzer_cntrl);
|
|
|
|
+ if (ups_megatec_rx_pdu()) {
|
|
|
|
+ ups_megatec_process_pdu(ups_buzzer_cntrl);
|
|
|
|
+ }
|
|
|
|
+ megatec_send = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
num_req = sizeof(kestar_req);
|
|
num_req = sizeof(kestar_req);
|