Just a test

Dependencies:   BSP_DISCO_F769NI LCD_DISCO_F769NI lcd_log esp8266-driver

Fork of mbed-os-example-blinky-5 by Joscha Ihl

Committer:
joschaihl
Date:
Sun May 28 11:16:16 2017 +0000
Revision:
3:7c7587c666e1
Parent:
2:6a613cb4b302
Child:
4:7876f757c6e8
Records events on other targets

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joschaihl 3:7c7587c666e1 1 #if !FEATURE_LWIP
joschaihl 3:7c7587c666e1 2 #error [NOT_SUPPORTED] LWIP not supported for this target
joschaihl 3:7c7587c666e1 3 #endif
joschaihl 3:7c7587c666e1 4
joschaihl 0:2e946c38e476 5 #include "mbed.h"
joschaihl 1:361238d5a1bc 6 #include "stm32f769i_discovery.h"
joschaihl 1:361238d5a1bc 7 #include "stm32f769i_discovery_ts.h"
joschaihl 1:361238d5a1bc 8 #include "stm32f769i_discovery_lcd.h"
joschaihl 3:7c7587c666e1 9 #include "EthernetInterface.h"
joschaihl 3:7c7587c666e1 10 #include "TCPServer.h"
joschaihl 3:7c7587c666e1 11 #include "TCPSocket.h"
joschaihl 3:7c7587c666e1 12 #include "LCD_DISCO_F769NI.h"
joschaihl 3:7c7587c666e1 13 #include "lcd_log.h"
joschaihl 3:7c7587c666e1 14 #include <iostream>
joschaihl 2:6a613cb4b302 15 using namespace std;
joschaihl 3:7c7587c666e1 16 #define HTTP_STATUS_LINE "HTTP/1.0 200 OK"
joschaihl 3:7c7587c666e1 17 #define HTTP_HEADER_FIELDS "Content-Type: text/html; charset=utf-8"
joschaihl 3:7c7587c666e1 18 #define HTTP_MESSAGE_BODY "" \
joschaihl 3:7c7587c666e1 19 "<html>" "\r\n" \
joschaihl 3:7c7587c666e1 20 " <body style=\"display:flex;text-align:center\">" "\r\n" \
joschaihl 3:7c7587c666e1 21 " <div style=\"margin:auto\">" "\r\n" \
joschaihl 3:7c7587c666e1 22 " <h1>Hello World</h1>" "\r\n" \
joschaihl 3:7c7587c666e1 23 " <p>It works !</p>" "\r\n" \
joschaihl 3:7c7587c666e1 24 " </div>" "\r\n" \
joschaihl 3:7c7587c666e1 25 " </body>" "\r\n" \
joschaihl 3:7c7587c666e1 26 "</html>"
joschaihl 0:2e946c38e476 27
joschaihl 3:7c7587c666e1 28 #define HTTP_RESPONSE HTTP_STATUS_LINE "\r\n" \
joschaihl 3:7c7587c666e1 29 HTTP_HEADER_FIELDS "\r\n" \
joschaihl 3:7c7587c666e1 30 "\r\n" \
joschaihl 3:7c7587c666e1 31 HTTP_MESSAGE_BODY "\r\n"
joschaihl 3:7c7587c666e1 32
joschaihl 3:7c7587c666e1 33 TS_StateTypeDef TS_State = {0};
joschaihl 0:2e946c38e476 34 Serial pc(USBTX, USBRX);
joschaihl 3:7c7587c666e1 35 #define WIFI_RX PC_12
joschaihl 3:7c7587c666e1 36 #define WIFI_TX PD_2
joschaihl 3:7c7587c666e1 37
joschaihl 3:7c7587c666e1 38 //Serial wifi(WIFI_TX, WIFI_RX);
joschaihl 0:2e946c38e476 39
joschaihl 0:2e946c38e476 40 DigitalOut led1(LED1);
joschaihl 3:7c7587c666e1 41 LCD_DISCO_F769NI lcd;
joschaihl 3:7c7587c666e1 42 DigitalOut led_green(LED2);
joschaihl 0:2e946c38e476 43
joschaihl 0:2e946c38e476 44 void print_thread()
joschaihl 0:2e946c38e476 45 {
joschaihl 0:2e946c38e476 46 while (true) {
joschaihl 3:7c7587c666e1 47 Thread::wait(1000);
joschaihl 3:7c7587c666e1 48 printf("Hallo Welt!!!\n");
joschaihl 0:2e946c38e476 49 }
joschaihl 0:2e946c38e476 50 }
joschaihl 0:2e946c38e476 51
joschaihl 0:2e946c38e476 52 void led_thread() {
joschaihl 0:2e946c38e476 53 while(true) {
joschaihl 0:2e946c38e476 54 Thread::wait(200);
joschaihl 0:2e946c38e476 55 led1 = !led1;
joschaihl 0:2e946c38e476 56 }
joschaihl 0:2e946c38e476 57 }
joschaihl 0:2e946c38e476 58
joschaihl 3:7c7587c666e1 59 extern void LCD_LOG_SetHeader(uint8_t *Title);
joschaihl 3:7c7587c666e1 60
joschaihl 3:7c7587c666e1 61 void clock_thread() {
joschaihl 3:7c7587c666e1 62 char timestr[64] = "";
joschaihl 3:7c7587c666e1 63 while(1) {
joschaihl 3:7c7587c666e1 64 time_t seconds = time(NULL);
joschaihl 3:7c7587c666e1 65 sprintf(timestr, "Time = %s\0", ctime(&seconds));
joschaihl 3:7c7587c666e1 66 LCD_LOG_SetHeader((uint8_t *) timestr);
joschaihl 3:7c7587c666e1 67 Thread::wait(1000);
joschaihl 3:7c7587c666e1 68 }
joschaihl 3:7c7587c666e1 69
joschaihl 3:7c7587c666e1 70 }
joschaihl 3:7c7587c666e1 71
joschaihl 3:7c7587c666e1 72 void gui_thread2() {
joschaihl 3:7c7587c666e1 73
joschaihl 3:7c7587c666e1 74
joschaihl 3:7c7587c666e1 75 uint32_t i = 0;
joschaihl 3:7c7587c666e1 76
joschaihl 3:7c7587c666e1 77 BSP_LCD_Init();
joschaihl 3:7c7587c666e1 78 BSP_LCD_LayerDefaultInit(0, LCD_FB_START_ADDRESS);
joschaihl 3:7c7587c666e1 79 LCD_LOG_SetHeader((uint8_t *) "Das ist ein Test");
joschaihl 3:7c7587c666e1 80 //LCD_LOG_Init();
joschaihl 3:7c7587c666e1 81
joschaihl 3:7c7587c666e1 82 while(1) {
joschaihl 3:7c7587c666e1 83 led1 = 0;
joschaihl 3:7c7587c666e1 84 led_green = 1;
joschaihl 3:7c7587c666e1 85 printf("Test %d\n",i++ );
joschaihl 3:7c7587c666e1 86
joschaihl 3:7c7587c666e1 87
joschaihl 3:7c7587c666e1 88 led1 = 1;
joschaihl 3:7c7587c666e1 89 led_green = 0;
joschaihl 3:7c7587c666e1 90 }
joschaihl 3:7c7587c666e1 91 }
joschaihl 3:7c7587c666e1 92
joschaihl 3:7c7587c666e1 93 void touch_thread() {
joschaihl 2:6a613cb4b302 94 uint16_t x1, y1;
joschaihl 3:7c7587c666e1 95 TS_StateTypeDef state;
joschaihl 1:361238d5a1bc 96 /* Touchscreen initialization */
joschaihl 1:361238d5a1bc 97 if (BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()) == TS_ERROR) {
joschaihl 1:361238d5a1bc 98 printf("BSP_TS_Init error\n");
joschaihl 1:361238d5a1bc 99 }
joschaihl 1:361238d5a1bc 100 while (1) {
joschaihl 3:7c7587c666e1 101 // BSP_TS_GetState(&TS_State);
joschaihl 3:7c7587c666e1 102 // if(TS_State.touchDetected) {
joschaihl 1:361238d5a1bc 103 /* One or dual touch have been detected */
joschaihl 1:361238d5a1bc 104
joschaihl 1:361238d5a1bc 105 /* Get X and Y position of the first touch post calibrated */
joschaihl 3:7c7587c666e1 106 // x1 = TS_State.touchX[0];
joschaihl 3:7c7587c666e1 107 // y1 = TS_State.touchY[0];
joschaihl 3:7c7587c666e1 108 // printf("Touch Detected x=%d y=%d\n", x1, y1);
joschaihl 3:7c7587c666e1 109
joschaihl 2:6a613cb4b302 110 //BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
joschaihl 2:6a613cb4b302 111 //BSP_LCD_FillCircle(x1, y1, 20);
joschaihl 1:361238d5a1bc 112
joschaihl 3:7c7587c666e1 113 wait_ms(10);
joschaihl 3:7c7587c666e1 114 //}
joschaihl 3:7c7587c666e1 115 }
joschaihl 3:7c7587c666e1 116
joschaihl 3:7c7587c666e1 117 }
joschaihl 3:7c7587c666e1 118
joschaihl 3:7c7587c666e1 119 void srvLoop()
joschaihl 3:7c7587c666e1 120 {
joschaihl 3:7c7587c666e1 121 printf("Basic HTTP server example\n");
joschaihl 3:7c7587c666e1 122
joschaihl 3:7c7587c666e1 123 EthernetInterface eth;
joschaihl 3:7c7587c666e1 124 eth.connect();
joschaihl 3:7c7587c666e1 125
joschaihl 3:7c7587c666e1 126 printf("The target IP address is '%s'\n", eth.get_ip_address());
joschaihl 3:7c7587c666e1 127
joschaihl 3:7c7587c666e1 128 TCPServer srv;
joschaihl 3:7c7587c666e1 129 TCPSocket clt_sock;
joschaihl 3:7c7587c666e1 130 SocketAddress clt_addr;
joschaihl 3:7c7587c666e1 131
joschaihl 3:7c7587c666e1 132 /* Open the server on ethernet stack */
joschaihl 3:7c7587c666e1 133 srv.open(&eth);
joschaihl 3:7c7587c666e1 134
joschaihl 3:7c7587c666e1 135 /* Bind the HTTP port (TCP 80) to the server */
joschaihl 3:7c7587c666e1 136 srv.bind(eth.get_ip_address(), 80);
joschaihl 3:7c7587c666e1 137
joschaihl 3:7c7587c666e1 138 /* Can handle 5 simultaneous connections */
joschaihl 3:7c7587c666e1 139 srv.listen(5);
joschaihl 3:7c7587c666e1 140
joschaihl 3:7c7587c666e1 141 while (true) {
joschaihl 3:7c7587c666e1 142 srv.accept(&clt_sock, &clt_addr);
joschaihl 3:7c7587c666e1 143 printf("accept %s:%d\n", clt_addr.get_ip_address(), clt_addr.get_port());
joschaihl 3:7c7587c666e1 144 clt_sock.send(HTTP_RESPONSE, strlen(HTTP_RESPONSE));
joschaihl 1:361238d5a1bc 145 }
joschaihl 1:361238d5a1bc 146 }
joschaihl 1:361238d5a1bc 147
joschaihl 3:7c7587c666e1 148 void esp_thread() {
joschaihl 3:7c7587c666e1 149
joschaihl 3:7c7587c666e1 150 while(1) {
joschaihl 3:7c7587c666e1 151 // pc.putc(wifi.getc());
joschaihl 3:7c7587c666e1 152 }
joschaihl 3:7c7587c666e1 153 }
joschaihl 2:6a613cb4b302 154
joschaihl 3:7c7587c666e1 155 int main(void) {
joschaihl 3:7c7587c666e1 156 pc.baud(115200*2);
joschaihl 3:7c7587c666e1 157 //wifi.baud(115200);
joschaihl 3:7c7587c666e1 158 cout << "Hallo Joscha!!!" << endl;
joschaihl 3:7c7587c666e1 159 Thread printThread(osPriorityNormal), ledThread(osPriorityNormal),
joschaihl 3:7c7587c666e1 160 guiThread(osPriorityNormal), touchThread(osPriorityNormal), clockThread(osPriorityNormal), espThread(osPriorityNormal);
joschaihl 3:7c7587c666e1 161
joschaihl 3:7c7587c666e1 162 printThread.start(print_thread);
joschaihl 3:7c7587c666e1 163 ledThread.start(led_thread);
joschaihl 3:7c7587c666e1 164 guiThread.start(gui_thread2);
joschaihl 3:7c7587c666e1 165 touchThread.start(touch_thread);
joschaihl 3:7c7587c666e1 166 clockThread.start(clock_thread);
joschaihl 3:7c7587c666e1 167 // espThread.start(esp_thread);
joschaihl 3:7c7587c666e1 168 // Thread tsrv;
joschaihl 3:7c7587c666e1 169 // tsrv.start(srvLoop);
joschaihl 2:6a613cb4b302 170
joschaihl 2:6a613cb4b302 171
joschaihl 2:6a613cb4b302 172 while(1) {
joschaihl 3:7c7587c666e1 173
joschaihl 2:6a613cb4b302 174 }
joschaihl 2:6a613cb4b302 175 }