|
|
@@ -47,55 +47,47 @@ void NetworkInit() {
|
|
|
|
|
|
char* httpGet(char address[]){
|
|
|
isReceiving = true;
|
|
|
- NutDelay(1000);
|
|
|
printf("\n\n #-- HTTP get -- #\n");
|
|
|
|
|
|
TCPSOCKET* sock = NutTcpCreateSocket();
|
|
|
|
|
|
- char http[strlen(address) + 49]; //49 chars based on get command. Change this number if you change the domain name
|
|
|
- sprintf(http, "GET %s HTTP/1.1\r\nHost: saltyradio.jancokock.me \r\n\r\n", address);
|
|
|
- int len = sizeof(http);
|
|
|
-
|
|
|
- char buffer[800];
|
|
|
- memset(buffer, 0, 800);
|
|
|
+ char buffer[2];
|
|
|
+ char* content = (char*) calloc(1 , 800);
|
|
|
+ char enters = 0;
|
|
|
+ int t = 0;
|
|
|
|
|
|
- if (NutTcpConnect(sock, inet_addr("62.195.226.247"), 80)) {
|
|
|
+ if(content == 0){
|
|
|
+ printf("Can't calloc memory\n");
|
|
|
+ }else if (NutTcpConnect(sock, inet_addr("62.195.226.247"), 80)) {
|
|
|
printf("Can't connect to server\n");
|
|
|
}else{
|
|
|
- //FILE *stream;
|
|
|
- //stream = _fdopen((int) sock, "r b");
|
|
|
- if(NutTcpSend(sock, http, len) != len){
|
|
|
- printf("Writing headers failed.\n");
|
|
|
- NutDelay(1000);
|
|
|
- }else{
|
|
|
- printf("Headers %s writed. Now reading.", http);
|
|
|
- NutDelay(1000);
|
|
|
- NutTcpReceive(sock, buffer, sizeof(buffer));
|
|
|
- //fread(buffer, 1, sizeof(buffer), stream);
|
|
|
- NutDelay(1200);
|
|
|
- printf(buffer);
|
|
|
- };
|
|
|
- //fclose(stream);
|
|
|
- }
|
|
|
- NutTcpCloseSocket(sock);
|
|
|
- int i;
|
|
|
- int enters = 0;
|
|
|
- int t = 0;
|
|
|
- char* content = (char*) calloc(1 , sizeof(buffer));
|
|
|
- for(i = 0; i < strlen(buffer); i++)
|
|
|
- {
|
|
|
- if(enters == 4) {
|
|
|
- content[t] = buffer[i];
|
|
|
- t++;
|
|
|
- }else {
|
|
|
- if (buffer[i] == '\n' || buffer[i] == '\r') {
|
|
|
- enters++;
|
|
|
- }
|
|
|
- else {
|
|
|
- enters = 0;
|
|
|
+ FILE *stream;
|
|
|
+ stream = _fdopen((int) sock, "r+b");
|
|
|
+
|
|
|
+ //Writing http GET to stream
|
|
|
+ fprintf(stream, "GET %s HTTP/1.1\r\nHost: saltyradio.jancokock.me \r\n\r\n", address);
|
|
|
+ fflush(stream);
|
|
|
+
|
|
|
+ printf("Headers writed. Now reading.");
|
|
|
+ NutDelay(500);
|
|
|
+ //Removing header:
|
|
|
+ while(fgets(buffer, sizeof(buffer), stream) != NULL) {
|
|
|
+ if(enters == 4) {
|
|
|
+ content[t] = buffer[0];
|
|
|
+ t++;
|
|
|
+ }else {
|
|
|
+ if (buffer[0] == '\n' || buffer[0] == '\r') {
|
|
|
+ enters++;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ enters = 0;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ fclose(stream);
|
|
|
}
|
|
|
+ NutTcpCloseSocket(sock);
|
|
|
+
|
|
|
content[t] = '\0';
|
|
|
printf("\nContent size: %d, Content: %s \n", t, content);
|
|
|
isReceiving = false;
|
|
|
@@ -115,12 +107,13 @@ void parseAlarmJson(char* content){
|
|
|
int r;
|
|
|
int i;
|
|
|
jsmn_parser p;
|
|
|
- jsmntok_t token[100]; /* We expect no more than 128 tokens */
|
|
|
+ jsmntok_t token[150]; /* We expect no more than 128 tokens */
|
|
|
|
|
|
jsmn_init(&p);
|
|
|
r = jsmn_parse(&p, content, strlen(content), token, sizeof(token)/sizeof(token[0]));
|
|
|
if (r < 0) {
|
|
|
printf("Failed to parse JSON: %d \n", r);
|
|
|
+ return;
|
|
|
}else{
|
|
|
printf("Aantal tokens found: %d \n", r);
|
|
|
}
|
|
|
@@ -145,7 +138,7 @@ void parseAlarmJson(char* content){
|
|
|
memset(name, 0, 16);
|
|
|
|
|
|
int id;
|
|
|
- for (i = i; !((i + start) % 23 == 0); i++) {
|
|
|
+ for (i = i; !((i + start) % 24 == 0); i++) {
|
|
|
if (jsoneq(content, &token[i], "YYYY") == 0) {
|
|
|
time.tm_year= getIntegerToken(content, &token[i + 1]) - 1900;
|
|
|
i++;
|