|
@@ -26,6 +26,7 @@
|
|
|
#include "config_service.h"
|
|
|
#include "rtc.h"
|
|
|
#include "port_microrl.h"
|
|
|
+#include "hash.h"
|
|
|
|
|
|
#include "FreeRTOS.h"
|
|
|
#include "task.h"
|
|
@@ -68,7 +69,6 @@ char msg[MSG_LEN];
|
|
|
|
|
|
extern char STM_ID[33];
|
|
|
extern char STM_ID_HEX[12];
|
|
|
-uint8_t MAC[6];
|
|
|
|
|
|
/**
|
|
|
* @brief Общая структура настроек
|
|
@@ -316,27 +316,20 @@ void COM_SetMAC(void)
|
|
|
uint8_t octet1 = 0;
|
|
|
uint8_t octet2 = 0;
|
|
|
uint8_t octet3 = 0;
|
|
|
+ uint8_t octet4 = 0;
|
|
|
+ uint8_t octet5 = 0;
|
|
|
+ uint8_t len;
|
|
|
+ uint8_t hash[16];
|
|
|
|
|
|
- for (uint8_t i = 0; i < 4; i++)
|
|
|
- {
|
|
|
- octet1 ^= STM_ID_HEX[i];
|
|
|
- octet2 ^= STM_ID_HEX[i + 4];
|
|
|
- octet3 ^= STM_ID_HEX[i + 8];
|
|
|
- }
|
|
|
-
|
|
|
- /* Восьмой бит первого октета должен быть равен 0 */
|
|
|
-
|
|
|
-/* MAC[0] = octet1 & 0xFE;
|
|
|
- MAC[1] = octet2;
|
|
|
- MAC[2] = octet3;
|
|
|
-
|
|
|
- MAC[3] = 0x00;
|
|
|
- MAC[4] = 0x00;
|
|
|
- MAC[5] = 0x00;*/
|
|
|
+ md5hash(hash, STM_ID_HEX, sizeof(STM_ID_HEX));
|
|
|
|
|
|
+ octet1 = hash[0];
|
|
|
+ octet2 = hash[1];
|
|
|
+ octet3 = hash[2];
|
|
|
+ octet4 = hash[3];
|
|
|
+ octet5 = hash[4];
|
|
|
/* Устанавливаем MAC, но не сохраняем */
|
|
|
- snprintf(sSettings.sInfo.mac, MAC_LEN, "%02X-%02X-%02X-00-00-00", octet1 & 0xFE, octet2, octet3);
|
|
|
-
|
|
|
+ snprintf(sSettings.sInfo.mac, MAC_LEN, "EC-%02X-%02X-%02X-%02X-%02X", octet1, octet2, octet3, octet4, octet5);
|
|
|
}
|
|
|
|
|
|
/**
|