|
@@ -13,6 +13,7 @@
|
|
|
#include "trap_api.h"
|
|
|
#include "common_config.h"
|
|
|
#include "log.h"
|
|
|
+#include "megatec.h"
|
|
|
|
|
|
#include "FreeRTOS.h"
|
|
|
|
|
@@ -29,6 +30,8 @@
|
|
|
*/
|
|
|
extern SETTINGS_t sSettings;
|
|
|
|
|
|
+extern float TimeParamFloat;
|
|
|
+
|
|
|
extern void ocstrncpy(u8_t *dst, u8_t *src, u16_t n);
|
|
|
|
|
|
char paramStr[255];
|
|
@@ -477,6 +480,7 @@ static void signals_set_value (struct obj_def *od, u16_t len, void *value)
|
|
|
uint32_t val;
|
|
|
char *val_string;
|
|
|
char str[20];
|
|
|
+ int8_t res = 0;
|
|
|
|
|
|
memset(str, 0, 20);
|
|
|
|
|
@@ -520,12 +524,47 @@ static void signals_set_value (struct obj_def *od, u16_t len, void *value)
|
|
|
}
|
|
|
break;
|
|
|
case 7: /* BatTest */
|
|
|
- val_string = (char*)value;
|
|
|
-
|
|
|
+ val =*((s32_t*)value);
|
|
|
+ if(val == 0){
|
|
|
+ res = ups_metac_service_pdu(ups_cancel_test);
|
|
|
+ if(res == 1){
|
|
|
+ log_event_data(LOG_TEST_UPS, "Администратор(Останов)");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(val > 0 && val < 100){
|
|
|
+ TimeParam = val;
|
|
|
+ res = ups_metac_service_pdu(ups_test_time);
|
|
|
+ if(res == 1){
|
|
|
+ log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(val == 100){
|
|
|
+ res = ups_metac_service_pdu(ups_test_10sec);
|
|
|
+ if(res == 1){
|
|
|
+ log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(val == 999){
|
|
|
+ res = ups_metac_service_pdu(ups_test_low_bat);
|
|
|
+ if(res == 1){
|
|
|
+ log_event_data(LOG_TEST_UPS, "Администратор (Запущен)");
|
|
|
+ }
|
|
|
+ }
|
|
|
break;
|
|
|
case 8: /* Shutdown UPS */
|
|
|
val_string = (char*)value;
|
|
|
-
|
|
|
+ float shtdn_val = atof(val_string);
|
|
|
+ if(shtdn_val == 0){
|
|
|
+ res = ups_metac_service_pdu(ups_cancel_shut_down);
|
|
|
+ if(res == 1)
|
|
|
+ log_event_data(LOG_SHUTDOWN_UPS, "Администратор(Останов)");
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ TimeParamFloat = shtdn_val;
|
|
|
+ res = ups_metac_service_pdu(ups_shutdown);
|
|
|
+ if(res == 1)
|
|
|
+ log_event_data(LOG_SHUTDOWN_UPS, "Администратор");
|
|
|
+ }
|
|
|
break;
|
|
|
default :
|
|
|
break;
|
|
@@ -546,6 +585,7 @@ static u8_t signals_set_test (struct obj_def *od, u16_t len, void *value)
|
|
|
{
|
|
|
u8_t id, set_ok;
|
|
|
char *val_string;
|
|
|
+ int32_t val;
|
|
|
|
|
|
LWIP_UNUSED_ARG(value);
|
|
|
set_ok = 0;
|
|
@@ -567,7 +607,7 @@ static u8_t signals_set_test (struct obj_def *od, u16_t len, void *value)
|
|
|
}
|
|
|
break;
|
|
|
case 5: /* DO1 */
|
|
|
- if ( len >= 1 )
|
|
|
+ if ( len <= 1 )
|
|
|
{
|
|
|
val_string = (char*)value;
|
|
|
if(atoi(val_string) <= 1){
|
|
@@ -577,7 +617,7 @@ static u8_t signals_set_test (struct obj_def *od, u16_t len, void *value)
|
|
|
}
|
|
|
break;
|
|
|
case 6: /* DO2 */
|
|
|
- if ( len >= 1 )
|
|
|
+ if ( len <= 1 )
|
|
|
{
|
|
|
val_string = (char*)value;
|
|
|
if(atoi(val_string) <= 1){
|
|
@@ -587,10 +627,19 @@ static u8_t signals_set_test (struct obj_def *od, u16_t len, void *value)
|
|
|
}
|
|
|
break;
|
|
|
case 7: /* BatTest */
|
|
|
-
|
|
|
+ val = *((s32_t*)value);
|
|
|
+ if((val >= 0 && val <= 100) || val == 999){
|
|
|
+ set_ok = 1;
|
|
|
+ }
|
|
|
break;
|
|
|
case 8: /* Shutdown UPS */
|
|
|
-
|
|
|
+ if ( len <= 3 )
|
|
|
+ {
|
|
|
+ val_string = (char*)value;
|
|
|
+ if(atof(val_string) <= 10){
|
|
|
+ set_ok = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
break;
|
|
|
};
|
|
|
|