bunch of tesitng for F746NG

Dependencies:   BSP_DISCO_F746NG F746_GUI F7_Ethernet LCD_DISCO_F746NG SimpleSocket TMP36 GZ TS_DISCO_F746NG TextLCD WebSocketClient mbed-rtos mbed sMotor

Committer:
Maricius
Date:
Mon Dec 11 09:46:58 2017 +0000
Revision:
0:45610c4af223
Child:
1:1f4543ea364d
testing2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Maricius 0:45610c4af223 1 #include "mbed.h"
Maricius 0:45610c4af223 2 #include "F746_GUI.hpp"
Maricius 0:45610c4af223 3 #include "LCD_DISCO_F746NG.h"
Maricius 0:45610c4af223 4 #include "TextLCD.h"
Maricius 0:45610c4af223 5 #include <string>
Maricius 0:45610c4af223 6 #include <math.h>
Maricius 0:45610c4af223 7 #include "EthernetInterface.h"
Maricius 0:45610c4af223 8 #include "rtos.h"
Maricius 0:45610c4af223 9 #include "lwip/inet.h"
Maricius 0:45610c4af223 10 #include "lwip/netif.h"
Maricius 0:45610c4af223 11 #include "netif/etharp.h"
Maricius 0:45610c4af223 12 #include "lwip/dhcp.h"
Maricius 0:45610c4af223 13 #include "eth_arch.h"
Maricius 0:45610c4af223 14 #include "lwip/tcpip.h"
Maricius 0:45610c4af223 15
Maricius 0:45610c4af223 16 #include "NTPClient.h"
Maricius 0:45610c4af223 17 #include <stdio.h>
Maricius 0:45610c4af223 18
Maricius 0:45610c4af223 19
Maricius 0:45610c4af223 20 //Initialization of varius connections and interfaces
Maricius 0:45610c4af223 21
Maricius 0:45610c4af223 22
Maricius 0:45610c4af223 23 DigitalOut myled2(D4);
Maricius 0:45610c4af223 24
Maricius 0:45610c4af223 25
Maricius 0:45610c4af223 26 int number_clicks;
Maricius 0:45610c4af223 27 LCD_DISCO_F746NG lcd;
Maricius 0:45610c4af223 28 EthernetInterface eth;
Maricius 0:45610c4af223 29 Thread t1, t2;
Maricius 0:45610c4af223 30
Maricius 0:45610c4af223 31 //declare external funktions and pointers
Maricius 0:45610c4af223 32 extern void heartrate();
Maricius 0:45610c4af223 33 extern double *h_p;
Maricius 0:45610c4af223 34 //extern void proximity();
Maricius 0:45610c4af223 35 NTPClient ntp;
Maricius 0:45610c4af223 36
Maricius 0:45610c4af223 37
Maricius 0:45610c4af223 38 int main()
Maricius 0:45610c4af223 39 {
Maricius 0:45610c4af223 40
Maricius 0:45610c4af223 41
Maricius 0:45610c4af223 42
Maricius 0:45610c4af223 43 //First we check if the ethernet interface was able to initialize
Maricius 0:45610c4af223 44 if(eth.init()!=0) {
Maricius 0:45610c4af223 45
Maricius 0:45610c4af223 46 char eth_init [40];
Maricius 0:45610c4af223 47 sprintf(eth_init, "EthernetInterface Initialize Error");
Maricius 0:45610c4af223 48 lcd.DisplayStringAt(0, LINE(10), (uint8_t *)eth_init, CENTER_MODE);
Maricius 0:45610c4af223 49 while (1) {
Maricius 0:45610c4af223 50 wait(10);
Maricius 0:45610c4af223 51 }
Maricius 0:45610c4af223 52 }
Maricius 0:45610c4af223 53 //check if the ethernet intercace is connected to a network.
Maricius 0:45610c4af223 54
Maricius 0:45610c4af223 55 if(eth.connect()!=0) {
Maricius 0:45610c4af223 56 char eth_conn[30];
Maricius 0:45610c4af223 57 sprintf(eth_conn, "EthernetInterface Connect Error");
Maricius 0:45610c4af223 58 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)eth_conn, CENTER_MODE);
Maricius 0:45610c4af223 59 char mac_add[15];
Maricius 0:45610c4af223 60 sprintf(mac_add, "Mac: %s", eth.getMACAddress());
Maricius 0:45610c4af223 61 lcd.DisplayStringAt(0, LINE(10), (uint8_t *)mac_add, CENTER_MODE);
Maricius 0:45610c4af223 62 while (1) {
Maricius 0:45610c4af223 63 wait(10);
Maricius 0:45610c4af223 64 }
Maricius 0:45610c4af223 65 }
Maricius 0:45610c4af223 66 char ip_add[30];
Maricius 0:45610c4af223 67 char net_mask[30];
Maricius 0:45610c4af223 68 char gate_Way[30];
Maricius 0:45610c4af223 69 char dhcp_status[30];
Maricius 0:45610c4af223 70
Maricius 0:45610c4af223 71
Maricius 0:45610c4af223 72 /*Display the varius information achived from the dhcp server,
Maricius 0:45610c4af223 73 It is also possible to set all these values manually,
Maricius 0:45610c4af223 74 if no dhcp server is available
Maricius 0:45610c4af223 75 */
Maricius 0:45610c4af223 76 sprintf(ip_add, "IP Address is %s", eth.getIPAddress());
Maricius 0:45610c4af223 77 sprintf(net_mask, "NetMask is %s", eth.getNetworkMask());
Maricius 0:45610c4af223 78 sprintf(gate_Way, "Gateway Address is %s", eth.getGateway());
Maricius 0:45610c4af223 79 sprintf(dhcp_status, "Ethernet Setup OK");
Maricius 0:45610c4af223 80 lcd.DisplayStringAt(0, LINE(2), (uint8_t *)ip_add, CENTER_MODE);
Maricius 0:45610c4af223 81 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)net_mask, CENTER_MODE);
Maricius 0:45610c4af223 82 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)gate_Way, CENTER_MODE);
Maricius 0:45610c4af223 83 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)dhcp_status, CENTER_MODE);
Maricius 0:45610c4af223 84 wait(5);
Maricius 0:45610c4af223 85 lcd.Clear(LCD_COLOR_GREEN);
Maricius 0:45610c4af223 86 if (ntp.setTime("1.dk.pool.ntp.org") == 0)
Maricius 0:45610c4af223 87 {
Maricius 0:45610c4af223 88 char ntp_message [50];
Maricius 0:45610c4af223 89 time_t ctTime;
Maricius 0:45610c4af223 90 ctTime = time(NULL);
Maricius 0:45610c4af223 91 sprintf(ntp_message, "%s \r\n", ctime(&ctTime));
Maricius 0:45610c4af223 92 //sprintf(ntp_message, "Time is set to : %s \r\n", ctime(&ctTime));
Maricius 0:45610c4af223 93 lcd.DisplayStringAt(-10, LINE(8), (uint8_t *)ntp_message, CENTER_MODE);
Maricius 0:45610c4af223 94
Maricius 0:45610c4af223 95 }
Maricius 0:45610c4af223 96 else
Maricius 0:45610c4af223 97 {
Maricius 0:45610c4af223 98
Maricius 0:45610c4af223 99 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"Error getting time", CENTER_MODE);
Maricius 0:45610c4af223 100 }
Maricius 0:45610c4af223 101 wait(2);
Maricius 0:45610c4af223 102 lcd.Clear(LCD_COLOR_GREEN);
Maricius 0:45610c4af223 103
Maricius 0:45610c4af223 104
Maricius 0:45610c4af223 105
Maricius 0:45610c4af223 106 //This is the main tasks included in the programm
Maricius 0:45610c4af223 107 Button b1(300, 3, 70, 40, "Hjerterytme", Font16);
Maricius 0:45610c4af223 108 Button b2(200, 3, 70, 40, "Lyd og temp", Font16);
Maricius 0:45610c4af223 109 lcd.DisplayStringAt(0, LINE(10), (uint8_t *)ip_add, CENTER_MODE);
Maricius 0:45610c4af223 110 while(1) {
Maricius 0:45610c4af223 111
Maricius 0:45610c4af223 112
Maricius 0:45610c4af223 113
Maricius 0:45610c4af223 114
Maricius 0:45610c4af223 115
Maricius 0:45610c4af223 116
Maricius 0:45610c4af223 117
Maricius 0:45610c4af223 118
Maricius 0:45610c4af223 119 lcd.SetTextColor(LCD_COLOR_BLACK);
Maricius 0:45610c4af223 120 lcd.SetBackColor(LCD_COLOR_WHITE);
Maricius 0:45610c4af223 121 //print raw text to the LCD display
Maricius 0:45610c4af223 122 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Commence Initial Testing...", CENTER_MODE);
Maricius 0:45610c4af223 123 //shows the number of times the button was clicked
Maricius 0:45610c4af223 124
Maricius 0:45610c4af223 125 lcd.DisplayStringAt(0, LINE(6), (uint8_t *) "Christoffer Bisander", CENTER_MODE);
Maricius 0:45610c4af223 126
Maricius 0:45610c4af223 127
Maricius 0:45610c4af223 128 //t1.start(testing);
Maricius 0:45610c4af223 129 //t1.detach();
Maricius 0:45610c4af223 130 //input_functions fact;
Maricius 0:45610c4af223 131 //t1.start(proximity);
Maricius 0:45610c4af223 132 //t1.join();
Maricius 0:45610c4af223 133
Maricius 0:45610c4af223 134
Maricius 0:45610c4af223 135
Maricius 0:45610c4af223 136
Maricius 0:45610c4af223 137
Maricius 0:45610c4af223 138
Maricius 0:45610c4af223 139
Maricius 0:45610c4af223 140 //Check if the button was clicked and then increments the number_clicks with one
Maricius 0:45610c4af223 141 if (b1.Touched()) { // if user touched "MODE" panel then return
Maricius 0:45610c4af223 142 lcd.SetTextColor(LCD_COLOR_RED);
Maricius 0:45610c4af223 143
Maricius 0:45610c4af223 144 t2.start(heartrate);
Maricius 0:45610c4af223 145 lcd.Clear(LCD_COLOR_GREEN);
Maricius 0:45610c4af223 146 char heart_rate_current[50];
Maricius 0:45610c4af223 147 double hr;
Maricius 0:45610c4af223 148 while(1) {
Maricius 0:45610c4af223 149 hr = *h_p;
Maricius 0:45610c4af223 150
Maricius 0:45610c4af223 151 //t2.start(input_functions::heartrate, fact);
Maricius 0:45610c4af223 152 sprintf(heart_rate_current, "hjerterytme: %f", hr);
Maricius 0:45610c4af223 153 lcd.DisplayStringAt(0, LINE(14), (uint8_t *)heart_rate_current, CENTER_MODE);
Maricius 0:45610c4af223 154 wait(0.1);
Maricius 0:45610c4af223 155 }
Maricius 0:45610c4af223 156 t2.join();
Maricius 0:45610c4af223 157
Maricius 0:45610c4af223 158
Maricius 0:45610c4af223 159 wait(0.5);
Maricius 0:45610c4af223 160 lcd.Clear(LCD_COLOR_BLACK);
Maricius 0:45610c4af223 161 }
Maricius 0:45610c4af223 162
Maricius 0:45610c4af223 163 //----------------------------------------------------------------------------//
Maricius 0:45610c4af223 164 //analog sound sensor.
Maricius 0:45610c4af223 165 //read the voltage from the sound sensor
Maricius 0:45610c4af223 166
Maricius 0:45610c4af223 167
Maricius 0:45610c4af223 168 }
Maricius 0:45610c4af223 169
Maricius 0:45610c4af223 170 }
Maricius 0:45610c4af223 171
Maricius 0:45610c4af223 172
Maricius 0:45610c4af223 173
Maricius 0:45610c4af223 174
Maricius 0:45610c4af223 175