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
main.cpp@0:45610c4af223, 2017-12-11 (annotated)
- Committer:
- Maricius
- Date:
- Mon Dec 11 09:46:58 2017 +0000
- Revision:
- 0:45610c4af223
- Child:
- 1:1f4543ea364d
testing2
Who changed what in which revision?
User | Revision | Line number | New 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 |