TEST2

Dependencies:   LCD_DISCO_F746NG QSPI_DISCO_F746NG TS_DISCO_F746NG

Committer:
yefremovv
Date:
Thu Dec 14 09:40:28 2017 +0000
Revision:
0:011a309655b5
testSkav

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yefremovv 0:011a309655b5 1 #include "mbed.h"
yefremovv 0:011a309655b5 2 #include "LCD_DISCO_F746NG.h"
yefremovv 0:011a309655b5 3 #include "TS_DISCO_F746NG.h"
yefremovv 0:011a309655b5 4 #include "QSPI_DISCO_F746NG.h"
yefremovv 0:011a309655b5 5 #include "EthernetInterface.h"
yefremovv 0:011a309655b5 6 #include <ctype.h>
yefremovv 0:011a309655b5 7 #include <math.h>
yefremovv 0:011a309655b5 8 #define WRITE_READ_ADDR ((uint32_t)0x0050)
yefremovv 0:011a309655b5 9 #define QSPI_BASE_ADDR ((uint32_t)0x90000000)
yefremovv 0:011a309655b5 10 #define TIMEOUT_MINUS 600
yefremovv 0:011a309655b5 11 #define LEN_PACK_9003 18 //длина пакета со временем
yefremovv 0:011a309655b5 12 #define LEN_PACK_9006 46 //длина пакета с инфой для ПУИ
yefremovv 0:011a309655b5 13
yefremovv 0:011a309655b5 14 Thread threadEth; //поток для Eth
yefremovv 0:011a309655b5 15 Mutex flMut; //мютекс
yefremovv 0:011a309655b5 16
yefremovv 0:011a309655b5 17 Serial pc(USBTX, USBRX, 115200); //для отладки
yefremovv 0:011a309655b5 18 Serial pc1(A4, A5, 2400); //com-порт1
yefremovv 0:011a309655b5 19 Serial pc2(D1, D0, 2400); //com-порт2
yefremovv 0:011a309655b5 20
yefremovv 0:011a309655b5 21 static IWDG_HandleTypeDef IwdgHandle; //для иниц. wdt
yefremovv 0:011a309655b5 22 static const char* Mask = "255.0.0.0"; //маска подсети
yefremovv 0:011a309655b5 23 static const char* Gateway = "10.114.48.1"; //шлюз
yefremovv 0:011a309655b5 24 static char bufX[16] = "XXX.XXX.XXX.XXX";
yefremovv 0:011a309655b5 25 osThreadId_t idThread2 = 0; //идентификатор потока
yefremovv 0:011a309655b5 26 Ticker tickerIrqSec, tickerConn, tickWdt; //таймеры событий
yefremovv 0:011a309655b5 27 LCD_DISCO_F746NG lcd; //экран
yefremovv 0:011a309655b5 28 TS_DISCO_F746NG ts; //тачпад
yefremovv 0:011a309655b5 29 TS_StateTypeDef TS_State; //состояние тачпада
yefremovv 0:011a309655b5 30 QSPI_DISCO_F746NG qspi; //flash_spi
yefremovv 0:011a309655b5 31 EthernetInterface eth; //сеть
yefremovv 0:011a309655b5 32 UDPSocket sock9003, sock9006;
yefremovv 0:011a309655b5 33 SocketAddress sockAddr;
yefremovv 0:011a309655b5 34 time_t sTime, s1Time, s2Time; //время RTC + для секундомеров
yefremovv 0:011a309655b5 35 tm t, tmuPui; //структура для времени
yefremovv 0:011a309655b5 36 short sec1 = 0, sec2 = 0, numStat1 = -1, numStat2 = -1, ind = 0; //секунды, № станций, индекс символа в меню "Сеть"
yefremovv 0:011a309655b5 37 unsigned int cntRecPack = 0; //кол-во принятых пакетов
yefremovv 0:011a309655b5 38 uint8_t funcTx = 0;
yefremovv 0:011a309655b5 39 char checkTh = 0; //счётчик проверки дочернего потока
yefremovv 0:011a309655b5 40 char readBuf[16], buf[10], buf1[10], buf2[10], bufPc1[3], bufPc2[3], bufSend1[3], bufSend2[3]; //для чтения из флеш, для отображ. RTC,
yefremovv 0:011a309655b5 41 //для отображ. секундомеров, буфера для отправки/приёма с ПУИ
yefremovv 0:011a309655b5 42 char* r; //для копирования в ip
yefremovv 0:011a309655b5 43 char* ip = "0.0.0.0"; //для хранения ip из flash
yefremovv 0:011a309655b5 44 bool brightness1 = 0, brightness2 = 0, flTime = 1, flSec1 = 0, flSec2 = 0, flTest = 0, fl1NP = 1, fl2NP = 1,
yefremovv 0:011a309655b5 45 flWork1 = 0, flWork2 = 0, visible = 1, flEth = 0, flRec1, flRec2, flRecT1 = 0, flRecT2 = 0, flWorkT1 = 0,
yefremovv 0:011a309655b5 46 flWorkT2 = 0, fl1 = 0, flWdtTh = 0, flCon1 = 0, flCon2 = 0, flNetW = 0, flLight = 0; //флаг яркости, флаги разрешения обновления таймеров,
yefremovv 0:011a309655b5 47 //флаг теста, флаги "+"/"-", флаги работы секундомеров, флаг отображ. кнопок, флаг связи с eth, флаги пакетов со станцией,
yefremovv 0:011a309655b5 48 //флаги пакета секундомеров, флаги отображ. секундомеров, флаг зависания доч. потока, флаги связи с ПУИ,
yefremovv 0:011a309655b5 49 //флаг меню "СЕТЬ", флаг меню "ЯРКОСТЬ"
yefremovv 0:011a309655b5 50
yefremovv 0:011a309655b5 51 char* getStation(short); //определение названия станции
yefremovv 0:011a309655b5 52 void viewStation(short, bool); //вывод названия станции на экран
yefremovv 0:011a309655b5 53 void logo(); //эмблема нии тм
yefremovv 0:011a309655b5 54 void setClock(); //установка часов
yefremovv 0:011a309655b5 55 void viewTimerSec(); //секундомер для путей + RTC
yefremovv 0:011a309655b5 56 void mainWindow(); //отрисовка главного окна
yefremovv 0:011a309655b5 57 void settingBut(); //меню настроек
yefremovv 0:011a309655b5 58 void configWindow(); //окно настройки сети
yefremovv 0:011a309655b5 59 void drawSelector(); //отрисовка выбора яркости
yefremovv 0:011a309655b5 60 void drawIP(); //отрисовка эл-ов управления в меню "Сеть"
yefremovv 0:011a309655b5 61 int defSymbol(uint16_t, uint16_t); //определяем выбранный символ в меню "Сеть"
yefremovv 0:011a309655b5 62 void viewSymbol(short); //отображаем выбранный символ в меню "Сеть"
yefremovv 0:011a309655b5 63 void backFunc(); //возврат в основное меню
yefremovv 0:011a309655b5 64 bool checkIP(const char *); //проверка правильности ввода IP-адреса
yefremovv 0:011a309655b5 65 void pui1SetTime(int); //отправка времени на ПУИ1
yefremovv 0:011a309655b5 66 void pui2SetTime(int); //отправка времени на ПУИ2
yefremovv 0:011a309655b5 67 void sendStatPui1(short); //отправка станции на ПУИ1
yefremovv 0:011a309655b5 68 void sendStatPui2(short); //отправка станции на ПУИ2
yefremovv 0:011a309655b5 69 void workConn(); //уст-ка флага отсутствия связи с сервером
yefremovv 0:011a309655b5 70 void ansPui1(); //ответ от ПУИ1
yefremovv 0:011a309655b5 71 void ansPui2(); //ответ от ПУИ2
yefremovv 0:011a309655b5 72 void StartIWDG(int); //watchdog таймер для main()