fffff
Dependencies: BufferedSoftSerial PinDetect
main.cpp
- Committer:
- mauuuuul
- Date:
- 2019-06-18
- Revision:
- 3:ca5869d9fd5a
- Parent:
- 1:965d7fb768b6
File content as of revision 3:ca5869d9fd5a:
#include "mbed.h" #include "EthernetInterface.h" #include "PinDetect.h" #include <string> #include "BufferedSoftSerial.h" // Network interface EthernetInterface net; Thread thdFindConnection; TCPSocket socket; Thread thdStartProccess; #define IP "192.168.0.5" #define GATEWAY "192.168.1.1" #define MASK "255.255.255.0" #include "mbed.h" DigitalOut Led1(D7); DigitalOut Led2(D6); DigitalOut Led3(D5); PinDetect pin1( PTC0 ); PinDetect pin2( PTC5 ); BufferedSoftSerial device(PTD1,PTD3); Thread thdLedControl; int step = 1; bool PB1Pressed = false; bool isConnected = false; char cmdCheckConn[] = {0x0E, 0x0D, 0x31, 0x37, 0x30, 0x30, 0x30, 0x36, 0x30, 0x30, 0x30, 0x39, 0x35, 0x32}; char cmdReady[] = {0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}; char cmdRun[] = {0x0C, 0x5F}; char cmdCompareData1[] = {0x30, 0x39, 0x35}; void ReconnectToServer() { int i = net.set_network(IP,MASK,GATEWAY); i = net.connect(); // Show the network address const char *ip = net.get_ip_address(); // Open a socket on the network interface, and create a TCP connection to mbed.org socket.open(&net); socket.connect("192.168.0.89", 5500); isConnected = true; } void LedControl() { while(1) { switch(step) { case 1: { Led2 = 1; Led3 = 1; while(step == 1) { Led1 = !Led1; wait(0.5); } } break; case 2: { Led1 = 0; Led3 = 1; while(step == 2) { Led2 = !Led2; wait(0.5); } } break; case 3: { Led1 = 0; Led2 = 0; while(step == 3) { Led3 = !Led3; wait(0.5); } } break; } } } void DC_TCP() { socket.close(); net.disconnect(); isConnected = false; } void keyReleased() { if(step == 2) { if(!PB1Pressed) { PB1Pressed = true; } } } void StartProccess() { while(1) { switch(step) { case 1: { char rbuffer[64]; int rcount = socket.recv(rbuffer, sizeof rbuffer); if(rcount < 0) { } else if(rcount > 0) { rbuffer[rcount] = '\0'; string data; for(int i = 0; i<sizeof(rbuffer); i++) { if(rbuffer[i] == '\0')break; data += rbuffer[i]; } if(data == "F01") { step = 2; printf("Measurring Process is Getting Started..\r\n"); } } else if(rcount == 0) { printf("rcount = %d \r\n",rcount); } } break; case 2: { if(PB1Pressed) { step = 3; //Serial Comm Start; printf("Measurring Process Starting.. \r\n"); device.printf("Helo Maul"); } } break; case 3: { char buffer[256]; string data; bool Done = false; int sbuff = 0; while(!Done) { int state = 0; char data1[3]; char data2[20]; char data3[256]; int datacount = 0; switch(state) { case 0: { while(device.readable()) { wait(0.01); char tempbuf = device.getc(); data1[datacount] = tempbuf; datacount++; } if(datacount == 3) { bool equals = false; if(data1[0] == '0' && data1[1] == '9' && data1[2] == '5') equals = true; // if(data1[0] == '0') // equals = true; // // if(data1[1] == '9') // equals = true; // // if(data1[2] == '5') // equals = true; if(equals) { state = 1; datacount = 1; printf("state %d finish\r\n",state); } } } break; case 1: { if(device.readable()) { char tempbuf = device.getc(); data2[datacount-1] = tempbuf; datacount++; } if(datacount == 10) { if(data2[0] == 0x5E) { state = 2; datacount = 0; printf("state %d finish",state); } } } break; case 3: { if(device.readable()) { char tempbuf = device.getc(); data3[datacount-1] = tempbuf; datacount++; } if(datacount > 48) { if(data3[datacount-1] == 0x30 && data3[datacount-2] == 0x05E) { state = 3; datacount = 0; for(int i = 0; i<data3[datacount-1]; i++) { printf("%c",data3[i]); if(i == datacount-1) { printf("\r\n"); } } Done = true; step = 1; PB1Pressed = false; printf("Measurring Finish.. \r\n"); printf("state %d finish",state); } } } break; } } } break; } } } void FindingServer() { printf("Finding Server.....\r\n\r\n"); int i = net.set_network(IP,MASK,GATEWAY); i = net.connect(); // Show the network address const char *ip = net.get_ip_address(); // Open a socket on the network interface, and create a TCP connection to mbed.org socket.open(&net); socket.connect("192.168.0.89", 5500); isConnected = true; printf("Connected to Server....\r\n"); thdStartProccess.start(StartProccess); } // Socket demo int main() { device.baud(9600); pin1.mode( PullDown ); pin1.attach_deasserted( &keyReleased ); pin1.setSampleFrequency(); // Defaults to 20ms. pin2.mode( PullDown ); pin2.attach_deasserted( &keyReleased ); pin2.setSampleFrequency(); // Defaults to 20ms. wait(0.01); thdFindConnection.start(FindingServer); thdLedControl.start(LedControl); }