Browse Source

[bt6708]add private mib

balbekova 6 years ago
parent
commit
cf563f6c57

+ 1 - 1
modules/Ethernet/private_mib_bt6706.c

@@ -6,7 +6,7 @@
  */
  */
 
 
 
 
-#if defined HARDWARE_BT6706 || HARDWARE_BT6708
+#if defined HARDWARE_BT6706
 
 
 #include "stm32f4xx.h"
 #include "stm32f4xx.h"
 #include "private_mib.h"
 #include "private_mib.h"

+ 351 - 0
modules/Ethernet/private_mib_bt6708.c

@@ -0,0 +1,351 @@
+/*
+ * private_mib_bt6708.c
+ *
+ *  Created on: 03.10.2018
+ *      Author: balbekova
+ */
+
+
+#if defined HARDWARE_BT6708
+
+#include "stm32f4xx.h"
+#include "private_mib.h"
+#include "parameters.h"
+#include "settings_api.h"
+#include "log.h"
+#include "megatec.h"
+
+#include "FreeRTOS.h"
+#include "task.h"
+
+#ifdef PRINTF_STDLIB
+#include <stdio.h>
+#endif
+#ifdef PRINTF_CUSTOM
+#include "tinystdio.h"
+#endif
+
+#include "lwip/apps/snmp_scalar.h"
+#include "lwip/apps/snmp.h"
+//#include "snmp_core.h"
+
+extern struct snmp_mib mib2;
+
+/**
+  * @brief  Общая структура настроек
+  */
+extern SETTINGS_t sSettings;
+
+
+static s16_t signal_get_value(struct snmp_node_instance* instance, void* value);
+static snmp_err_t signal_set_value(struct snmp_node_instance* instance, u16_t len, void* value);
+static snmp_err_t signal_set_test(struct snmp_node_instance* instance, u16_t len, void* value);
+
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.17  */
+static const struct snmp_scalar_node signal17 = SNMP_SCALAR_CREATE_NODE_READONLY(17, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.16  */
+static const struct snmp_scalar_node signal16 = SNMP_SCALAR_CREATE_NODE_READONLY(16, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.15  */
+static const struct snmp_scalar_node signal15 = SNMP_SCALAR_CREATE_NODE_READONLY(15, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.14  */
+static const struct snmp_scalar_node signal14 = SNMP_SCALAR_CREATE_NODE_READONLY(14, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.13  */
+static const struct snmp_scalar_node signal13 = SNMP_SCALAR_CREATE_NODE_READONLY(13, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.12  */
+static const struct snmp_scalar_node signal12 = SNMP_SCALAR_CREATE_NODE_READONLY(12, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.11  */
+static const struct snmp_scalar_node signal11 = SNMP_SCALAR_CREATE_NODE_READONLY(11, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.10  */
+static const struct snmp_scalar_node signal10 = SNMP_SCALAR_CREATE_NODE_READONLY(10, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.9  */
+static const struct snmp_scalar_node signal9 = SNMP_SCALAR_CREATE_NODE_READONLY(9, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.8  */
+static const struct snmp_scalar_node signal8 = SNMP_SCALAR_CREATE_NODE(8, SNMP_NODE_INSTANCE_WRITE_ONLY, SNMP_ASN1_TYPE_OCTET_STRING, NULL, signal_set_test, signal_set_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.7  */
+static const struct snmp_scalar_node signal7 = SNMP_SCALAR_CREATE_NODE(7, SNMP_NODE_INSTANCE_WRITE_ONLY, SNMP_ASN1_TYPE_INTEGER, NULL, signal_set_test, signal_set_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.6  */
+static const struct snmp_scalar_node signal6 = SNMP_SCALAR_CREATE_NODE_READONLY(6, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.5  */
+static const struct snmp_scalar_node signal5 = SNMP_SCALAR_CREATE_NODE_READONLY(5, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.4  */
+static const struct snmp_scalar_node signal4 = SNMP_SCALAR_CREATE_NODE_READONLY(4, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.3  */
+static const struct snmp_scalar_node signal3 = SNMP_SCALAR_CREATE_NODE(3, SNMP_NODE_INSTANCE_WRITE_ONLY, SNMP_ASN1_TYPE_INTEGER, NULL, signal_set_test, signal_set_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.2  */
+static const struct snmp_scalar_node signal2 = SNMP_SCALAR_CREATE_NODE(2, SNMP_NODE_INSTANCE_WRITE_ONLY, SNMP_ASN1_TYPE_INTEGER, NULL, signal_set_test, signal_set_value);
+
+/* signal .1.3.6.1.4.1.41752.911.5.1.1  */
+static const struct snmp_scalar_node signal1 = SNMP_SCALAR_CREATE_NODE_READONLY(1, SNMP_ASN1_TYPE_OCTET_STRING, signal_get_value);
+
+
+// signals .1.3.6.1.4.1.41752.911.5.1
+static const struct snmp_node* const signals_nodes[] = {
+	&signal1.node.node,
+	&signal2.node.node,
+	&signal3.node.node,
+	&signal4.node.node,
+	&signal5.node.node,
+	&signal6.node.node,
+	&signal7.node.node,
+	&signal8.node.node,
+	&signal9.node.node,
+	&signal10.node.node,
+	&signal11.node.node,
+	&signal12.node.node,
+	&signal13.node.node,
+	&signal14.node.node,
+	&signal15.node.node,
+	&signal16.node.node,
+	&signal17.node.node,
+};
+static const struct snmp_tree_node signals_node = SNMP_CREATE_TREE_NODE(1, signals_nodes);
+
+// bt_6702 .1.3.6.1.4.1.41752.911.5
+static const struct snmp_node* const bt6708_nodes[] = {
+  &signals_node.node
+};
+static const struct snmp_tree_node bt6708_node = SNMP_CREATE_TREE_NODE(5, bt6708_nodes);
+
+// swt .1.3.6.1.4.1.41752.911
+static const struct snmp_node* const swt_nodes[] = {
+  &bt6708_node.node
+};
+static const struct snmp_tree_node swt_node = SNMP_CREATE_TREE_NODE(911, swt_nodes);
+
+// rotek .1.3.6.1.4.1.41752
+static const struct snmp_node* const rotek_nodes[] = {
+  &swt_node.node
+};
+static const struct snmp_tree_node rotek_node = SNMP_CREATE_TREE_NODE(41752, rotek_nodes);
+
+// enterprises .1.3.6.1.4.1
+static const struct snmp_node* const enterprises_nodes[] = {
+  &rotek_node.node
+};
+static const struct snmp_tree_node enterprises_node = SNMP_CREATE_TREE_NODE(1, enterprises_nodes);
+
+// private .1.3.6.1.4
+static const struct snmp_node* const private_nodes[] = {
+  &enterprises_node.node
+};
+static const struct snmp_tree_node private_root = SNMP_CREATE_TREE_NODE(0, private_nodes);
+
+static const u32_t prvmib_base_oid[] = { 1,3,6,1,4 };
+static const struct snmp_mib private_mib = SNMP_MIB_CREATE(prvmib_base_oid, &private_root.node);
+
+
+
+
+void lwip_privmib_init(void)
+{
+    static const struct snmp_mib *my_snmp_mibs[] = {&mib2, &private_mib};
+
+    snmp_set_mibs(my_snmp_mibs, LWIP_ARRAYSIZE(my_snmp_mibs));
+}
+
+
+
+static s16_t signal_get_value(struct snmp_node_instance* instance, void* value)
+{
+	u8_t *paramStr = (u8_t*)value;
+	u8_t paramLength = 0;
+    u32_t oid = instance->node->oid; // id сигнала
+
+    switch (oid){
+	case 1: /* FWVersion */
+		GetVersionStr((char*)paramStr, &paramLength);
+		break;
+	case 4: /* UPSModel*/
+		GetUPSModelStr((char*)paramStr, &paramLength);
+		break;
+	case 5: /* UPSSerial*/
+		GetUPSSerialStr((char*)paramStr, &paramLength);
+		break;
+	case 6: /* UPSVersion*/
+		GetUPSVersionStr((char*)paramStr, &paramLength);
+		break;
+	case 9: /* IntTemp */
+		GetInternalTempStr((char*)paramStr, &paramLength);
+		break;
+	case 10: /* InFreq */
+		GetInputFreqStr((char*)paramStr, &paramLength);
+		break;
+	case 11: /* InVoltVAC */
+		GetInputVoltageStr((char*)paramStr, &paramLength);
+		break;
+	case 12: /* OutVoltVAC */
+		GetOutputVoltageStr((char*)paramStr, &paramLength);
+		break;
+	case 13: /* Power */
+		GetPowerStr((char*)paramStr, &paramLength);
+		break;
+	case 14: /* BatCap */
+		GetBatCapacityStr((char*)paramStr, &paramLength);
+		break;
+	case 15: /* BatTime */
+		GetRuntimeStr((char*)paramStr, &paramLength);
+		break;
+	case 16: /* ConnectMonitor */
+		GetConnectMonitorStr((char*)paramStr, &paramLength);
+		break;
+	case 17: /* Alarms */
+		GetAlarmStr((char*)paramStr, &paramLength);
+		break;
+	default:
+	break;
+    }
+
+    return paramLength;
+
+}
+
+static snmp_err_t signal_set_value(struct snmp_node_instance* instance, u16_t len, void* value)
+{
+
+	u32_t oid = instance->node->oid; // id сигнала
+	char *val_string;
+	char str[20];
+	int8_t res = 0;
+	s32_t val;
+
+     memset(str, 0, 20);
+
+    switch (oid)
+    {
+      case 2: /* RestoreSignal */
+        val = *(s32_t*)value;
+        if (val == 1) {
+      //	SNMP_SendUserTrap(DEVICE_RESTORED);
+  		log_event_data(LOG_SYSTEM_DEFCONFIG, "Администратор");
+  		vTaskDelay(500);
+  		SETTINGS_SetPartDefault();
+  		SETTINGS_Save();
+        }
+      break;
+      case 3: /* RebootSignal */
+        val = *(s32_t*)value;
+        if (val == 1){
+#ifndef BT6702_SERVICE
+  	//	SNMP_SendUserTrap(DEVICE_REBOOTED);
+  		log_event_data(LOG_SYSTEM_BOOT, "Администратор");
+
+  		vTaskDelay(1010);
+  		LOG_Disable();
+#endif
+  		NVIC_SystemReset();
+        }
+  	  break;
+  	case 7: /* BatTest */
+  	  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 :
+    	  return SNMP_ERR_GENERROR;
+      break;
+    };
+
+  return SNMP_ERR_NOERROR;
+}
+
+static snmp_err_t signal_set_test(struct snmp_node_instance* instance, u16_t len, void* value)
+{
+	snmp_err_t ret = SNMP_ERR_WRONGVALUE;
+    char *val_string;
+    int32_t val;
+    u32_t oid = instance->node->oid; // id сигнала
+
+    switch (oid)
+    {
+      case 2:
+        if ( len == sizeof(s32_t) )
+        {
+        	ret = SNMP_ERR_NOERROR;
+        }
+        break;
+
+      case 3:
+        if ( len == sizeof(s32_t) )
+        {
+        	ret = SNMP_ERR_NOERROR;
+        }
+        break;
+  	case 7: /* BatTest */
+  	   val = *((s32_t*)value);
+  	   if((val >= 0 && val <= 100) || val == 999){
+  		 ret = SNMP_ERR_NOERROR;
+  	   }
+  	  break;
+  	case 8: /* Shutdown UPS */
+  		if ( len <= 3 )
+  		{
+  		   val_string = (char*)value;
+  		   val_string[len] = 0;
+  		   if(atof(val_string) <= 10){
+  			 ret = SNMP_ERR_NOERROR;
+  		   }
+  		}
+  	  break;
+    };
+
+
+  return ret;
+}
+
+#endif
+

+ 45 - 16
modules/Ethernet/trap_api.c

@@ -76,11 +76,12 @@ void SNMP_InitTrapsBase(void)
   traps[DEVICE_REBOOTED].trapEnable = true;
   traps[DEVICE_REBOOTED].trapEnable = true;
   traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
   traps[DEVICE_REBOOTED].handle = GetVersionStr;//GetReboot; /* RebootSignal */
   
   
+#ifndef HARDWARE_BT6708
   /* 5. DI0Norm */ // +
   /* 5. DI0Norm */ // +
    traps[DI0_NORM].trapId = DI0_NORM;
    traps[DI0_NORM].trapId = DI0_NORM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[DI0_NORM].varbindId = 9;
   traps[DI0_NORM].varbindId = 9;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[DI0_NORM].varbindId = 10;
   traps[DI0_NORM].varbindId = 10;
 #endif
 #endif
    traps[DI0_NORM].trapEnable = true;
    traps[DI0_NORM].trapEnable = true;
@@ -90,7 +91,7 @@ void SNMP_InitTrapsBase(void)
    traps[DI0_ALARM].trapId = DI0_ALARM;
    traps[DI0_ALARM].trapId = DI0_ALARM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[DI0_ALARM].varbindId = 9;
   traps[DI0_ALARM].varbindId = 9;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[DI0_ALARM].varbindId = 10;
   traps[DI0_ALARM].varbindId = 10;
 #endif
 #endif
    traps[DI0_ALARM].trapEnable = true;
    traps[DI0_ALARM].trapEnable = true;
@@ -108,20 +109,23 @@ void SNMP_InitTrapsBase(void)
     traps[DO1_TOGGLED].trapEnable = true;
     traps[DO1_TOGGLED].trapEnable = true;
     traps[DO1_TOGGLED].handle = GetDOUT1StatusStr; /* State DO1 */
     traps[DO1_TOGGLED].handle = GetDOUT1StatusStr; /* State DO1 */
 
 
-#if	defined HARDWARE_BT6706 || HARDWARE_BT6708
+#if	defined HARDWARE_BT6706
     /* 8. DO1Toggle */ // +
     /* 8. DO1Toggle */ // +
     traps[DO2_TOGGLED].trapId = DO2_TOGGLED;
     traps[DO2_TOGGLED].trapId = DO2_TOGGLED;
     traps[DO2_TOGGLED].varbindId = 7;
     traps[DO2_TOGGLED].varbindId = 7;
     traps[DO2_TOGGLED].trapEnable = true;
     traps[DO2_TOGGLED].trapEnable = true;
     traps[DO2_TOGGLED].handle = GetDOUT2StatusStr; /* State DO2 */
     traps[DO2_TOGGLED].handle = GetDOUT2StatusStr; /* State DO2 */
+#endif
 #endif
 #endif
 
 
   /* 9. BatteryTemperatureNorm */ // +
   /* 9. BatteryTemperatureNorm */ // +
   traps[BATTERY_TEMPERATURE_NORM].trapId = BATTERY_TEMPERATURE_NORM;
   traps[BATTERY_TEMPERATURE_NORM].trapId = BATTERY_TEMPERATURE_NORM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[BATTERY_TEMPERATURE_NORM].varbindId = 10;
   traps[BATTERY_TEMPERATURE_NORM].varbindId = 10;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[BATTERY_TEMPERATURE_NORM].varbindId = 11;
   traps[BATTERY_TEMPERATURE_NORM].varbindId = 11;
+#elif defined HARDWARE_BT6708
+  traps[BATTERY_TEMPERATURE_NORM].varbindId = 9;
 #endif
 #endif
   traps[BATTERY_TEMPERATURE_NORM].trapEnable = true;
   traps[BATTERY_TEMPERATURE_NORM].trapEnable = true;
   traps[BATTERY_TEMPERATURE_NORM].handle = GetInternalTempStr; /* BatteryTemperature */  
   traps[BATTERY_TEMPERATURE_NORM].handle = GetInternalTempStr; /* BatteryTemperature */  
@@ -130,8 +134,10 @@ void SNMP_InitTrapsBase(void)
   traps[BATTERY_TEMPERATURE_ALARM].trapId = BATTERY_TEMPERATURE_ALARM;
   traps[BATTERY_TEMPERATURE_ALARM].trapId = BATTERY_TEMPERATURE_ALARM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[BATTERY_TEMPERATURE_ALARM].varbindId = 10;
   traps[BATTERY_TEMPERATURE_ALARM].varbindId = 10;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[BATTERY_TEMPERATURE_ALARM].varbindId = 11;
   traps[BATTERY_TEMPERATURE_ALARM].varbindId = 11;
+#elif defined HARDWARE_BT608
+  traps[BATTERY_TEMPERATURE_ALARM].varbindId = 9;
 #endif
 #endif
   traps[BATTERY_TEMPERATURE_ALARM].trapEnable = true;
   traps[BATTERY_TEMPERATURE_ALARM].trapEnable = true;
   traps[BATTERY_TEMPERATURE_ALARM].handle = GetInternalTempStr; /* BatteryTemperature */
   traps[BATTERY_TEMPERATURE_ALARM].handle = GetInternalTempStr; /* BatteryTemperature */
@@ -140,8 +146,10 @@ void SNMP_InitTrapsBase(void)
   traps[LINE_ALARM].trapId = LINE_ALARM;
   traps[LINE_ALARM].trapId = LINE_ALARM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[LINE_ALARM].varbindId = 12;
   traps[LINE_ALARM].varbindId = 12;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[LINE_ALARM].varbindId = 13;
   traps[LINE_ALARM].varbindId = 13;
+#elif defined HARDWARE_BT6708
+  traps[LINE_ALARM].varbindId = 11;
 #endif
 #endif
   traps[LINE_ALARM].trapEnable = true;
   traps[LINE_ALARM].trapEnable = true;
   traps[LINE_ALARM].handle = GetInputVoltageStr; /* LineAlarm */
   traps[LINE_ALARM].handle = GetInputVoltageStr; /* LineAlarm */
@@ -150,8 +158,10 @@ void SNMP_InitTrapsBase(void)
   traps[LINE_NORM].trapId = LINE_NORM;
   traps[LINE_NORM].trapId = LINE_NORM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[LINE_NORM].varbindId = 12;
   traps[LINE_NORM].varbindId = 12;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[LINE_NORM].varbindId = 13;
   traps[LINE_NORM].varbindId = 13;
+#elif defined HARDWARE_BT6708
+  traps[LINE_NORM].varbindId = 11;
 #endif
 #endif
   traps[LINE_NORM].trapEnable = true;
   traps[LINE_NORM].trapEnable = true;
   traps[LINE_NORM].handle = GetInputVoltageStr; /* LineNorm */
   traps[LINE_NORM].handle = GetInputVoltageStr; /* LineNorm */
@@ -160,8 +170,10 @@ void SNMP_InitTrapsBase(void)
   traps[LOW_BAT_ALARM].trapId = LOW_BAT_ALARM;
   traps[LOW_BAT_ALARM].trapId = LOW_BAT_ALARM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[LOW_BAT_ALARM].varbindId = 15;
   traps[LOW_BAT_ALARM].varbindId = 15;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[LOW_BAT_ALARM].varbindId = 16;
   traps[LOW_BAT_ALARM].varbindId = 16;
+#elif defined HARDWARE_BT6708
+  traps[LOW_BAT_ALARM].varbindId = 14;
 #endif
 #endif
   traps[LOW_BAT_ALARM].trapEnable = true;
   traps[LOW_BAT_ALARM].trapEnable = true;
   traps[LOW_BAT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
   traps[LOW_BAT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
@@ -170,8 +182,10 @@ void SNMP_InitTrapsBase(void)
   traps[LOW_BAT_NORM].trapId = LOW_BAT_NORM;
   traps[LOW_BAT_NORM].trapId = LOW_BAT_NORM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[LOW_BAT_NORM].varbindId = 15;
   traps[LOW_BAT_NORM].varbindId = 15;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[LOW_BAT_NORM].varbindId = 16;
   traps[LOW_BAT_NORM].varbindId = 16;
+#elif defined HARDWARE_BT6708
+  traps[LOW_BAT_NORM].varbindId = 14;
 #endif
 #endif
   traps[LOW_BAT_NORM].trapEnable = true;
   traps[LOW_BAT_NORM].trapEnable = true;
   traps[LOW_BAT_NORM].handle = GetBatCapacityStr; /* LowBatNorm */
   traps[LOW_BAT_NORM].handle = GetBatCapacityStr; /* LowBatNorm */
@@ -180,8 +194,10 @@ void SNMP_InitTrapsBase(void)
   traps[POWER_ALARM].trapId = POWER_ALARM;
   traps[POWER_ALARM].trapId = POWER_ALARM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[POWER_ALARM].varbindId = 14;
   traps[POWER_ALARM].varbindId = 14;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[POWER_ALARM].varbindId = 15;
   traps[POWER_ALARM].varbindId = 15;
+#elif defined HARDWARE_BT6708
+  traps[POWER_ALARM].varbindId = 13;
 #endif
 #endif
   traps[POWER_ALARM].trapEnable = true;
   traps[POWER_ALARM].trapEnable = true;
   traps[POWER_ALARM].handle = GetPowerStr; /* PowerAlarm */
   traps[POWER_ALARM].handle = GetPowerStr; /* PowerAlarm */
@@ -190,8 +206,10 @@ void SNMP_InitTrapsBase(void)
   traps[POWER_NORM].trapId = POWER_NORM;
   traps[POWER_NORM].trapId = POWER_NORM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[POWER_NORM].varbindId = 14;
   traps[POWER_NORM].varbindId = 14;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[POWER_NORM].varbindId = 15;
   traps[POWER_NORM].varbindId = 15;
+#elif defined HARDWARE_BT6708
+  traps[POWER_NORM].varbindId = 13;
 #endif
 #endif
   traps[POWER_NORM].trapEnable = true;
   traps[POWER_NORM].trapEnable = true;
   traps[POWER_NORM].handle = GetPowerStr; /* PowerNorm */
   traps[POWER_NORM].handle = GetPowerStr; /* PowerNorm */
@@ -200,8 +218,10 @@ void SNMP_InitTrapsBase(void)
   traps[CONNECT_MONITOR_ALARM].trapId = CONNECT_MONITOR_ALARM;
   traps[CONNECT_MONITOR_ALARM].trapId = CONNECT_MONITOR_ALARM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[CONNECT_MONITOR_ALARM].varbindId = 17;
   traps[CONNECT_MONITOR_ALARM].varbindId = 17;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[CONNECT_MONITOR_ALARM].varbindId = 18;
   traps[CONNECT_MONITOR_ALARM].varbindId = 18;
+#elif defined HARDWARE_BT6708
+  traps[CONNECT_MONITOR_ALARM].varbindId = 16;
 #endif
 #endif
   traps[CONNECT_MONITOR_ALARM].trapEnable = true;
   traps[CONNECT_MONITOR_ALARM].trapEnable = true;
   traps[CONNECT_MONITOR_ALARM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
   traps[CONNECT_MONITOR_ALARM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
@@ -210,8 +230,10 @@ void SNMP_InitTrapsBase(void)
   traps[CONNECT_MONITOR_NORM].trapId = CONNECT_MONITOR_NORM;
   traps[CONNECT_MONITOR_NORM].trapId = CONNECT_MONITOR_NORM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[CONNECT_MONITOR_NORM].varbindId = 17;
   traps[CONNECT_MONITOR_NORM].varbindId = 17;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[CONNECT_MONITOR_NORM].varbindId = 18;
   traps[CONNECT_MONITOR_NORM].varbindId = 18;
+#elif defined HARDWARE_BT6708
+  traps[CONNECT_MONITOR_NORM].varbindId = 16;
 #endif
 #endif
   traps[CONNECT_MONITOR_NORM].trapEnable = true;
   traps[CONNECT_MONITOR_NORM].trapEnable = true;
   traps[CONNECT_MONITOR_NORM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
   traps[CONNECT_MONITOR_NORM].handle = GetConnectMonitorStr;//GetConnectMonitorStr; /* ConnectMonitor */
@@ -220,8 +242,10 @@ void SNMP_InitTrapsBase(void)
   traps[BATTERY_CONNECT_ALARM].trapId = BATTERY_CONNECT_ALARM;
   traps[BATTERY_CONNECT_ALARM].trapId = BATTERY_CONNECT_ALARM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[BATTERY_CONNECT_ALARM].varbindId = 15;
   traps[BATTERY_CONNECT_ALARM].varbindId = 15;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[BATTERY_CONNECT_ALARM].varbindId = 16;
   traps[BATTERY_CONNECT_ALARM].varbindId = 16;
+#elif defined HARDWARE_BT6708
+  traps[BATTERY_CONNECT_ALARM].varbindId = 14;
 #endif
 #endif
   traps[BATTERY_CONNECT_ALARM].trapEnable = true;
   traps[BATTERY_CONNECT_ALARM].trapEnable = true;
   traps[BATTERY_CONNECT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
   traps[BATTERY_CONNECT_ALARM].handle = GetBatCapacityStr; /* LowBatAlarm */
@@ -230,8 +254,10 @@ void SNMP_InitTrapsBase(void)
   traps[BATTERY_CONNECT_NORM].trapId = BATTERY_CONNECT_NORM;
   traps[BATTERY_CONNECT_NORM].trapId = BATTERY_CONNECT_NORM;
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
   traps[BATTERY_CONNECT_NORM].varbindId = 15;
   traps[BATTERY_CONNECT_NORM].varbindId = 15;
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
   traps[BATTERY_CONNECT_NORM].varbindId = 16;
   traps[BATTERY_CONNECT_NORM].varbindId = 16;
+#elif defined HARDWARE_BT6708
+  traps[BATTERY_CONNECT_NORM].varbindId = 14;
 #endif
 #endif
   traps[BATTERY_CONNECT_NORM].trapEnable = true;
   traps[BATTERY_CONNECT_NORM].trapEnable = true;
   traps[BATTERY_CONNECT_NORM].handle = GetBatCapacityStr; /* LowBatNorm */
   traps[BATTERY_CONNECT_NORM].handle = GetBatCapacityStr; /* LowBatNorm */
@@ -288,9 +314,12 @@ struct snmp_obj_id  trap_oid = {11, {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0}};
 #ifdef HARDWARE_BT6702
 #ifdef HARDWARE_BT6702
 struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 2, 1}};
 struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
 struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 3, 1, 1}};
-#elif defined HARDWARE_BT6706 || HARDWARE_BT6708
+#elif defined HARDWARE_BT6706
 struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 4, 2, 1}};
 struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 4, 2, 1}};
 struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 4, 1, 1}};
 struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 4, 1, 1}};
+#elif defined HARDWARE_BT6708
+struct snmp_obj_id trapObjId = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 5, 2, 1}};
+struct snmp_obj_id varObjId  = {11, {1, 3, 6, 1, 4, 1, 41752, 911, 5, 1, 1}};
 #endif
 #endif
 /**
 /**
   * @brief  Отправка трапа с переменной, зарегистрированного в базе.
   * @brief  Отправка трапа с переменной, зарегистрированного в базе.

+ 3 - 1
modules/Ethernet/trap_api.h

@@ -29,12 +29,14 @@ typedef enum
   FW_VERSION_UPDATED,
   FW_VERSION_UPDATED,
   DEVICE_RESTORED,
   DEVICE_RESTORED,
   DEVICE_REBOOTED,
   DEVICE_REBOOTED,
+#ifndef HARDWARE_BT6708
   DI0_NORM,
   DI0_NORM,
   DI0_ALARM,
   DI0_ALARM,
   DO0_TOGGLED,
   DO0_TOGGLED,
   DO1_TOGGLED,
   DO1_TOGGLED,
-#if	defined HARDWARE_BT6706 || HARDWARE_BT6708
+#if	defined HARDWARE_BT6706
   DO2_TOGGLED,
   DO2_TOGGLED,
+#endif
 #endif
 #endif
   BATTERY_TEMPERATURE_NORM,
   BATTERY_TEMPERATURE_NORM,
   BATTERY_TEMPERATURE_ALARM,
   BATTERY_TEMPERATURE_ALARM,