TEST2
Dependencies: LCD_DISCO_F746NG QSPI_DISCO_F746NG TS_DISCO_F746NG
main.h
- Committer:
- tribal91
- Date:
- 2017-12-14
- Revision:
- 4:f872c1d94463
- Parent:
- 0:011a309655b5
File content as of revision 4:f872c1d94463:
#include "mbed.h" #include "LCD_DISCO_F746NG.h" #include "TS_DISCO_F746NG.h" #include "QSPI_DISCO_F746NG.h" #include "EthernetInterface.h" #include <ctype.h> #include <math.h> #define WRITE_READ_ADDR ((uint32_t)0x0050) #define QSPI_BASE_ADDR ((uint32_t)0x90000000) #define TIMEOUT_MINUS 600 #define LEN_PACK_9003 18 //длина пакета со временем #define LEN_PACK_9006 46 //длина пакета с инфой для ПУИ Thread threadEth; //поток для Eth Mutex flMut; //мютекс Serial pc(USBTX, USBRX, 115200); //для отладки Serial pc1(A4, A5, 2400); //com-порт1 Serial pc2(D1, D0, 2400); //com-порт2 static IWDG_HandleTypeDef IwdgHandle; //для иниц. wdt static const char* Mask = "255.0.0.0"; //маска подсети static const char* Gateway = "10.114.48.1"; //шлюз static char bufX[16] = "XXX.XXX.XXX.XXX"; osThreadId_t idThread2 = 0; //идентификатор потока Ticker tickerIrqSec, tickerConn, tickWdt; //таймеры событий LCD_DISCO_F746NG lcd; //экран TS_DISCO_F746NG ts; //тачпад TS_StateTypeDef TS_State; //состояние тачпада QSPI_DISCO_F746NG qspi; //flash_spi EthernetInterface eth; //сеть UDPSocket sock9003, sock9006; SocketAddress sockAddr; time_t sTime, s1Time, s2Time; //время RTC + для секундомеров tm t, tmuPui; //структура для времени short sec1 = 0, sec2 = 0, numStat1 = -1, numStat2 = -1, ind = 0; //секунды, № станций, индекс символа в меню "Сеть" unsigned int cntRecPack = 0; //кол-во принятых пакетов uint8_t funcTx = 0; char checkTh = 0; //счётчик проверки дочернего потока char readBuf[16], buf[10], buf1[10], buf2[10], bufPc1[3], bufPc2[3], bufSend1[3], bufSend2[3]; //для чтения из флеш, для отображ. RTC, //для отображ. секундомеров, буфера для отправки/приёма с ПУИ char* r; //для копирования в ip char* ip = "0.0.0.0"; //для хранения ip из flash bool brightness1 = 0, brightness2 = 0, flTime = 1, flSec1 = 0, flSec2 = 0, flTest = 0, fl1NP = 1, fl2NP = 1, flWork1 = 0, flWork2 = 0, visible = 1, flEth = 0, flRec1, flRec2, flRecT1 = 0, flRecT2 = 0, flWorkT1 = 0, flWorkT2 = 0, fl1 = 0, flWdtTh = 0, flCon1 = 0, flCon2 = 0, flNetW = 0, flLight = 0; //флаг яркости, флаги разрешения обновления таймеров, //флаг теста, флаги "+"/"-", флаги работы секундомеров, флаг отображ. кнопок, флаг связи с eth, флаги пакетов со станцией, //флаги пакета секундомеров, флаги отображ. секундомеров, флаг зависания доч. потока, флаги связи с ПУИ, //флаг меню "СЕТЬ", флаг меню "ЯРКОСТЬ" char* getStation(short); //определение названия станции void viewStation(short, bool); //вывод названия станции на экран void logo(); //эмблема нии тм void setClock(); //установка часов void viewTimerSec(); //секундомер для путей + RTC void mainWindow(); //отрисовка главного окна void settingBut(); //меню настроек void configWindow(); //окно настройки сети void drawSelector(); //отрисовка выбора яркости void drawIP(); //отрисовка эл-ов управления в меню "Сеть" int defSymbol(uint16_t, uint16_t); //определяем выбранный символ в меню "Сеть" void viewSymbol(short); //отображаем выбранный символ в меню "Сеть" void backFunc(); //возврат в основное меню bool checkIP(const char *); //проверка правильности ввода IP-адреса void pui1SetTime(int); //отправка времени на ПУИ1 void pui2SetTime(int); //отправка времени на ПУИ2 void sendStatPui1(short); //отправка станции на ПУИ1 void sendStatPui2(short); //отправка станции на ПУИ2 void workConn(); //уст-ка флага отсутствия связи с сервером void ansPui1(); //ответ от ПУИ1 void ansPui2(); //ответ от ПУИ2 void StartIWDG(int); //watchdog таймер для main()