|
|
@@ -39,63 +39,59 @@ void NetworkInit() {
|
|
|
else if (NutDhcpIfConfig(DEV_ETHER_NAME, NULL, 0)) {
|
|
|
printf("DHCP failed. \n");
|
|
|
}else {
|
|
|
- printf("Ik heb een internet connectie. Ip is: %s \n\n", inet_ntoa(confnet.cdn_ip_addr));
|
|
|
+ printf("Ik heb een internet connectie. Ip is: %s \nMac address is: %s\n\n", inet_ntoa(confnet.cdn_ip_addr), ether_ntoa(confnet.cdn_mac));
|
|
|
}
|
|
|
NutSleep(100);
|
|
|
hasNetwork = true;
|
|
|
}
|
|
|
|
|
|
+char* getMacAdress(){
|
|
|
+ ether_ntoa(confnet.cdn_mac);
|
|
|
+}
|
|
|
+
|
|
|
char* httpGet(char address[]){
|
|
|
isReceiving = true;
|
|
|
- NutDelay(1000);
|
|
|
- //printf("\n\n #-- HTTP get -- #\n");
|
|
|
+ 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 written: %sNow reading...\n", 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 +111,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) {
|
|
|
+ if (r <= 0) {
|
|
|
printf("Failed to parse JSON: %d \n", r);
|
|
|
+ return;
|
|
|
}else{
|
|
|
printf("Aantal tokens found: %d \n\n", r);
|
|
|
}
|
|
|
@@ -140,8 +137,12 @@ void parseAlarmJson(char* content){
|
|
|
char url[24];
|
|
|
char ip[24];
|
|
|
char name[16];
|
|
|
- int id;
|
|
|
- for (i = i; !((i + start) % 23 == 0); i++) {
|
|
|
+ memset(url, 0, 24);
|
|
|
+ memset(ip, 0, 24);
|
|
|
+ memset(name, 0, 16);
|
|
|
+
|
|
|
+ int id;
|
|
|
+ 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++;
|
|
|
@@ -173,7 +174,7 @@ void parseAlarmJson(char* content){
|
|
|
getStringToken(content, &token[i + 1], url);
|
|
|
i++;
|
|
|
}else if (jsoneq(content, &token[i], "name") == 0) {
|
|
|
- getStringToken(name, &token[i + 1], name);
|
|
|
+ getStringToken(content, &token[i + 1], name);
|
|
|
i++;
|
|
|
}
|
|
|
}
|
|
|
@@ -198,7 +199,6 @@ void parseAlarmJson(char* content){
|
|
|
}else{
|
|
|
usedAlarms[idx] = 1; //Alarm bestaat al, dus we houden deze plaats vrij voor dat alarm
|
|
|
}
|
|
|
- NutDelay(1000);
|
|
|
}
|
|
|
for(j = 0; j < maxAlarms(); j++){ //Alle overige plaatsen, die wij niet gezet hebben, verwijderen.
|
|
|
if(usedAlarms[j] == 0){
|