p1

Committer:
markoc
Date:
Sat Feb 15 15:38:25 2020 +0000
Revision:
1:10e2a0bef1b4
Parent:
0:b01306ccbbe1
Child:
2:4deba4264f65
radna verzija

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bosko001 0:b01306ccbbe1 1 /* mbed Microcontroller Library
bosko001 0:b01306ccbbe1 2 * Copyright (c) 2019 ARM Limited
bosko001 0:b01306ccbbe1 3 * SPDX-License-Identifier: Apache-2.0
bosko001 0:b01306ccbbe1 4 */
bosko001 0:b01306ccbbe1 5
bosko001 0:b01306ccbbe1 6 #include "mbed.h"
bosko001 0:b01306ccbbe1 7 #include "platform/mbed_thread.h"
bosko001 0:b01306ccbbe1 8
bosko001 0:b01306ccbbe1 9 #include "EthernetInterface.h"
bosko001 0:b01306ccbbe1 10
bosko001 0:b01306ccbbe1 11 #include <stdio.h>
bosko001 0:b01306ccbbe1 12 #include <string.h>
markoc 1:10e2a0bef1b4 13 #include <sstream>
markoc 1:10e2a0bef1b4 14 #include <iostream>
bosko001 0:b01306ccbbe1 15 #include "TCPSocket.h"
bosko001 0:b01306ccbbe1 16
bosko001 0:b01306ccbbe1 17
bosko001 0:b01306ccbbe1 18 void putOnDispNo(int broj, char boja);
bosko001 0:b01306ccbbe1 19 void putOnDisp(char *s, char boja);
markoc 1:10e2a0bef1b4 20 void requestMessageThread(struct s_rm *s);
bosko001 0:b01306ccbbe1 21 void slanjefun();
bosko001 0:b01306ccbbe1 22
bosko001 0:b01306ccbbe1 23 #define IP_ADDR "192.168.2.11"
bosko001 0:b01306ccbbe1 24 #define NET_MASK "255.255.248.0"
bosko001 0:b01306ccbbe1 25 #define GATW_ADDR "192.168.1.1"
bosko001 0:b01306ccbbe1 26 #define IP_ADDR_R "192.168.1.9"
bosko001 0:b01306ccbbe1 27
bosko001 0:b01306ccbbe1 28
bosko001 0:b01306ccbbe1 29
bosko001 0:b01306ccbbe1 30 EthernetInterface eth;
bosko001 0:b01306ccbbe1 31 nsapi_error_t err;
bosko001 0:b01306ccbbe1 32
markoc 1:10e2a0bef1b4 33 char * extract_string( char delimiter, char *ulazni_str, int n_str );
markoc 1:10e2a0bef1b4 34 void putOnDisp( char *s, char boja);
bosko001 0:b01306ccbbe1 35
markoc 1:10e2a0bef1b4 36 int strcount( char *ps)
bosko001 0:b01306ccbbe1 37 {
bosko001 0:b01306ccbbe1 38 int i=0;
bosko001 0:b01306ccbbe1 39 for(i=0; ps[i] != 0; i++);
bosko001 0:b01306ccbbe1 40 return i;
bosko001 0:b01306ccbbe1 41 }
bosko001 0:b01306ccbbe1 42
bosko001 0:b01306ccbbe1 43 void tcpThread_fun( EthernetInterface *e);
markoc 1:10e2a0bef1b4 44 void requestMessage( EthernetInterface *e);
bosko001 0:b01306ccbbe1 45
bosko001 0:b01306ccbbe1 46 DigitalOut tast(PTB19,0);
bosko001 0:b01306ccbbe1 47 //RawSerial rs485(PTC17,PTC16);
bosko001 0:b01306ccbbe1 48 RawSerial rs485(PTD3,PTD2);
markoc 1:10e2a0bef1b4 49
markoc 1:10e2a0bef1b4 50 struct s_rm
markoc 1:10e2a0bef1b4 51 {
markoc 1:10e2a0bef1b4 52 EthernetInterface *e;
markoc 1:10e2a0bef1b4 53 SocketAddress *sa;
markoc 1:10e2a0bef1b4 54 char *tx_msg;
markoc 1:10e2a0bef1b4 55 void (*fun_rec)(char*);
markoc 1:10e2a0bef1b4 56 };
markoc 1:10e2a0bef1b4 57
markoc 1:10e2a0bef1b4 58 char crm_req[]={'{','1','|','1','}'};//"{1|1}";
markoc 1:10e2a0bef1b4 59 char crm_resp[100];
markoc 1:10e2a0bef1b4 60 void crm_fun( char *rx)
markoc 1:10e2a0bef1b4 61 {
markoc 1:10e2a0bef1b4 62 printf("crm_resp: %s\n\r",rx);
markoc 1:10e2a0bef1b4 63 strcmp(crm_resp, rx);
markoc 1:10e2a0bef1b4 64 }
markoc 1:10e2a0bef1b4 65
markoc 1:10e2a0bef1b4 66 char srm_req[]="{5|1|1}";
markoc 1:10e2a0bef1b4 67 void srm_fun( char *rx )
markoc 1:10e2a0bef1b4 68 {
markoc 1:10e2a0bef1b4 69 printf("srm_resp: %s\n\r",rx);
markoc 1:10e2a0bef1b4 70 char *strno= extract_string(';',rx, 2);
markoc 1:10e2a0bef1b4 71 char boja = 0;
markoc 1:10e2a0bef1b4 72 if(atoi(strno) == 0) { boja = 1; }
markoc 1:10e2a0bef1b4 73 else if(atoi(strno) >0 && atoi(strno)<5) { boja = 4; }
markoc 1:10e2a0bef1b4 74 else { boja = 2; }
markoc 1:10e2a0bef1b4 75 printf("broj: %d - boja: %d\n\r", atoi(strno),boja);
markoc 1:10e2a0bef1b4 76 putOnDisp((char*)strno, boja);
markoc 1:10e2a0bef1b4 77 }
markoc 1:10e2a0bef1b4 78
markoc 1:10e2a0bef1b4 79
markoc 1:10e2a0bef1b4 80
bosko001 0:b01306ccbbe1 81
bosko001 0:b01306ccbbe1 82 int main(void)
bosko001 0:b01306ccbbe1 83 {
markoc 1:10e2a0bef1b4 84
markoc 1:10e2a0bef1b4 85
bosko001 0:b01306ccbbe1 86
bosko001 0:b01306ccbbe1 87 rs485.format(8, mbed::RawSerial::Even, 1);
bosko001 0:b01306ccbbe1 88
bosko001 0:b01306ccbbe1 89 Thread t;
bosko001 0:b01306ccbbe1 90 // t.start( slanjefun );
bosko001 0:b01306ccbbe1 91
bosko001 0:b01306ccbbe1 92
bosko001 0:b01306ccbbe1 93
bosko001 0:b01306ccbbe1 94 if( (err = eth.set_network(IP_ADDR,NET_MASK,GATW_ADDR))!= NSAPI_ERROR_OK ) { printf(" greska setovanja mreze %d \n\r", err); return 1; }
bosko001 0:b01306ccbbe1 95 if( (err = eth.connect()) != NSAPI_ERROR_OK ) { printf(" greska konekcije %d \n\r", err); return 1; }
bosko001 0:b01306ccbbe1 96
bosko001 0:b01306ccbbe1 97 const char *ip = eth.get_ip_address() ;
bosko001 0:b01306ccbbe1 98
bosko001 0:b01306ccbbe1 99
bosko001 0:b01306ccbbe1 100 printf( "MAC adresa: %s\n\r", eth.get_mac_address() );
bosko001 0:b01306ccbbe1 101 printf( "IP adresa: %s\n\r", ip);
bosko001 0:b01306ccbbe1 102 printf( "net mask: %s\n\r", eth.get_netmask() );
bosko001 0:b01306ccbbe1 103 printf( "GW adresa: %s\n\r", eth.get_gateway() );
markoc 1:10e2a0bef1b4 104
markoc 1:10e2a0bef1b4 105 SocketAddress sa("192.168.2.254", 12197);
markoc 1:10e2a0bef1b4 106
markoc 1:10e2a0bef1b4 107 struct s_rm s_crm ={ &eth, &sa, crm_req, crm_fun };
markoc 1:10e2a0bef1b4 108 struct s_rm s_srm ={ &eth, &sa, srm_req, srm_fun };
bosko001 0:b01306ccbbe1 109
markoc 1:10e2a0bef1b4 110 // Thread TCPThread;
markoc 1:10e2a0bef1b4 111 // TCPThread.start( callback( tcpThread_fun, &eth ));
markoc 1:10e2a0bef1b4 112
markoc 1:10e2a0bef1b4 113
markoc 1:10e2a0bef1b4 114 Thread CRMThread;
markoc 1:10e2a0bef1b4 115 CRMThread.start( callback( requestMessageThread, &s_crm ));
markoc 1:10e2a0bef1b4 116 CRMThread.join();
bosko001 0:b01306ccbbe1 117 int i=0;
bosko001 0:b01306ccbbe1 118
bosko001 0:b01306ccbbe1 119 while(true)
bosko001 0:b01306ccbbe1 120 {
markoc 1:10e2a0bef1b4 121 thread_sleep_for(10000);
markoc 1:10e2a0bef1b4 122 Thread SRMThread;
markoc 1:10e2a0bef1b4 123 printf("Thread id= %d\n\r",(int)&SRMThread);
markoc 1:10e2a0bef1b4 124 SRMThread.start( callback( requestMessageThread, &s_srm ));
markoc 1:10e2a0bef1b4 125 SRMThread.join();
bosko001 0:b01306ccbbe1 126 printf("main %d\n\r",i++);
bosko001 0:b01306ccbbe1 127 }
bosko001 0:b01306ccbbe1 128 // printf("\n\rmain: Kraj, error=%d\n\r",err); fflush(stdout);
bosko001 0:b01306ccbbe1 129 }
bosko001 0:b01306ccbbe1 130
bosko001 0:b01306ccbbe1 131
bosko001 0:b01306ccbbe1 132
bosko001 0:b01306ccbbe1 133
bosko001 0:b01306ccbbe1 134 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
bosko001 0:b01306ccbbe1 135 unsigned char sb[1000]="HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Type: text/html\r\n\r\n";
bosko001 0:b01306ccbbe1 136
bosko001 0:b01306ccbbe1 137
bosko001 0:b01306ccbbe1 138
bosko001 0:b01306ccbbe1 139 unsigned char txbuf[100]="test konekcije";
bosko001 0:b01306ccbbe1 140 unsigned char rxbuf[100];
bosko001 0:b01306ccbbe1 141
bosko001 0:b01306ccbbe1 142 void tcpThread_fun( EthernetInterface *e)
bosko001 0:b01306ccbbe1 143 {
bosko001 0:b01306ccbbe1 144
bosko001 0:b01306ccbbe1 145 TCPSocket tcpSocket;
bosko001 0:b01306ccbbe1 146 nsapi_error_t err=NULL;
markoc 1:10e2a0bef1b4 147 SocketAddress sa("192.168.1.26", 12197);
bosko001 0:b01306ccbbe1 148 printf("ip= %s, ver= %d, port= %d\n\r", sa.get_ip_address(), sa.get_ip_version(), sa.get_port() );
bosko001 0:b01306ccbbe1 149 int i=1;
bosko001 0:b01306ccbbe1 150
bosko001 0:b01306ccbbe1 151 while(true)
bosko001 0:b01306ccbbe1 152 {
bosko001 0:b01306ccbbe1 153 if((err=tcpSocket.open( e )) ==0 )
bosko001 0:b01306ccbbe1 154 {
bosko001 0:b01306ccbbe1 155 if((err = tcpSocket.connect(sa)) == 0)
bosko001 0:b01306ccbbe1 156 {
bosko001 0:b01306ccbbe1 157 while( true)
bosko001 0:b01306ccbbe1 158 {
bosko001 0:b01306ccbbe1 159 printf("iteracija %d \n\r", i);
markoc 1:10e2a0bef1b4 160 if(strcount((char*)txbuf) )
bosko001 0:b01306ccbbe1 161 {
markoc 1:10e2a0bef1b4 162 printf(" za slanje %d bajtova: %s\n\r", strcount((char*)txbuf), txbuf);
markoc 1:10e2a0bef1b4 163 if( (err = tcpSocket.send(txbuf,strcount((char*)txbuf))<0 ) ) { printf("send err %d\n\r", err); break; }
bosko001 0:b01306ccbbe1 164 else(" poslano %d bajtova od: %s\n\r", err, txbuf);
bosko001 0:b01306ccbbe1 165 memset(txbuf, 0, sizeof(txbuf) );
bosko001 0:b01306ccbbe1 166 }
bosko001 0:b01306ccbbe1 167 else
bosko001 0:b01306ccbbe1 168 {
bosko001 0:b01306ccbbe1 169 if( (err = tcpSocket.recv(rxbuf,sizeof(rxbuf)) <0 )) { printf("recv err %d\n\r", err); break; }
bosko001 0:b01306ccbbe1 170 else
bosko001 0:b01306ccbbe1 171 {
bosko001 0:b01306ccbbe1 172
bosko001 0:b01306ccbbe1 173 printf(" prim tel %d: %s\n\r", err, rxbuf) ;
bosko001 0:b01306ccbbe1 174 {
bosko001 0:b01306ccbbe1 175 extern void putOnDisp(char *, char );
bosko001 0:b01306ccbbe1 176 putOnDisp((char*)rxbuf, 1);
bosko001 0:b01306ccbbe1 177 }
bosko001 0:b01306ccbbe1 178 memcpy(txbuf, rxbuf, sizeof(txbuf) );
bosko001 0:b01306ccbbe1 179 memset(rxbuf, 0, sizeof(rxbuf));
bosko001 0:b01306ccbbe1 180 }
bosko001 0:b01306ccbbe1 181 }
bosko001 0:b01306ccbbe1 182 printf("kraj iteracije %d \n\r", i++);
bosko001 0:b01306ccbbe1 183 fflush(stdout);
bosko001 0:b01306ccbbe1 184 }
bosko001 0:b01306ccbbe1 185 }
bosko001 0:b01306ccbbe1 186 else printf("greska otvaranja konekcije %d\n\r", err);
bosko001 0:b01306ccbbe1 187 }
bosko001 0:b01306ccbbe1 188 else printf("greska otvaranja socketa %d\n\r", err);
bosko001 0:b01306ccbbe1 189
bosko001 0:b01306ccbbe1 190 printf("zatvaranje konekcije\n\r");
bosko001 0:b01306ccbbe1 191 tcpSocket.close();
bosko001 0:b01306ccbbe1 192 thread_sleep_for(2000);
bosko001 0:b01306ccbbe1 193 }
bosko001 0:b01306ccbbe1 194 }
bosko001 0:b01306ccbbe1 195
markoc 1:10e2a0bef1b4 196 char conf_server_ip[] = "192.168.1.26";
markoc 1:10e2a0bef1b4 197 int conf_server_port = 12197;
markoc 1:10e2a0bef1b4 198 unsigned char msg_request_message[] = "{5|1|1;2}";
markoc 1:10e2a0bef1b4 199 unsigned char msg_catalogue_request_message[] = "{1|1}";
markoc 1:10e2a0bef1b4 200
markoc 1:10e2a0bef1b4 201
markoc 1:10e2a0bef1b4 202
markoc 1:10e2a0bef1b4 203
markoc 1:10e2a0bef1b4 204 void requestMessage(EthernetInterface *e)
markoc 1:10e2a0bef1b4 205 {
bosko001 0:b01306ccbbe1 206
markoc 1:10e2a0bef1b4 207 while(true)
markoc 1:10e2a0bef1b4 208 {
markoc 1:10e2a0bef1b4 209
markoc 1:10e2a0bef1b4 210 TCPSocket tcpSocket;
markoc 1:10e2a0bef1b4 211 nsapi_error_t err=NULL;
markoc 1:10e2a0bef1b4 212 SocketAddress sa(conf_server_ip, conf_server_port);
markoc 1:10e2a0bef1b4 213 char rxbuf[1024];
markoc 1:10e2a0bef1b4 214 memset(rxbuf, 0, sizeof(rxbuf));
markoc 1:10e2a0bef1b4 215 if((err=tcpSocket.open( e )) ==0 )
markoc 1:10e2a0bef1b4 216 {
markoc 1:10e2a0bef1b4 217 if((err = tcpSocket.connect(sa)) == 0)
markoc 1:10e2a0bef1b4 218 {
markoc 1:10e2a0bef1b4 219 if( (err = tcpSocket.send(msg_request_message,strcount((char*)msg_request_message))<0 ) )
markoc 1:10e2a0bef1b4 220 {
markoc 1:10e2a0bef1b4 221 printf("requestMessage - send err: %d\n\r", err);
markoc 1:10e2a0bef1b4 222 }
markoc 1:10e2a0bef1b4 223 else
markoc 1:10e2a0bef1b4 224 {
markoc 1:10e2a0bef1b4 225 printf("requestMessage - poslano: %d bajtova od: %s\n\r", err, msg_request_message);
markoc 1:10e2a0bef1b4 226 if( (err = tcpSocket.recv(rxbuf,sizeof(rxbuf)) <0 )) { printf("requestMessage - recv err %d\n\r", err); }
markoc 1:10e2a0bef1b4 227 else
markoc 1:10e2a0bef1b4 228 {
markoc 1:10e2a0bef1b4 229
markoc 1:10e2a0bef1b4 230 printf("requestMessage - prim tel %d: %s\n\r", err, rxbuf) ;
markoc 1:10e2a0bef1b4 231
markoc 1:10e2a0bef1b4 232 // char* parts[100];
markoc 1:10e2a0bef1b4 233 // int partcount = 0;
markoc 1:10e2a0bef1b4 234 //
markoc 1:10e2a0bef1b4 235 // parts[partcount++] = rxbuf;
markoc 1:10e2a0bef1b4 236 //
markoc 1:10e2a0bef1b4 237 // char* ptr = rxbuf;
markoc 1:10e2a0bef1b4 238 // while(*ptr) { //check if the string is over
markoc 1:10e2a0bef1b4 239 // if(*ptr == ';') {
markoc 1:10e2a0bef1b4 240 // *ptr = 0;
markoc 1:10e2a0bef1b4 241 // parts[partcount++] = ptr + 1;
markoc 1:10e2a0bef1b4 242 // }
markoc 1:10e2a0bef1b4 243 // ptr++;
markoc 1:10e2a0bef1b4 244 // }
markoc 1:10e2a0bef1b4 245
markoc 1:10e2a0bef1b4 246 extern char * extract_string( char delimiter, char *ulazni_str, int n_str );
bosko001 0:b01306ccbbe1 247
markoc 1:10e2a0bef1b4 248 char *strno= extract_string(';',rxbuf, 2);
markoc 1:10e2a0bef1b4 249 printf("%s\n\r",strno);
markoc 1:10e2a0bef1b4 250 int color = 0;
markoc 1:10e2a0bef1b4 251 int brojMesta = atoi(strno);
markoc 1:10e2a0bef1b4 252 printf("Broj mesta: %d\n\r",brojMesta);
markoc 1:10e2a0bef1b4 253 if (brojMesta==0) { color=1; }
markoc 1:10e2a0bef1b4 254 else if(brojMesta>0&&brojMesta<10){ color=4; }
markoc 1:10e2a0bef1b4 255 else { color=2; }
markoc 1:10e2a0bef1b4 256 printf("Color: %d\n\r",color);
markoc 1:10e2a0bef1b4 257 {
markoc 1:10e2a0bef1b4 258 extern void putOnDisp(char *, char );
markoc 1:10e2a0bef1b4 259 putOnDisp((char*)strno, color);
markoc 1:10e2a0bef1b4 260 }
markoc 1:10e2a0bef1b4 261 }
markoc 1:10e2a0bef1b4 262 }
markoc 1:10e2a0bef1b4 263 }
markoc 1:10e2a0bef1b4 264
markoc 1:10e2a0bef1b4 265 printf("requestMessage - zatvaranje konekcije\n\r");
markoc 1:10e2a0bef1b4 266 tcpSocket.close();
markoc 1:10e2a0bef1b4 267 }
markoc 1:10e2a0bef1b4 268
markoc 1:10e2a0bef1b4 269 thread_sleep_for(30000);
markoc 1:10e2a0bef1b4 270 }
markoc 1:10e2a0bef1b4 271
markoc 1:10e2a0bef1b4 272 }
markoc 1:10e2a0bef1b4 273
markoc 1:10e2a0bef1b4 274 //
markoc 1:10e2a0bef1b4 275 //struct s_rm
markoc 1:10e2a0bef1b4 276 //{
markoc 1:10e2a0bef1b4 277 // EthernetInterface *e;
markoc 1:10e2a0bef1b4 278 // SocketAddress *sa;
markoc 1:10e2a0bef1b4 279 // char *tx_msg;
markoc 1:10e2a0bef1b4 280 // void (*fun_rec)(char*);
markoc 1:10e2a0bef1b4 281 //};
markoc 1:10e2a0bef1b4 282
markoc 1:10e2a0bef1b4 283
markoc 1:10e2a0bef1b4 284 void requestMessageThread(struct s_rm *s)
markoc 1:10e2a0bef1b4 285 {
markoc 1:10e2a0bef1b4 286
markoc 1:10e2a0bef1b4 287 TCPSocket tcpSocket;
markoc 1:10e2a0bef1b4 288 nsapi_error_t err=NULL;
markoc 1:10e2a0bef1b4 289 char rxbuf[1024];
markoc 1:10e2a0bef1b4 290 memset(rxbuf, 0, sizeof(rxbuf));
markoc 1:10e2a0bef1b4 291 if((err=tcpSocket.open( s->e )) ==0 )
markoc 1:10e2a0bef1b4 292 {
markoc 1:10e2a0bef1b4 293 if((err = tcpSocket.connect(*(s->sa))) == 0)
markoc 1:10e2a0bef1b4 294 {
markoc 1:10e2a0bef1b4 295 char *ss = s->tx_msg;
markoc 1:10e2a0bef1b4 296 if( (err = tcpSocket.send(s->tx_msg,strcount(ss))<0 ) )
markoc 1:10e2a0bef1b4 297 {
markoc 1:10e2a0bef1b4 298 printf("requestMessage - send err: %d\n\r", err);
markoc 1:10e2a0bef1b4 299 }
markoc 1:10e2a0bef1b4 300 else
markoc 1:10e2a0bef1b4 301 {
markoc 1:10e2a0bef1b4 302 printf("requestMessage - poslano: %d bajtova od: %s\n\r", err, s->tx_msg);
markoc 1:10e2a0bef1b4 303 if( (err = tcpSocket.recv(rxbuf,sizeof(rxbuf)) <0 )) { printf("requestMessage - recv err %d\n\r", err); }
markoc 1:10e2a0bef1b4 304 else
markoc 1:10e2a0bef1b4 305 {
markoc 1:10e2a0bef1b4 306
markoc 1:10e2a0bef1b4 307 printf("requestMessage - prim tel %d: %s\n\r", err, rxbuf) ;
markoc 1:10e2a0bef1b4 308 s->fun_rec( rxbuf );
markoc 1:10e2a0bef1b4 309 }
markoc 1:10e2a0bef1b4 310 }
markoc 1:10e2a0bef1b4 311 }
markoc 1:10e2a0bef1b4 312
markoc 1:10e2a0bef1b4 313 printf("requestMessage - zatvaranje konekcije\n\r");
markoc 1:10e2a0bef1b4 314 tcpSocket.close();
markoc 1:10e2a0bef1b4 315 }
markoc 1:10e2a0bef1b4 316
markoc 1:10e2a0bef1b4 317 }
bosko001 0:b01306ccbbe1 318
bosko001 0:b01306ccbbe1 319 //
bosko001 0:b01306ccbbe1 320 //enum nsapi_error {
bosko001 0:b01306ccbbe1 321 // NSAPI_ERROR_OK = 0, /*!< no error */
bosko001 0:b01306ccbbe1 322 // NSAPI_ERROR_WOULD_BLOCK = -3001, /*!< no data is not available but call is non-blocking */
bosko001 0:b01306ccbbe1 323 // NSAPI_ERROR_UNSUPPORTED = -3002, /*!< unsupported functionality */
bosko001 0:b01306ccbbe1 324 // NSAPI_ERROR_PARAMETER = -3003, /*!< invalid configuration */
bosko001 0:b01306ccbbe1 325 // NSAPI_ERROR_NO_CONNECTION = -3004, /*!< not connected to a network */
bosko001 0:b01306ccbbe1 326 // NSAPI_ERROR_NO_SOCKET = -3005, /*!< socket not available for use */
bosko001 0:b01306ccbbe1 327 // NSAPI_ERROR_NO_ADDRESS = -3006, /*!< IP address is not known */
bosko001 0:b01306ccbbe1 328 // NSAPI_ERROR_NO_MEMORY = -3007, /*!< memory resource not available */
bosko001 0:b01306ccbbe1 329 // NSAPI_ERROR_NO_SSID = -3008, /*!< ssid not found */
bosko001 0:b01306ccbbe1 330 // NSAPI_ERROR_DNS_FAILURE = -3009, /*!< DNS failed to complete successfully */
bosko001 0:b01306ccbbe1 331 // NSAPI_ERROR_DHCP_FAILURE = -3010, /*!< DHCP failed to complete successfully */
bosko001 0:b01306ccbbe1 332 // NSAPI_ERROR_AUTH_FAILURE = -3011, /*!< connection to access point failed */
bosko001 0:b01306ccbbe1 333 // NSAPI_ERROR_DEVICE_ERROR = -3012, /*!< failure interfacing with the network processor */
bosko001 0:b01306ccbbe1 334 // NSAPI_ERROR_IN_PROGRESS = -3013, /*!< operation (eg connect) in progress */
bosko001 0:b01306ccbbe1 335 // NSAPI_ERROR_ALREADY = -3014, /*!< operation (eg connect) already in progress */
bosko001 0:b01306ccbbe1 336 // NSAPI_ERROR_IS_CONNECTED = -3015, /*!< socket is already connected */
bosko001 0:b01306ccbbe1 337 // NSAPI_ERROR_CONNECTION_LOST = -3016, /*!< connection lost */
bosko001 0:b01306ccbbe1 338 // NSAPI_ERROR_CONNECTION_TIMEOUT = -3017, /*!< connection timed out */
bosko001 0:b01306ccbbe1 339 //};
bosko001 0:b01306ccbbe1 340
bosko001 0:b01306ccbbe1 341
bosko001 0:b01306ccbbe1 342
bosko001 0:b01306ccbbe1 343
bosko001 0:b01306ccbbe1 344
bosko001 0:b01306ccbbe1 345 void ev(int){tast=0;}
bosko001 0:b01306ccbbe1 346
bosko001 0:b01306ccbbe1 347 unsigned char buf_tel[100] = {0x71,0x00,0x0D,0x71,0x43,0x01,0x1B,0x4A,0x01,0x01,0x1B,0x43,1,0x33,0xD5,0x16};
bosko001 0:b01306ccbbe1 348 void putOnDisp( char *s, char boja)
bosko001 0:b01306ccbbe1 349 {
markoc 1:10e2a0bef1b4 350 int ubb = 13+strlen(s)+1+1-4-2; // ubb = ukupan broj bajtova
bosko001 0:b01306ccbbe1 351 unsigned char lh, ll;
bosko001 0:b01306ccbbe1 352 ll=ubb;
bosko001 0:b01306ccbbe1 353 lh=ubb>>8;
markoc 1:10e2a0bef1b4 354 printf("Boja: %d\n\r",boja);
markoc 1:10e2a0bef1b4 355 buf_tel[12]=boja;
bosko001 0:b01306ccbbe1 356 memcpy(buf_tel+13, s, strlen(s)+2);
bosko001 0:b01306ccbbe1 357
bosko001 0:b01306ccbbe1 358 int suma=0;
bosko001 0:b01306ccbbe1 359 for(int i = 4; i < 13+strlen(s); i++) {
bosko001 0:b01306ccbbe1 360 suma +=buf_tel[i];
bosko001 0:b01306ccbbe1 361 }
bosko001 0:b01306ccbbe1 362
bosko001 0:b01306ccbbe1 363 buf_tel[13+strlen(s)] = suma;
bosko001 0:b01306ccbbe1 364 buf_tel[13+strlen(s)+1] = 22;
bosko001 0:b01306ccbbe1 365 buf_tel[1]=lh;
bosko001 0:b01306ccbbe1 366 buf_tel[2]=ll;
bosko001 0:b01306ccbbe1 367
bosko001 0:b01306ccbbe1 368 fflush(stdout);
bosko001 0:b01306ccbbe1 369
bosko001 0:b01306ccbbe1 370 tast=1;
bosko001 0:b01306ccbbe1 371 rs485.write(buf_tel, 21,ev);
bosko001 0:b01306ccbbe1 372 }
bosko001 0:b01306ccbbe1 373 void putOnDispNo(int broj, char boja)
bosko001 0:b01306ccbbe1 374 {
bosko001 0:b01306ccbbe1 375 char s[10];
bosko001 0:b01306ccbbe1 376 sprintf( s, "%d", broj);
bosko001 0:b01306ccbbe1 377 putOnDisp( s, boja);
bosko001 0:b01306ccbbe1 378 }
bosko001 0:b01306ccbbe1 379
bosko001 0:b01306ccbbe1 380
bosko001 0:b01306ccbbe1 381 void slanjefun(){
bosko001 0:b01306ccbbe1 382
bosko001 0:b01306ccbbe1 383 int j=0;
bosko001 0:b01306ccbbe1 384
bosko001 0:b01306ccbbe1 385
bosko001 0:b01306ccbbe1 386 while (true) {
bosko001 0:b01306ccbbe1 387 // printf("disp thred %d\n\r",j);
bosko001 0:b01306ccbbe1 388 if(j >10 && j<15 ) putOnDisp("des",1);
bosko001 0:b01306ccbbe1 389 else putOnDispNo(j,1);
bosko001 0:b01306ccbbe1 390 j++;
bosko001 0:b01306ccbbe1 391 thread_sleep_for(1000);
bosko001 0:b01306ccbbe1 392 }
bosko001 0:b01306ccbbe1 393 }
markoc 1:10e2a0bef1b4 394
markoc 1:10e2a0bef1b4 395
markoc 1:10e2a0bef1b4 396 char * extract_string( char delimiter, char *ulazni_str, int n_str )
markoc 1:10e2a0bef1b4 397 {
markoc 1:10e2a0bef1b4 398 int br_str=0;
markoc 1:10e2a0bef1b4 399 char *ret_str=ulazni_str;
markoc 1:10e2a0bef1b4 400 char* ptr = ulazni_str;
markoc 1:10e2a0bef1b4 401
markoc 1:10e2a0bef1b4 402 while(*ptr)
markoc 1:10e2a0bef1b4 403 {
markoc 1:10e2a0bef1b4 404 if(*ptr == delimiter)
markoc 1:10e2a0bef1b4 405 {
markoc 1:10e2a0bef1b4 406 *ptr = 0;
markoc 1:10e2a0bef1b4 407 if( br_str == n_str ) return ret_str;
markoc 1:10e2a0bef1b4 408 else
markoc 1:10e2a0bef1b4 409 {
markoc 1:10e2a0bef1b4 410 br_str++;
markoc 1:10e2a0bef1b4 411 ret_str = ptr + 1;
markoc 1:10e2a0bef1b4 412 }
markoc 1:10e2a0bef1b4 413 }
markoc 1:10e2a0bef1b4 414 ptr++;
markoc 1:10e2a0bef1b4 415 }
markoc 1:10e2a0bef1b4 416 if( br_str == n_str ) return ret_str;
markoc 1:10e2a0bef1b4 417 return NULL;
markoc 1:10e2a0bef1b4 418 }
markoc 1:10e2a0bef1b4 419