espnowSimple 1
Loading...
Searching...
No Matches
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*/
14typedef struct myPackageType {
15 int seqNr;
16 uint8_t pkgTp; // should b 1
17 int i1;
18 float f[3];
19 char txt[5];
20 // ...
22
23typedef struct myPackageType2 {
24 int seqNr;
25 uint8_t pkgTp; // should be 2
26 float f;
27 char txt[7];
28 // ...
30
31// more to come if you need more package types
32
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
40void espSimpleNowCallbackDataSent(const bool success) {
41 //JDN Serial.print("tx(0 == ok) ");
42 //Serial.println(scs);
43}
44
50
51void 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
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
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
103void 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
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
127void txTest() {
128 txPkg.i1++;
129 espSimpleNowBroadcastData((char *)(&txPkg), sizeof(myPackageType));
130
131 txPkg2.f += 1.0;
133
134
135 digitalWrite(5, !digitalRead(5));
136}
137
138void loop() {
139 txTest();
140 delay(2000);
141}
uint8_t espSimpleNowBroadcastData(char *data, uint16_t len)
uint8_t espSimpleNowInit(uint8_t macAddrLastByte)
void espSimpleNowSetMacAddr(uint8_t mac[6])
void espSimpleNowGetMacAddr(uint8_t mac[6])
myPackageType txPkg
uint8_t testMac[6]
myPackageType rxPkg
myPackageType2 rxPkg2
myPackageType2 txPkg2
void espSimpleNowCallbackBinRcvd(const uint8_t *data, int len)
void espSimpleNowCallbackDataSent(const bool success)
void setup()
void txTest()
void testMacAddr()
void loop()