#include
"Arduino.h"
#include
"LoRa_E32.h"
#include
<SoftwareSerial.h>
SoftwareSerial mySerial(D2, D3);
LoRa_E32 e32ttl(
&
mySerial, D5, D7, D6);
void
printParameters(struct Configuration configuration);
void
printModuleInformation(struct ModuleInformation moduleInformation);
void
setup
()
{
Serial.begin
(
9600
);
while
(
!
Serial) {
;
}
delay
(
100
);
e32ttl.begin();
ResponseStructContainer c;
c
=
e32ttl.getConfiguration();
Configuration configuration
=
*
(Configuration
*
) c.data;
configuration.ADDL
=
0x01
;
configuration.ADDH
=
0x00
;
configuration.CHAN
=
0x04
;
configuration.OPTION.fixedTransmission
=
FT_FIXED_TRANSMISSION;
e32ttl.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
printParameters(configuration);
}
void
loop
()
{
delay
(
2000
);
Serial.println
(
"Send message to 00 03 04"
);
ResponseStatus rs
=
e32ttl.sendFixedMessage(
0
,
3
,
0x04
,
"Message to 00 03 04 device"
);
Serial.println
(rs.getResponseDescription());
}
void
printParameters(struct Configuration configuration) {
Serial.println
(
"----------------------------------------"
);
Serial.print
(F(
"HEAD : "
));
Serial.print
(configuration.HEAD, BIN);
Serial.print
(
" "
);
Serial.print
(configuration.HEAD, DEC);
Serial.print
(
" "
);
Serial.println
(configuration.HEAD, HEX);
Serial.println
(F(
" "
));
Serial.print
(F(
"AddH : "
));
Serial.println
(configuration.ADDH, BIN);
Serial.print
(F(
"AddL : "
));
Serial.println
(configuration.ADDL, BIN);
Serial.print
(F(
"Chan : "
));
Serial.print
(configuration.CHAN, DEC);
Serial.print
(
" -> "
);
Serial.println
(configuration.getChannelDescription());
Serial.println
(F(
" "
));
Serial.print
(F(
"SpeedParityBit : "
));
Serial.print
(configuration.SPED.uartParity, BIN);
Serial.print
(
" -> "
);
Serial.println
(configuration.SPED.getUARTParityDescription());
Serial.print
(F(
"SpeedUARTDatte : "
));
Serial.print
(configuration.SPED.uartBaudRate, BIN);
Serial.print
(
" -> "
);
Serial.println
(configuration.SPED.getUARTBaudRate());
Serial.print
(F(
"SpeedAirDataRate : "
));
Serial.print
(configuration.SPED.airDataRate, BIN);
Serial.print
(
" -> "
);
Serial.println
(configuration.SPED.getAirDataRate());
Serial.print
(F(
"OptionTrans : "
));
Serial.print
(configuration.OPTION.fixedTransmission, BIN);
Serial.print
(
" -> "
);
Serial.println
(configuration.OPTION.getFixedTransmissionDescription());
Serial.print
(F(
"OptionPullup : "
));
Serial.print
(configuration.OPTION.ioDriveMode, BIN);
Serial.print
(
" -> "
);
Serial.println
(configuration.OPTION.getIODroveModeDescription());
Serial.print
(F(
"OptionWakeup : "
));
Serial.print
(configuration.OPTION.wirelessWakeupTime, BIN);
Serial.print
(
" -> "
);
Serial.println
(configuration.OPTION.getWirelessWakeUPTimeDescription());
Serial.print
(F(
"OptionFEC : "
));
Serial.print
(configuration.OPTION.fec, BIN);
Serial.print
(
" -> "
);
Serial.println
(configuration.OPTION.getFECDescription());
Serial.print
(F(
"OptionPower : "
));
Serial.print
(configuration.OPTION.transmissionPower, BIN);
Serial.print
(
" -> "
);
Serial.println
(configuration.OPTION.getTransmissionPowerDescription());
Serial.println
(
"----------------------------------------"
);
}
void
printModuleInformation(struct ModuleInformation moduleInformation) {
Serial.println
(
"----------------------------------------"
);
Serial.print
(F(
"HEAD BIN: "
));
Serial.print
(moduleInformation.HEAD, BIN);
Serial.print
(
" "
);
Serial.print
(moduleInformation.HEAD, DEC);
Serial.print
(
" "
);
Serial.println
(moduleInformation.HEAD, HEX);
Serial.print
(F(
"Freq.: "
));
Serial.println
(moduleInformation.frequency, HEX);
Serial.print
(F(
"Version : "
));
Serial.println
(moduleInformation.version, HEX);
Serial.print
(F(
"Features : "
));
Serial.println
(moduleInformation.features, HEX);
Serial.println
(
"----------------------------------------"
);
}