espnowSimple
1
Loading...
Searching...
No Matches
examples
simplewritetestmac
simplewritetestmac.ino
Go to the documentation of this file.
1
// JDN @ AAU
2
// beer license http://jensd.dk/doc/beerlicense.txt
3
// Apr 2024
4
5
#include <
espnowsimple.h
>
6
7
/* simplewritetestmac demonstrate how to change brodsact mac adrr
8
*/
9
10
11
/*
12
* packed directive packs the struct on byte aligment
13
*/
14
typedef
struct
myPackageType
{
15
int
seqNr
;
16
uint8_t
pkgTp
;
// should b 1
17
int
i1
;
18
float
f
[3];
19
char
txt
[5];
20
// ...
21
}
myPackageType
;
22
23
typedef
struct
myPackageType2
{
24
int
seqNr
;
25
uint8_t
pkgTp
;
// should be 2
26
float
f
;
27
char
txt
[7];
28
// ...
29
}
myPackageType2
;
30
31
// more to come if you need more package types
32
33
myPackageType
txPkg
,
rxPkg
;
34
myPackageType2
txPkg2
,
rxPkg2
;
35
36
// getting my callbacks up and running
37
// seems to have problems if we do tx and rx at same tiem
38
// even if no package loss is detected
39
40
void
espSimpleNowCallbackDataSent
(
const
bool
success) {
41
//JDN Serial.print("tx(0 == ok) ");
42
//Serial.println(scs);
43
}
44
50
51
void
espSimpleNowCallbackBinRcvd
(
const
uint8_t *data,
int
len) {
52
// test
53
// we do know the first element is uint8_t the ppkgTp;
54
// you can check if missing packages - se simplewrite02 /JDN
55
switch
(*data) {
56
case
1:
// myPackageType
57
// extra chk if type an size fits together
58
if
(len ==
sizeof
(
myPackageType
)) {
59
rxPkg
= *((
myPackageType
*)data);
60
61
Serial.print(
"rx callback ok type 1 pkg: "
);
62
Serial.println(
rxPkg
.i1);
63
}
64
break
;
65
case
2:
// myPackageType2
66
if
(len ==
sizeof
(
myPackageType2
)) {
67
rxPkg2
= *((
myPackageType2
*)data);
68
69
Serial.print(
"rx callback ok type 2 pkg: "
);
70
Serial.println(
rxPkg2
.f);
71
}
72
break
;
73
default
:
// MISSING
74
Serial.print(
"unknown pkg, type field:"
);
75
Serial.println(*data);
76
}
77
}
78
79
// max max 250 Bytes data acc expressif
80
//uint8_t espSimpleNowBroadcastData(char *data, uint16_t len)
81
82
83
84
void
testMacAddr
() {
85
uint8_t
testMac
[6] = { 2, 2, 3, 4, 5, 6 };
86
87
espSimpleNowGetMacAddr
(
testMac
);
// get 6 byte MAC address
88
Serial.print(
" mac bef "
);
89
Serial.println(
testMac
[0]);
90
91
92
testMac
[0] = 0;
//lsb byte in mac
93
94
espSimpleNowSetMacAddr
(
testMac
);
95
Serial.print(
" mac before "
);
96
Serial.println(
testMac
[0]);
97
98
espSimpleNowGetMacAddr
(
testMac
);
// get new 6 byte MAC address
99
Serial.print(
" mac after "
);
100
Serial.println(
testMac
[0]);
101
}
102
103
void
setup
() {
104
105
pinMode(5, OUTPUT);
// led pin on cansat NeXt
106
107
Serial.begin(115200);
108
delay(100);
109
Serial.println(
"test"
);
110
111
// testMacAddr();
112
113
espSimpleNowInit
(72);
114
115
// init data
116
// so callback rx can see different
117
txPkg
.seqNr = 0;
118
txPkg
.pkgTp = 1;
119
txPkg
.i1 = 40000;
120
121
122
txPkg2
.seqNr = 0;
123
txPkg2
.pkgTp = 2;
124
txPkg2
.f = 9111.24;
125
}
126
127
void
txTest
() {
128
txPkg
.i1++;
129
espSimpleNowBroadcastData
((
char
*)(&
txPkg
),
sizeof
(
myPackageType
));
130
131
txPkg2
.f += 1.0;
132
espSimpleNowBroadcastData
((
char
*)(&
txPkg2
),
sizeof
(
myPackageType2
));
133
134
135
digitalWrite(5, !digitalRead(5));
136
}
137
138
void
loop
() {
139
txTest
();
140
delay(2000);
141
}
espSimpleNowBroadcastData
uint8_t espSimpleNowBroadcastData(char *data, uint16_t len)
Definition
espnowsimple.cpp:130
espSimpleNowInit
uint8_t espSimpleNowInit(uint8_t macAddrLastByte)
Definition
espnowsimple.cpp:114
espSimpleNowSetMacAddr
void espSimpleNowSetMacAddr(uint8_t mac[6])
Definition
espnowsimple.cpp:142
espSimpleNowGetMacAddr
void espSimpleNowGetMacAddr(uint8_t mac[6])
Definition
espnowsimple.cpp:148
espnowsimple.h
txPkg
myPackageType txPkg
Definition
simplewrite02.ino:28
testMac
uint8_t testMac[6]
Definition
simplewrite02.ino:67
rxPkg
myPackageType rxPkg
Definition
simplewrite02.ino:28
rxPkg2
myPackageType2 rxPkg2
Definition
simplewrite03.ino:47
txPkg2
myPackageType2 txPkg2
Definition
simplewrite03.ino:47
espSimpleNowCallbackBinRcvd
void espSimpleNowCallbackBinRcvd(const uint8_t *data, int len)
Definition
simplewritetestmac.ino:51
espSimpleNowCallbackDataSent
void espSimpleNowCallbackDataSent(const bool success)
Definition
simplewritetestmac.ino:40
setup
void setup()
Definition
simplewritetestmac.ino:103
txTest
void txTest()
Definition
simplewritetestmac.ino:127
testMacAddr
void testMacAddr()
Definition
simplewritetestmac.ino:84
loop
void loop()
Definition
simplewritetestmac.ino:138
myPackageType2
Definition
simplewrite03.ino:36
myPackageType2::txt
char txt[7]
Definition
simplewrite03.ino:40
myPackageType2::seqNr
int seqNr
Definition
simplewrite03.ino:37
myPackageType2::pkgTp
uint8_t pkgTp
Definition
simplewrite03.ino:38
myPackageType2::f
float f
Definition
simplewrite03.ino:39
myPackageType
Definition
simplewrite02.ino:19
myPackageType::txt
char txt[5]
Definition
simplewrite02.ino:23
myPackageType::i1
int i1
Definition
simplewrite02.ino:21
myPackageType::pkgTp
uint8_t pkgTp
Definition
simplewrite03.ino:29
myPackageType::f
float f[3]
Definition
simplewrite02.ino:22
myPackageType::seqNr
int seqNr
Definition
simplewrite02.ino:20
Generated by
1.14.0