-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrz_action.h
executable file
·167 lines (134 loc) · 3.62 KB
/
rz_action.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
/*
TITLE:
rz_action.h
BRIEF:
header only library
DESC:
Arduino library for ESP32, just provides some (LOra) functions
* don't use, deprecated
SOURCE:
https://github.com/Zheng-Bote/esp32_libs
SYNTAX:
#include "rz_action.h"
RETURN:
void
HISTORY:
Version | Date | Developer | Comments
------- | ---------- | ---------------- | ---------------------------------------------------------------
0.0.1 | 2019-10-05 | RZheng | created
0.0.2 | 2019-10-06 | RZheng | added: rz_action_msg_rcv()
*/
#include "Arduino.h"
#include <ArduinoJson.h>
#ifndef rz_action
#define rz_action
// Sender / Receiver
// 0 = Dragino GW, 1 = Congstar,
static int senderArr[2] = {0, 1};
// sender , receiver
// ogw1 (output GW 0), igw1 (input GW 0), 1099 | BC91 ...
// char sender[4], char receiver[4], char command[3], char msg[32] char datamsg[50]
// command
// T0, T1, T2, T3, T4, T5
// 0 = Alarm, 1 = Sensor, 2 = Presence, 3 = Actor, 4 = Tester, 5 = System
static int typeArr[5] = {0, 1, 2, 3, 4};
// Mobile phone
// char callerID1[] = "+49162xxxx"; char callerID2[] = "+49162xxxxx";
// callerID1 = Sony , callerID2 = Samsung
// Name
static char nameID1[] = "RZheng", nameID2[] = "MZheng";
// #################################################
struct payloadMsg
{
char sender[50];
char receiver[50];
char type[20];
char msg[32];
char phone[32];
char fullname[7];
};
//payload = {0,0,0,0,0};
struct payloadMsg payload;
// rz_action_payload(&payload);
void rz_action_payload(struct payloadMsg *payload)
{
// Zugriff auf die Elemente
//payload->fullname="111111";
//strcpy(payload.sender, "Dragino GW");
Serial.print("Name: ");
Serial.println(payload->sender);
Serial.println(payload->receiver);
Serial.println(payload->type);
Serial.println(payload->phone);
Serial.println(payload->msg);
//rz_sendLora("i00", "T3", payload->msg);
/*
int i = actionArr[0];
switch(i)
{
case 0: Serial.println("null\n"); break;
case 1: Serial.println("eins\n"); break;
case 2: printf("zwei\n"); break;
case 3: printf("drei\n"); break;
default: printf("irgendwas\n"); break;
}
*/
}
void rz_action_msg_rcv(String receiver, String command, String sendfrom, String datamsg)
{
// JSON
StaticJsonDocument<200> doc;
//char json[] = "{\"n\":\"gps\",\"d\":\"Hello World\"}";
DeserializationError error = deserializeJson(doc, datamsg);
// Test if parsing succeeds.
if (error)
{
Serial.print(F("deserializeJson() failed: "));
Serial.println(error.c_str());
//return;
}
int len = receiver.length() + 1;
char* buf = new char[len];
strcpy(buf, receiver.c_str());
// => zuerst Abfrage nach command Typ
//if(strcmp(buf), "1099") == 0)
if (receiver.equals("1099") != 0)
{
Serial.print("Receiver: ");
Serial.println(receiver);
const char* sensor = doc["n"];
const char* daten = doc["d"];
Serial.println("Data:");
Serial.println(sensor);
Serial.println(daten);
// OK: rz_pcf8574_setPin(2, "on");
}
else if(receiver.equals("0C27") != 0)
{
Serial.println("\t => Msg for me");
if(command.equals("0C27/T5") != 0)
{
Serial.print("\t\tCommand: ");
Serial.println(command);
if(datamsg.equals("status") != 0)
{
Serial.print("\t\tMsg status: ");
Serial.println(datamsg);
}
if(datamsg.equals("update") != 0)
{
Serial.print("\t\tMsg update: ");
Serial.println(datamsg);
}
}
}
else
{
Serial.println("Nope: ");
Serial.print("Receiver: ");
Serial.println(receiver);
Serial.print("Sender: ");
Serial.println(sendfrom);
}
}
#endif