Hi
How can I change this code so it compiles for M5Stack-Core2 instead of M5Stack-Core?
I tried replacing the M5Stack.h include with M5Core2.h but it didn't help. I also tried adding the latter to the first, but it also didn't help.
Thanks!
/*
device_B.ino
*/
#include <M5Stack.h>
#include <LoRaWan.h>
#define SerialUSB Serial
unsigned char buffer[128] = {
0,
};
uint8_t flag_test_868 = 0;
void key_scan(void *arg)
{
while (1)
{
onReceive();
// lora.loraDebug();
}
vTaskDelete(NULL);
}
void setup(void)
{
M5.begin(true,true,true,false);
SerialUSB.begin(9600);
lora.init();
delay(2000); // must delay for lorawan power on
lora.initP2PMode(868, SF12, BW500, 8, 8, 20);
M5.Lcd.setTextFont(2);
M5.Lcd.println("Device B");
M5.Lcd.setTextColor(BLUE);
int core = xPortGetCoreID();
// M5.Lcd.println(core);
xTaskCreatePinnedToCore(key_scan, "key_scan", 2048, NULL, 0, NULL, 0);
}
void loop(void)
{
// lora.loraDebug();
if (M5.BtnA.wasPressed())
{
M5.Lcd.setCursor(0, 20);
M5.Lcd.fillRect(0, 20, 320, 215, BLACK);
}
if (M5.BtnB.wasPressed()) //send data (433MHz)
{
flag_test_868 = 0;
M5.Lcd.setTextColor(BLUE);
init_433();
send_data();
delay(300);
Serial2.print("AT+TEST=RXLRPKT\r\n");
M5.Lcd.println("433M Init and Send \"Hello World\"...");
}
if (M5.BtnC.wasPressed()) //send data (868MHz)
{
flag_test_868 = 1;
M5.Lcd.setTextColor(YELLOW);
init_868();
send_data();
delay(300);
Serial2.print("AT+TEST=RXLRPKT\r\n");
M5.Lcd.println("868M Init and Send \"Hello World\"...");
}
M5.update();
}
void init_433()
{
lora.initP2PMode(433, SF12, BW500, 8, 8, 20);
}
void init_868()
{
lora.initP2PMode(868, SF12, BW500, 8, 8, 20);
}
void send_data()
{
lora.transferPacketP2PMode("hello world");
}
void onReceive()
{
short length = 0;
short rssi = 0;
memset(buffer, 0, 128);
length = lora.receivePacketP2PMode(buffer, 128, &rssi, 1);
if (length)
{
SerialUSB.print("Length is: ");
SerialUSB.println(length);
SerialUSB.print("RSSI is: ");
SerialUSB.println(rssi);
SerialUSB.print("Data is: ");
if (flag_test_868)
{
M5.Lcd.print("868M Recv: ");
}
else
{
M5.Lcd.print("433M Recv: ");
}
for (unsigned char i = 0; i < length; i++)
{
SerialUSB.print((char)buffer[i]);
M5.Lcd.print((char)buffer[i]);
// SerialUSB.print("0x");
// SerialUSB.print(buffer[i], HEX);
// SerialUSB.print(" ");
}
SerialUSB.println();
M5.Lcd.println();
}
}
Here are the first couple of errors that occur.
In file included from C:\Users\Thomas Nilsson\Documents\Arduino\libraries\M5Core2\src/M5Core2.h:78,
from C:\Users\Thomas Nilsson\Documents\Arduino\M5-ProductExampleCodes\Module\LORAWAN\Arduino\lorawan_receiver\lorawan_receiver.ino:6:
C:\Users\Thomas Nilsson\Documents\Arduino\libraries\M5Core2\src/utility/M5Button.h:804:7: error: redefinition of 'class Button'
class Button : public Zone {
^~~~~~
In file included from C:\Users\Thomas Nilsson\Documents\Arduino\libraries\M5Stack\src/M5Stack.h:110,
from C:\Users\Thomas Nilsson\Documents\Arduino\M5-ProductExampleCodes\Module\LORAWAN\Arduino\lorawan_receiver\lorawan_receiver.ino:5:
C:\Users\Thomas Nilsson\Documents\Arduino\libraries\M5Stack\src/utility/Button.h:18:7: note: previous definition of 'class Button'
class Button {
^~~~~~