bosko lekovic
/
EthTCPclient_05_03
p1
Diff: main.cpp
- Revision:
- 7:be56cf51685d
- Parent:
- 5:ecaf089d1c8a
--- a/main.cpp Mon Feb 24 17:14:44 2020 +0000 +++ b/main.cpp Thu Jun 18 15:23:39 2020 +0000 @@ -13,105 +13,89 @@ #include "TCPSocket.h" #include "PGSdisplay.h" +#include "ParkareClient.h" + + -// -//void putOnDispNo(int broj, char boja); -//void putOnDisp(char *s, char boja); -void requestMessageThread(struct s_rm *s); -//void slanjefun(); +char MyIPaddress[]= "192.168.2.11"; +char MyNETmask []= "255.255.248.0"; +char MyGWaddress[]= "192.168.1.1"; -#define IP_ADDR "192.168.2.11" -#define NET_MASK "255.255.248.0" -#define GATW_ADDR "192.168.1.1" -#define IP_ADDR_R "192.168.1.9" +char conf_server_ip[] = "192.168.2.254"; +int conf_server_port = 12197; +Thread *threadGarColl = NULL; + EthernetInterface eth; nsapi_error_t err; +volatile int ethinic_flag = 0; + +void theth_fun( void ) +{ + +// while( true ) + { +// if(ethinic_flag==0) + { + printf(" setovanje ethernet mreze \n\r"); + if( (err = eth.set_network(MyIPaddress,MyNETmask,MyGWaddress))== NSAPI_ERROR_OK ) + { + printf(" uspostavljanje konekcije \n\r"); + if( (err = eth.connect()) == NSAPI_ERROR_OK ) + { + + printf( "MAC adresa: %s\n\r", eth.get_mac_address() ); + printf( "IP adresa: %s\n\r", eth.get_ip_address() ); + printf( "net mask: %s\n\r", eth.get_netmask() ); + printf( "GW adresa: %s\n\r", eth.get_gateway() ); + ethinic_flag = 1; + } + } + } + fflush( stdout); +// thread_sleep_for( 1000 ); + } +} + + char * extract_string( char delimiter, char *ulazni_str, int n_str ); void putOnDisp( char *s, char boja); - - void tcpThread_fun( EthernetInterface *e); void requestMessage( EthernetInterface *e); -// -//DigitalOut tast(PTB19,0); -//////RawSerial rs485(PTC17,PTC16); -//RawSerial rs485(PTD3,PTD2); -struct s_rm { - EthernetInterface *e; - SocketAddress *sa; - char *tx_msg; - void (*fun_rec)(char*); -}; - -char crm_req[]= {'{','1','|','1','}'}; //"{1|1}"; -char crm_resp[100]; -void crm_fun( char *rx) -{ - printf("crm_resp: %s\n\r",rx); - strcmp(crm_resp, rx); -} - -char srm_req[]="{5|1|0}"; -void srm_fun( char *rx ) -{ - printf("srm_resp: %s\n\r",rx); - char *strno= extract_string(';',rx, 2); - char boja = 0; - if(atoi(strno) <= 0) { - boja = 1; - } else if(atoi(strno) >0 && atoi(strno)<5) { - boja = 4; - } else { - boja = 2; - } - printf("broj: %d - boja: %d\n\r", atoi(strno),boja); - if (atoi(strno) < 0) - putOnDisp("0", boja); - else - putOnDisp((char*)strno, boja); -} - - - +DigitalOut ledc(LED3,1); int main(void) { +printf("\n\r----------------Pocetak------------ \n\r"); fflush(stdout); +Thread ThEth; + ThEth.start( theth_fun ); init_disp( ); + putOnDisp("elcom",3); + + ThEth.join( ); + printf(" Thread ethernet = %d \n\r", (int)&ThEth ); + + SocketAddress sa(conf_server_ip, conf_server_port); + printf("socket inicijalizovan \n\r"); fflush(stdout); + + putOnDisp("flash",2); + +extern char crm_req[]; +extern char srm_req[]; + struct s_rm s_crm = { ð, &sa, crm_req, crm_fun, 0 }; + struct s_rm s_srm = { ð, &sa, srm_req, srm_fun, 0 }; - if( (err = eth.set_network(IP_ADDR,NET_MASK,GATW_ADDR))!= NSAPI_ERROR_OK ) { - printf(" greska setovanja mreze %d \n\r", err); - return 1; - } - if( (err = eth.connect()) != NSAPI_ERROR_OK ) { - printf(" greska konekcije %d \n\r", err); - return 1; - } - - const char *ip = eth.get_ip_address() ; - + printf("Parkare server zahtev za katalog \n\r"); fflush(stdout); - printf( "MAC adresa: %s\n\r", eth.get_mac_address() ); - printf( "IP adresa: %s\n\r", ip); - printf( "net mask: %s\n\r", eth.get_netmask() ); - printf( "GW adresa: %s\n\r", eth.get_gateway() ); - - SocketAddress sa("192.168.2.254", 12197); - - struct s_rm s_crm = { ð, &sa, crm_req, crm_fun }; - struct s_rm s_srm = { ð, &sa, srm_req, srm_fun }; - - - putOnDisp("flash", 2); Thread CRMThread; CRMThread.start( callback( requestMessageThread, &s_crm )); @@ -119,65 +103,37 @@ int i=0; // thread_sleep_for(15000); +printf("ispred while-a\n\r"); +fflush(stdout); + while(true) { +// ledc = !ledc; +if( threadGarColl != NULL ) {delete threadGarColl; threadGarColl = NULL; } + thread_sleep_for(5000); + printf("Parkare server zahtev za broj \n\r"); fflush(stdout); Thread SRMThread; + s_srm.response = 0; SRMThread.start( callback( requestMessageThread, &s_srm )); SRMThread.join(); - printf("main %d\n\r",i++); + printf("PGSdisplay status response %d\n\r",s_srm.response); } // printf("\n\rmain: Kraj, error=%d\n\r",err); fflush(stdout); } - -unsigned char sendBuffer[]= "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Type: text/html\r\n\r\nMarko je ovde"; // HTTP Message Body, length = 11 -unsigned char sb[1000]="HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n"; - - - -unsigned char txbuf[100]="test konekcije"; -unsigned char rxbuf[100]; - - -char conf_server_ip[] = "192.168.1.26"; -int conf_server_port = 12197; -unsigned char msg_request_message[] = "{5|1|1;2}"; -unsigned char msg_catalogue_request_message[] = "{1|1}"; - +// +//unsigned char sendBuffer[]= "HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Type: text/html\r\n\r\nMarko je ovde"; // HTTP Message Body, length = 11 +//unsigned char sb[1000]="HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n"; +// +// +// +//unsigned char txbuf[100]="test konekcije"; +//unsigned char rxbuf[100]; -void requestMessageThread(struct s_rm *s) -{ - - TCPSocket tcpSocket; - nsapi_error_t err=NULL; - char rxbuf[1024]; - memset(rxbuf, 0, sizeof(rxbuf)); - if((err=tcpSocket.open( s->e )) ==0 ) { - if((err = tcpSocket.connect(*(s->sa))) == 0) { - char *ss = s->tx_msg; - if( (err = tcpSocket.send(s->tx_msg,strlen(ss))<0 ) ) { - printf("requestMessage - send err: %d\n\r", err); - } else { - printf("requestMessage - poslano: %d bajtova od: %s\n\r", err, s->tx_msg); - if( (err = tcpSocket.recv(rxbuf,sizeof(rxbuf)) <0 )) { - printf("requestMessage - recv err %d\n\r", err); - } else { - - printf("requestMessage - prim tel %d: %s\n\r", err, rxbuf) ; - s->fun_rec( rxbuf ); - } - } - } - - printf("requestMessage - zatvaranje konekcije\n\r"); - tcpSocket.close(); - } - -} // //enum nsapi_error {