Sector 0: 0x0800 0000 - 0x0800 3FFF (16кБт) Sector 1: 0x0800 4000 - 0x0800 7FFF (16кБт) - Основные настройки (SETTINGS) Sector 2: 0x0800 8000 - 0x0800 BFFF (16кБт) - Системные настройки (SETTINGS_SYS) Sector 3: 0x0800 C000 - 0x0800 FFFF (16кБт) Sector 4: 0x0801 8000 - 0x0801 FFFF (64кБт) Sector 5: 0x0802 0000 - 0x0803 FFFF (128кБт) Sector 6: 0x0804 0000 - 0x0805 FFFF (128кБт) ............................................ Sector 11: 0x080E 0000 - 0x080F FFFF (128кБт)
// Адреса структур настроек
#define SYS_SECTOR 0x08008000
#define SYS_CRC_ADDRESS 0x0800BF9C
0x0800 0000 - 0x0801 FFFF (128кБт) - IAP 0x0802 0000 - 0x0802 07FF (2кБт) - Основные настройки (SETTINGS) 0x0802 0800 - 0x0802 0FFF (2кБт) - Системные настройки (SETTINGS_SYS) 0x0802 1000 - 0x080X XXXX (кБт) - FW Итого: 772 кБт - занято
// Адреса структур настроек
#define SYS_SECTOR 0x08020800
#define SYS_CRC_ADDRESS 0x08020FFC
#define SETTINGS_SECTOR 0x08020000
TIM7 - используется для периодических измерений ADC TIM13 - используется в IAP для внешнего watchdog TIM6 - используется для подсчета uptime и ежесуточного watchdog
В корневом каталоге web-интерфейса (metrolog_modem_web_ui) выполнить:
npm install
Cборку web'a для основного FW:
npm run build:wui
Сборку web'a для IAP, указав версию IAP для отображения в web-интерфейсе:
npm run build:upload -- --iap=1.01
Собрать fsdata.c для FW (из корня проекта):
perl tools\makefsdata.pl fw\modules\http_server\ metrolog_modem_web_ui\dist\wui\
Собрать fsdata.c для IAP (из корня проекта):
perl tools\makefsdata.pl iap\modules\ethernet\ metrolog_modem_web_ui\dist\upload\
Для тестов можно запустить mosquitto-брокер в WSL или Linux:
$ sudo /etc/init.d/mosquitto start
Подписка на все топики:
$ sudo mosquitto_sub -t '#' -v
После подключения к брокеру контроллер подписывается на топик "/metrolog_server/serial number/command". В этот топик могут приходить следующие команды:
{ "cmd": "UPDATE" } - контроллер отправляет данные в топик /metrolog/[Серийный номер]/sensors
{ "cmd": "INFO" } - прислать все значения /metrolog/[Серийный номер]/info
{ "cmd": "SETTINGS" } - прислать все значения /metrolog/[Серийный номер]/settings
Отправка сообщений происходит в функции:
void mqtt_publish_topic(void)
Топики: /metrolog/serial number/ /metrolog/serial number/status /metrolog_server/serial number/command - топик основных команд модема
STM32: RTC_BKP_DR1 - loadMode (нужно ли обновляться или нет) RTC_BKP_DR2 - bootTry RTC_BKP_DR3 - факт обновления FW (пока не используется) RTC_BKP_DR19 - флаг синхронизации RTC
Artery: BPR_DATA1 - loadMode (нужно ли обновляться или нет) BPR_DATA2 - bootTry BPR_DATA3 - loadType BPR_DATA4 - флаг синхронизации RTC BPR_DATA5 - трафик gsm_tx_sim_1 BPR_DATA6 - трафик gsm_tx_sim_1 BPR_DATA7 - трафик gsm_rx_sim_1 BPR_DATA8 - трафик gsm_rx_sim_1 BPR_DATA9 - трафик gsm_tx_sim_2 BPR_DATA10 - трафик gsm_tx_sim_2 BPR_DATA12 - трафик gsm_rx_sim_2 BPR_DATA12 - трафик gsm_rx_sim_2 BPR_DATA13 - трафик ethernet_tx BPR_DATA14 - трафик ethernet_tx BPR_DATA15 - трафик ethernet_rx BPR_DATA16 - трафик ethernet_rx BPR_DATA17 - флаг обновления ПО. Выставляется в загрузчике
Кнопка Установка - SET:
Простое нажатие на статусе T0OK - гасит LED "Состояние" и начинает отправку UDP анонсов.
Удерживание 15 секунд в основном ПО - перезагрузка устройства
Кнопка Режим - MODE:
[x] Навести порядок в репо stm32
[x] Перенести суточный watchdog на аппаратный таймер stm32.
[x] Вывод логотипа на странице логина stm32
[x] Разобраться с зарядником в main.c.
[x] Новые параметры GSM в web-интерфейс.
[x] Новые параметры GSM в mqtt.
[x] Изменить настройки по умолчанию stm32.
[x] Вывод серийника на странице модема. stm32.
[x] Проверить обновление
[x] Единая логика MQTT stm32 и artery
Параметры трафика. Заменить JSON API.
Установка пароля
Параметры канала ethernet
Определение версии IAP