| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 | /********************************* (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>/*** @brief  Параметры обновления ПО  */typedef struct{  uint8_t loadMode; // 0 - основная прошивка, 1 - режим обновления ПО  uint8_t bootTry;  // Признак   } BOOT_PARAMS_t;/**  * @brief  Параметры сетевого подключения  */typedef struct{  char    ip[15];  char    gate[15];  char    mask[15];  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;  SNMP_t        sSnmp;  DEVICE_INFO_t sInfo;  FLAGS_t       sFlags;  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  Установить параметры SNMP по умолчанию  */void SETTINGS_SetSnmpDef(void);/**  * @brief  Установить Информацию об устройстве по умолчанию  */void SETTINGS_SetInfoDef(void);/**  * @brief  Установить флаги по умолчанию  */void SETTINGS_SetFlagsDef(void);/**  * @brief  Очистка сектора настроек  */void SETTINGS_EraseFlashSector(void);/**  * @brief  Сброс настроек в значения по умолчанию  */void SETTINGS_SetDefault(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) РОТЕК **********************************/
 |