123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- /********************************* (C) РОТЕК ***********************************
- * @module settings_api
- * @file settings_api.h
- * @version 1.0.0
- * @date XX.XX.XXXX
- * $brief settings_api
- *******************************************************************************
- * @history Version Author Comment
- * XX.XX.XXXX 1.0.0 Telenkov D.A. First release.
- *******************************************************************************
- */
- /* Define to prevent recursive ----------------------------------------------*/
- #ifndef SETTINGS_API_H
- #define SETTINGS_API_H
- #include "stm32f4xx.h"
- #include <stdbool.h>
- #ifndef DEVICE_SERIAL
- #define DEVICE_SERIAL "7023000"
- #endif
- /**
- * @brief Параметры обновления ПО
- */
- typedef struct
- {
- uint8_t loadMode; // 0 - основная прошивка, 1 - режим обновления ПО
- uint8_t bootTry; // Признак
-
- } BOOT_PARAMS_t;
- /**
- * @brief Параметры сетевого подключения
- */
- typedef struct
- {
- char ip[16];
- char gate[16];
- char mask[16];
- uint8_t dhcpEnable; // 0 - DHCP отключен, 1 - включен
-
- } WEB_PARAMS_t;
- /**
- * @brief Параметры SNMP
- */
- typedef struct
- {
- char sysDescr[160];
- char readCommunity[20];
- char writeCommunity[20];
- char sysContact[50];
- char sysName[20];
- char sysLocation[110];
- char managerIP[20];
- char managerIP2[20];
- char managerIP3[20];
-
- } SNMP_t;
- /**
- * @brief Информация об устройстве
- */
- typedef struct
- {
- char productionData[40]; // Дата производства
- char mac[18]; // MAC адрес
- char serialNumber[16]; // Серийный номер
- char comments[110]; // Комментарии
-
- } DEVICE_INFO_t;
- /**
- * @brief Флаги, ключи и т.д.
- */
- typedef struct
- {
- bool netsettingsChanged; // Признак изменения сетевых настроек пользователем
- char testState[16]; // Статус производственного тестирования
- } FLAGS_t;
-
- /**
- * @brief Общая структура настроек
- */
- typedef struct
- {
- BOOT_PARAMS_t bootParams;
- WEB_PARAMS_t sWebParams;
- WEB_PARAMS_t sWebTempParams;
- DEVICE_INFO_t sInfo;
- uint32_t CritSecCRC;
- //uint32_t controlWorld; // Слово для контроля целостности структуры настроек
- } SETTINGS_t;
- /**
- * @brief
- * @retval
- */
- uint32_t SETTINGS_GetCritSecCRC(void);
- /**
- * @brief Установить параметры обновления ПО по умолчанию
- */
- void SETTINGS_SetBootParamsDef(void);
- /**
- * @brief Установить параметры сетевого подключения по умолчанию
- */
- void SETTINGS_SetWebParamsDef(void);
- /**
- * @brief Установить временные параметры сетевого подключения по умолчанию
- */
- void SETTINGS_SetTempWebParamsDef(void);
- /**
- * @brief Установить Информацию об устройстве по умолчанию
- */
- void SETTINGS_SetInfoDef(void);
- /**
- * @brief Очистка сектора настроек
- */
- void SETTINGS_EraseFlashSector(void);
- /**
- * @brief Сброс всех настроек в значения по умолчанию кроме сетевых настроек
- */
- void SETTINGS_SetPartDefault(void);
- /**
- * @brief Сброс всех настроек в значения по умолчанию
- */
- void SETTINGS_SetAllDefault(void);
- /**
- * @brief Установка настроек для отладки
- */
- void SETTINGS_SetDefaultDebug(void);
- /**
- * @brief Запись структуры настроек во flesh
- */
- void SETTINGS_Save(void);
- /**
- * @brief Загрузка структуры настроек из flesh
- */
- void SETTINGS_Load(void);
- /**
- * @brief
- */
- void SETTINGS_WriteToFlash(uint8_t *data, uint32_t size);
- /**
- * @brief
- */
- void SETTINGS_ReadFromFlash(uint8_t *data, uint32_t size);
- /**
- * @brief
- */
- uint32_t SETTINGS_GetCRC(void);
- /**
- * @brief Преобразует mac адрес строкового формата в массив uint8_t
- * @param mac - буфер для вывода mac адреса
- */
- void SETTINGS_GetMac(uint8_t *mac);
- /**
- * @brief Установить дату производства
- */
- void SETTINGS_SetProDate(char *proDate, uint8_t len);
- /**
- * @brief Установить статус тестирования "T2OK"
- */
- void SETTINGS_SetT2OK(void);
- /**
- * @brief Включить DHCP
- */
- void SETTINGS_SetDHCPOn(void);
- #endif /* #ifndef SETTINGS_API_H */
- /********************************* (C) РОТЕК **********************************/
|