p1

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 = { &eth, &sa, crm_req, crm_fun, 0 };
+    struct s_rm s_srm = { &eth, &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 = { &eth, &sa, crm_req, crm_fun };
-    struct s_rm s_srm = { &eth, &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 {