Library for receiving data from fake inverter.

Committer:
khaiminhvn
Date:
Wed Mar 24 23:40:29 2021 +0000
Revision:
1:1b1e78592710
Parent:
0:e2b263279a61
Added connect() function

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jump_man 0:e2b263279a61 1 #include "Inverter.h"
jump_man 0:e2b263279a61 2
jump_man 0:e2b263279a61 3 Inverter::Inverter(char* url, int port, EthernetInterface* ethIn)
jump_man 0:e2b263279a61 4 {
jump_man 0:e2b263279a61 5 eth = ethIn;
khaiminhvn 1:1b1e78592710 6 connect(url,port);
khaiminhvn 1:1b1e78592710 7 }
khaiminhvn 1:1b1e78592710 8
khaiminhvn 1:1b1e78592710 9 void Inverter::connect(char* url, int port){
jump_man 0:e2b263279a61 10 eth->gethostbyname(url, &a);
jump_man 0:e2b263279a61 11 a.set_port(port);
jump_man 0:e2b263279a61 12 }
jump_man 0:e2b263279a61 13
jump_man 0:e2b263279a61 14 int Inverter::getPower()
jump_man 0:e2b263279a61 15 {
jump_man 0:e2b263279a61 16 socket.open(eth);
jump_man 0:e2b263279a61 17 socket.connect(a);
jump_man 0:e2b263279a61 18
jump_man 0:e2b263279a61 19 char sbuffer[] = "GET /solar_api/v1/GetInverterRealtimeData.cgi HTTP/1.1\r\nHost: int-sol-ref.herokuapp.com\r\n\r\n";
jump_man 0:e2b263279a61 20 int scount = socket.send(sbuffer, sizeof sbuffer);
jump_man 0:e2b263279a61 21
jump_man 0:e2b263279a61 22 char rbuffer[500];
jump_man 0:e2b263279a61 23 int rcount = socket.recv(rbuffer, sizeof rbuffer);
jump_man 0:e2b263279a61 24
jump_man 0:e2b263279a61 25 char *data = strstr(rbuffer, "{\"Body");
jump_man 0:e2b263279a61 26
jump_man 0:e2b263279a61 27 StaticJsonDocument<128> doc;
jump_man 0:e2b263279a61 28 DeserializationError error = deserializeJson(doc, data);
jump_man 0:e2b263279a61 29
jump_man 0:e2b263279a61 30 if (error) {
jump_man 0:e2b263279a61 31 printf("deserializeJson() failed.\r\n");
jump_man 0:e2b263279a61 32 return 0;
jump_man 0:e2b263279a61 33 }
jump_man 0:e2b263279a61 34
jump_man 0:e2b263279a61 35 int power = doc["Body"]["Data"]["PAC"]["Value"];
jump_man 0:e2b263279a61 36 socket.close();
jump_man 0:e2b263279a61 37 return power;
jump_man 0:e2b263279a61 38 }