Merge branch 'master' into t3s3-1121

This commit is contained in:
Thomas Göttgens 2024-09-26 12:13:45 +02:00 committed by GitHub
commit fff2e435b5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
25 changed files with 45 additions and 47 deletions

View File

@ -24,7 +24,7 @@
class SafeFile : public Print class SafeFile : public Print
{ {
public: public:
SafeFile(char const *filepath, bool fullAtomic = false); explicit SafeFile(char const *filepath, bool fullAtomic = false);
virtual size_t write(uint8_t); virtual size_t write(uint8_t);
virtual size_t write(const uint8_t *buffer, size_t size); virtual size_t write(const uint8_t *buffer, size_t size);

View File

@ -405,9 +405,9 @@ int GPS::getACK(uint8_t *buffer, uint16_t size, uint8_t requestedClass, uint8_t
bool GPS::setup() bool GPS::setup()
{ {
int msglen = 0;
if (!didSerialInit) { if (!didSerialInit) {
int msglen = 0;
if (tx_gpio && gnssModel == GNSS_MODEL_UNKNOWN) { if (tx_gpio && gnssModel == GNSS_MODEL_UNKNOWN) {
// if GPS_BAUDRATE is specified in variant (i.e. not 9600), skip to the specified rate. // if GPS_BAUDRATE is specified in variant (i.e. not 9600), skip to the specified rate.

View File

@ -2201,7 +2201,7 @@ void Screen::setFrames(FrameFocus focus)
case FOCUS_PRESERVE: case FOCUS_PRESERVE:
// If we can identify which type of frame "originalPosition" was, can move directly to it in the new frameset // If we can identify which type of frame "originalPosition" was, can move directly to it in the new frameset
FramesetInfo &oldFsi = this->framesetInfo; const FramesetInfo &oldFsi = this->framesetInfo;
if (originalPosition == oldFsi.positions.log) if (originalPosition == oldFsi.positions.log)
ui->switchToFrame(fsi.positions.log); ui->switchToFrame(fsi.positions.log);
else if (originalPosition == oldFsi.positions.settings) else if (originalPosition == oldFsi.positions.settings)

View File

@ -973,7 +973,7 @@ void setup()
#if defined(USE_LR1110) #if defined(USE_LR1110)
if ((!rIf) && (config.lora.region != meshtastic_Config_LoRaConfig_RegionCode_LORA_24)) { if ((!rIf) && (config.lora.region != meshtastic_Config_LoRaConfig_RegionCode_LORA_24)) {
rIf = new LR1110Interface(RadioLibHAL, LR1110_SPI_NSS_PIN, LR1110_IRQ_PIN, LR1110_NRESER_PIN, LR1110_BUSY_PIN); rIf = new LR1110Interface(RadioLibHAL, LR1110_SPI_NSS_PIN, LR1110_IRQ_PIN, LR1110_NRESET_PIN, LR1110_BUSY_PIN);
if (!rIf->init()) { if (!rIf->init()) {
LOG_WARN("Failed to find LR1110 radio\n"); LOG_WARN("Failed to find LR1110 radio\n");
delete rIf; delete rIf;
@ -987,7 +987,7 @@ void setup()
#if defined(USE_LR1120) #if defined(USE_LR1120)
if (!rIf) { if (!rIf) {
rIf = new LR1120Interface(RadioLibHAL, LR1120_SPI_NSS_PIN, LR1120_IRQ_PIN, LR1120_NRESER_PIN, LR1120_BUSY_PIN); rIf = new LR1120Interface(RadioLibHAL, LR1120_SPI_NSS_PIN, LR1120_IRQ_PIN, LR1120_NRESET_PIN, LR1120_BUSY_PIN);
if (!rIf->init()) { if (!rIf->init()) {
LOG_WARN("Failed to find LR1120 radio\n"); LOG_WARN("Failed to find LR1120 radio\n");
delete rIf; delete rIf;

View File

@ -167,12 +167,12 @@ bool CryptoEngine::setDHKey(uint32_t nodeNum)
void CryptoEngine::hash(uint8_t *bytes, size_t numBytes) void CryptoEngine::hash(uint8_t *bytes, size_t numBytes)
{ {
SHA256 hash; SHA256 hash;
size_t posn, len; size_t posn;
uint8_t size = numBytes; uint8_t size = numBytes;
uint8_t inc = 16; uint8_t inc = 16;
hash.reset(); hash.reset();
for (posn = 0; posn < size; posn += inc) { for (posn = 0; posn < size; posn += inc) {
len = size - posn; size_t len = size - posn;
if (len > inc) if (len > inc)
len = inc; len = inc;
hash.update(bytes + posn, len); hash.update(bytes + posn, len);

View File

@ -108,7 +108,7 @@ template <class T> class ProtobufModule : protected SinglePortModule
T *decoded = NULL; T *decoded = NULL;
if (mp.which_payload_variant == meshtastic_MeshPacket_decoded_tag && mp.decoded.portnum == ourPortNum) { if (mp.which_payload_variant == meshtastic_MeshPacket_decoded_tag && mp.decoded.portnum == ourPortNum) {
memset(&scratch, 0, sizeof(scratch)); memset(&scratch, 0, sizeof(scratch));
auto &p = mp.decoded; const meshtastic_Data &p = mp.decoded;
if (pb_decode_from_bytes(p.payload.bytes, p.payload.size, fields, &scratch)) { if (pb_decode_from_bytes(p.payload.bytes, p.payload.size, fields, &scratch)) {
decoded = &scratch; decoded = &scratch;
} else { } else {

View File

@ -95,7 +95,7 @@ static void aes_ccm_encr(size_t L, const uint8_t *in, size_t len, uint8_t *out,
*out++ ^= *in++; *out++ ^= *in++;
} }
} }
static void aes_ccm_encr_auth(size_t M, uint8_t *x, uint8_t *a, uint8_t *auth) static void aes_ccm_encr_auth(size_t M, const uint8_t *x, uint8_t *a, uint8_t *auth)
{ {
size_t i; size_t i;
uint8_t tmp[AES_BLOCK_SIZE]; uint8_t tmp[AES_BLOCK_SIZE];

View File

@ -339,7 +339,7 @@ int32_t readUTF8(const char *in, int len, int l, int *utf8len)
/// This is also used for Unicode strings \n /// This is also used for Unicode strings \n
/// This is a crude implementation that is not optimized. Assuming only short strings \n /// This is a crude implementation that is not optimized. Assuming only short strings \n
/// are encoded, this is not much of an issue. /// are encoded, this is not much of an issue.
int matchOccurance(const char *in, int len, int l, char *out, int olen, int *ol, uint8_t *state, const uint8_t usx_hcodes[], int matchOccurance(const char *in, int len, int l, char *out, int olen, int *ol, const uint8_t *state, const uint8_t usx_hcodes[],
const uint8_t usx_hcode_lens[]) const uint8_t usx_hcode_lens[])
{ {
int j, k; int j, k;
@ -383,7 +383,7 @@ int matchOccurance(const char *in, int len, int l, char *out, int olen, int *ol,
/// This is also used for Unicode strings \n /// This is also used for Unicode strings \n
/// This is a crude implementation that is not optimized. Assuming only short strings \n /// This is a crude implementation that is not optimized. Assuming only short strings \n
/// are encoded, this is not much of an issue. /// are encoded, this is not much of an issue.
int matchLine(const char *in, int len, int l, char *out, int olen, int *ol, struct us_lnk_lst *prev_lines, uint8_t *state, int matchLine(const char *in, int len, int l, char *out, int olen, int *ol, struct us_lnk_lst *prev_lines, const uint8_t *state,
const uint8_t usx_hcodes[], const uint8_t usx_hcode_lens[]) const uint8_t usx_hcodes[], const uint8_t usx_hcode_lens[])
{ {
int last_ol = *ol; int last_ol = *ol;

View File

@ -60,10 +60,9 @@ char *strnstr(const char *s, const char *find, size_t slen)
void printBytes(const char *label, const uint8_t *p, size_t numbytes) void printBytes(const char *label, const uint8_t *p, size_t numbytes)
{ {
char *messageBuffer;
int labelSize = strlen(label); int labelSize = strlen(label);
if (labelSize < 100 && numbytes < 64) { if (labelSize < 100 && numbytes < 64) {
messageBuffer = new char[labelSize + (numbytes * 3) + 2]; char *messageBuffer = new char[labelSize + (numbytes * 3) + 2];
strncpy(messageBuffer, label, labelSize); strncpy(messageBuffer, label, labelSize);
for (size_t i = 0; i < numbytes; i++) for (size_t i = 0; i < numbytes; i++)
snprintf(messageBuffer + labelSize + i * 3, 4, " %02x", p[i]); snprintf(messageBuffer + labelSize + i * 3, 4, " %02x", p[i]);

View File

@ -1026,7 +1026,7 @@ bool AdminModule::checkPassKey(meshtastic_AdminMessage *res)
memcmp(res->session_passkey.bytes, session_passkey, 8) == 0); memcmp(res->session_passkey.bytes, session_passkey, 8) == 0);
} }
bool AdminModule::messageIsResponse(meshtastic_AdminMessage *r) bool AdminModule::messageIsResponse(const meshtastic_AdminMessage *r)
{ {
if (r->which_payload_variant == meshtastic_AdminMessage_get_channel_response_tag || if (r->which_payload_variant == meshtastic_AdminMessage_get_channel_response_tag ||
r->which_payload_variant == meshtastic_AdminMessage_get_owner_response_tag || r->which_payload_variant == meshtastic_AdminMessage_get_owner_response_tag ||
@ -1043,7 +1043,7 @@ bool AdminModule::messageIsResponse(meshtastic_AdminMessage *r)
return false; return false;
} }
bool AdminModule::messageIsRequest(meshtastic_AdminMessage *r) bool AdminModule::messageIsRequest(const meshtastic_AdminMessage *r)
{ {
if (r->which_payload_variant == meshtastic_AdminMessage_get_channel_request_tag || if (r->which_payload_variant == meshtastic_AdminMessage_get_channel_request_tag ||
r->which_payload_variant == meshtastic_AdminMessage_get_owner_request_tag || r->which_payload_variant == meshtastic_AdminMessage_get_owner_request_tag ||

View File

@ -55,8 +55,8 @@ class AdminModule : public ProtobufModule<meshtastic_AdminMessage>, public Obser
void setPassKey(meshtastic_AdminMessage *res); void setPassKey(meshtastic_AdminMessage *res);
bool checkPassKey(meshtastic_AdminMessage *res); bool checkPassKey(meshtastic_AdminMessage *res);
bool messageIsResponse(meshtastic_AdminMessage *r); bool messageIsResponse(const meshtastic_AdminMessage *r);
bool messageIsRequest(meshtastic_AdminMessage *r); bool messageIsRequest(const meshtastic_AdminMessage *r);
}; };
extern AdminModule *adminModule; extern AdminModule *adminModule;

View File

@ -78,16 +78,16 @@ int CannedMessageModule::splitConfiguredMessages()
int messageIndex = 0; int messageIndex = 0;
int i = 0; int i = 0;
String messages = cannedMessageModuleConfig.messages; String canned_messages = cannedMessageModuleConfig.messages;
#if defined(T_WATCH_S3) || defined(RAK14014) #if defined(T_WATCH_S3) || defined(RAK14014)
String separator = messages.length() ? "|" : ""; String separator = canned_messages.length() ? "|" : "";
messages = "[---- Free Text ----]" + separator + messages; canned_messages = "[---- Free Text ----]" + separator + canned_messages;
#endif #endif
// collect all the message parts // collect all the message parts
strncpy(this->messageStore, messages.c_str(), sizeof(this->messageStore)); strncpy(this->messageStore, canned_messages.c_str(), sizeof(this->messageStore));
// The first message points to the beginning of the store. // The first message points to the beginning of the store.
this->messages[messageIndex++] = this->messageStore; this->messages[messageIndex++] = this->messageStore;

View File

@ -216,7 +216,7 @@ void EnvironmentTelemetryModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiSt
uint32_t agoSecs = GetTimeSinceMeshPacket(lastMeasurementPacket); uint32_t agoSecs = GetTimeSinceMeshPacket(lastMeasurementPacket);
const char *lastSender = getSenderShortName(*lastMeasurementPacket); const char *lastSender = getSenderShortName(*lastMeasurementPacket);
auto &p = lastMeasurementPacket->decoded; const meshtastic_Data &p = lastMeasurementPacket->decoded;
if (!pb_decode_from_bytes(p.payload.bytes, p.payload.size, &meshtastic_Telemetry_msg, &lastMeasurement)) { if (!pb_decode_from_bytes(p.payload.bytes, p.payload.size, &meshtastic_Telemetry_msg, &lastMeasurement)) {
display->drawString(x, y, "Measurement Error"); display->drawString(x, y, "Measurement Error");
LOG_ERROR("Unable to decode last packet"); LOG_ERROR("Unable to decode last packet");

View File

@ -122,7 +122,7 @@ void PowerTelemetryModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiState *s
uint32_t agoSecs = GetTimeyWimeySinceMeshPacket(lastMeasurementPacket); uint32_t agoSecs = GetTimeyWimeySinceMeshPacket(lastMeasurementPacket);
const char *lastSender = getSenderShortName(*lastMeasurementPacket); const char *lastSender = getSenderShortName(*lastMeasurementPacket);
auto &p = lastMeasurementPacket->decoded; const meshtastic_Data &p = lastMeasurementPacket->decoded;
if (!pb_decode_from_bytes(p.payload.bytes, p.payload.size, &meshtastic_Telemetry_msg, &lastMeasurement)) { if (!pb_decode_from_bytes(p.payload.bytes, p.payload.size, &meshtastic_Telemetry_msg, &lastMeasurement)) {
display->setFont(FONT_SMALL); display->setFont(FONT_SMALL);
display->drawString(x, y += _fontHeight(FONT_MEDIUM), "Measurement Error"); display->drawString(x, y += _fontHeight(FONT_MEDIUM), "Measurement Error");

View File

@ -11,7 +11,7 @@ bool TraceRouteModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, m
void TraceRouteModule::alterReceivedProtobuf(meshtastic_MeshPacket &p, meshtastic_RouteDiscovery *r) void TraceRouteModule::alterReceivedProtobuf(meshtastic_MeshPacket &p, meshtastic_RouteDiscovery *r)
{ {
auto &incoming = p.decoded; const meshtastic_Data &incoming = p.decoded;
// Insert unknown hops if necessary // Insert unknown hops if necessary
insertUnknownHops(p, r, !incoming.request_id); insertUnknownHops(p, r, !incoming.request_id);

View File

@ -89,7 +89,7 @@ void WaypointModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state,
display->fillRect(0 + x, 0 + y, x + display->getWidth(), y + FONT_HEIGHT_SMALL); display->fillRect(0 + x, 0 + y, x + display->getWidth(), y + FONT_HEIGHT_SMALL);
// Decode the waypoint // Decode the waypoint
meshtastic_MeshPacket &mp = devicestate.rx_waypoint; const meshtastic_MeshPacket &mp = devicestate.rx_waypoint;
meshtastic_Waypoint wp; meshtastic_Waypoint wp;
memset(&wp, 0, sizeof(wp)); memset(&wp, 0, sizeof(wp));
if (!pb_decode_from_bytes(mp.decoded.payload.bytes, mp.decoded.payload.size, &meshtastic_Waypoint_msg, &wp)) { if (!pb_decode_from_bytes(mp.decoded.payload.bytes, mp.decoded.payload.size, &meshtastic_Waypoint_msg, &wp)) {
@ -171,16 +171,16 @@ void WaypointModule::drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state,
strncpy(distStr, "? km", sizeof(distStr)); strncpy(distStr, "? km", sizeof(distStr));
} }
// Draw compass circle
display->drawCircle(compassX, compassY, compassDiam / 2);
// Undo color-inversion, if set prior to drawing header // Undo color-inversion, if set prior to drawing header
// Unsure of expected behavior? For now: copy drawNodeInfo // Unsure of expected behavior? For now: copy drawNodeInfo
if (config.display.displaymode == meshtastic_Config_DisplayConfig_DisplayMode_INVERTED) { if (config.display.displaymode == meshtastic_Config_DisplayConfig_DisplayMode_INVERTED) {
display->setColor(BLACK); display->setColor(BLACK);
} }
// Draw compass circle
display->drawCircle(compassX, compassY, compassDiam / 2);
// Must be after distStr is populated // Must be after distStr is populated
screen->drawColumns(display, x, y, fields); screen->drawColumns(display, x, y, fields);
} }
#endif #endif

View File

@ -184,8 +184,8 @@ void MQTT::onReceive(char *topic, byte *payload, size_t length)
// PKI messages get accepted even if we can't decrypt // PKI messages get accepted even if we can't decrypt
if (router && p->which_payload_variant == meshtastic_MeshPacket_encrypted_tag && if (router && p->which_payload_variant == meshtastic_MeshPacket_encrypted_tag &&
strcmp(e.channel_id, "PKI") == 0) { strcmp(e.channel_id, "PKI") == 0) {
meshtastic_NodeInfoLite *tx = nodeDB->getMeshNode(getFrom(p)); const meshtastic_NodeInfoLite *tx = nodeDB->getMeshNode(getFrom(p));
meshtastic_NodeInfoLite *rx = nodeDB->getMeshNode(p->to); const meshtastic_NodeInfoLite *rx = nodeDB->getMeshNode(p->to);
// Only accept PKI messages to us, or if we have both the sender and receiver in our nodeDB, as then it's // Only accept PKI messages to us, or if we have both the sender and receiver in our nodeDB, as then it's
// likely they discovered each other via a channel we have downlink enabled for // likely they discovered each other via a channel we have downlink enabled for
if (p->to == nodeDB->getNodeNum() || (tx && tx->has_user && rx && rx->has_user)) if (p->to == nodeDB->getNodeNum() || (tx && tx->has_user && rx && rx->has_user))

View File

@ -48,11 +48,10 @@ extern "C" void bootloader_util_app_start(uint32_t start_addr);
static uint16_t crc16(const uint8_t *data_p, uint8_t length) static uint16_t crc16(const uint8_t *data_p, uint8_t length)
{ {
uint8_t x;
uint16_t crc = 0xFFFF; uint16_t crc = 0xFFFF;
while (length--) { while (length--) {
x = crc >> 8 ^ *data_p++; uint8_t x = crc >> 8 ^ *data_p++;
x ^= x >> 4; x ^= x >> 4;
crc = (crc << 8) ^ ((uint16_t)(x << 12)) ^ ((uint16_t)(x << 5)) ^ ((uint16_t)x); crc = (crc << 8) ^ ((uint16_t)(x << 12)) ^ ((uint16_t)(x << 5)) ^ ((uint16_t)x);
} }

View File

@ -37,14 +37,14 @@
#define FREE_ARRAY(x) \ #define FREE_ARRAY(x) \
{ \ { \
JSONArray::iterator iter; \ JSONArray::iterator iter; \
for (iter = x.begin(); iter != x.end(); iter++) { \ for (iter = x.begin(); iter != x.end(); ++iter) { \
delete *iter; \ delete *iter; \
} \ } \
} }
#define FREE_OBJECT(x) \ #define FREE_OBJECT(x) \
{ \ { \
JSONObject::iterator iter; \ JSONObject::iterator iter; \
for (iter = x.begin(); iter != x.end(); iter++) { \ for (iter = x.begin(); iter != x.end(); ++iter) { \
delete (*iter).second; \ delete (*iter).second; \
} \ } \
} }
@ -430,7 +430,7 @@ JSONValue::JSONValue(const JSONValue &m_source)
JSONArray source_array = *m_source.array_value; JSONArray source_array = *m_source.array_value;
JSONArray::iterator iter; JSONArray::iterator iter;
array_value = new JSONArray(); array_value = new JSONArray();
for (iter = source_array.begin(); iter != source_array.end(); iter++) for (iter = source_array.begin(); iter != source_array.end(); ++iter)
array_value->push_back(new JSONValue(**iter)); array_value->push_back(new JSONValue(**iter));
break; break;
} }
@ -439,7 +439,7 @@ JSONValue::JSONValue(const JSONValue &m_source)
JSONObject source_object = *m_source.object_value; JSONObject source_object = *m_source.object_value;
object_value = new JSONObject(); object_value = new JSONObject();
JSONObject::iterator iter; JSONObject::iterator iter;
for (iter = source_object.begin(); iter != source_object.end(); iter++) { for (iter = source_object.begin(); iter != source_object.end(); ++iter) {
std::string name = (*iter).first; std::string name = (*iter).first;
(*object_value)[name] = new JSONValue(*((*iter).second)); (*object_value)[name] = new JSONValue(*((*iter).second));
} }
@ -462,12 +462,12 @@ JSONValue::~JSONValue()
{ {
if (type == JSONType_Array) { if (type == JSONType_Array) {
JSONArray::iterator iter; JSONArray::iterator iter;
for (iter = array_value->begin(); iter != array_value->end(); iter++) for (iter = array_value->begin(); iter != array_value->end(); ++iter)
delete *iter; delete *iter;
delete array_value; delete array_value;
} else if (type == JSONType_Object) { } else if (type == JSONType_Object) {
JSONObject::iterator iter; JSONObject::iterator iter;
for (iter = object_value->begin(); iter != object_value->end(); iter++) { for (iter = object_value->begin(); iter != object_value->end(); ++iter) {
delete (*iter).second; delete (*iter).second;
} }
delete object_value; delete object_value;
@ -722,7 +722,7 @@ std::vector<std::string> JSONValue::ObjectKeys() const
while (iter != object_value->end()) { while (iter != object_value->end()) {
keys.push_back(iter->first); keys.push_back(iter->first);
iter++; ++iter;
} }
} }
@ -865,7 +865,7 @@ std::string JSONValue::StringifyString(const std::string &str)
str_out += chr; str_out += chr;
} }
iter++; ++iter;
} }
str_out += "\""; str_out += "\"";

View File

@ -94,7 +94,7 @@ extern "C" {
#define USE_LR1110 #define USE_LR1110
#define LR1110_IRQ_PIN LORA_DIO1 #define LR1110_IRQ_PIN LORA_DIO1
#define LR1110_NRESER_PIN LORA_RESET #define LR1110_NRESET_PIN LORA_RESET
#define LR1110_BUSY_PIN LORA_DIO2 #define LR1110_BUSY_PIN LORA_DIO2
#define LR1110_SPI_NSS_PIN LORA_CS #define LR1110_SPI_NSS_PIN LORA_CS
#define LR1110_SPI_SCK_PIN LORA_SCK #define LR1110_SPI_SCK_PIN LORA_SCK

View File

@ -117,7 +117,7 @@ static const uint8_t SCK = PIN_SPI_SCK;
#define USE_LR1110 #define USE_LR1110
#define LR1110_IRQ_PIN LORA_DIO1 #define LR1110_IRQ_PIN LORA_DIO1
#define LR1110_NRESER_PIN LORA_RESET #define LR1110_NRESET_PIN LORA_RESET
#define LR1110_BUSY_PIN LORA_DIO2 #define LR1110_BUSY_PIN LORA_DIO2
#define LR1110_SPI_NSS_PIN LORA_CS #define LR1110_SPI_NSS_PIN LORA_CS
#define LR1110_SPI_SCK_PIN LORA_SCK #define LR1110_SPI_SCK_PIN LORA_SCK

View File

@ -93,7 +93,7 @@ extern "C" {
#define USE_LR1110 #define USE_LR1110
#define LR1110_IRQ_PIN LORA_DIO1 #define LR1110_IRQ_PIN LORA_DIO1
#define LR1110_NRESER_PIN LORA_RESET #define LR1110_NRESET_PIN LORA_RESET
#define LR1110_BUSY_PIN LORA_DIO2 #define LR1110_BUSY_PIN LORA_DIO2
#define LR1110_SPI_NSS_PIN LORA_CS #define LR1110_SPI_NSS_PIN LORA_CS
#define LR1110_SPI_SCK_PIN LORA_SCK #define LR1110_SPI_SCK_PIN LORA_SCK

View File

@ -95,7 +95,7 @@ extern "C" {
#define USE_LR1110 #define USE_LR1110
#define LR1110_IRQ_PIN LORA_DIO1 #define LR1110_IRQ_PIN LORA_DIO1
#define LR1110_NRESER_PIN LORA_RESET #define LR1110_NRESET_PIN LORA_RESET
#define LR1110_BUSY_PIN LORA_DIO2 #define LR1110_BUSY_PIN LORA_DIO2
#define LR1110_SPI_NSS_PIN LORA_CS #define LR1110_SPI_NSS_PIN LORA_CS
#define LR1110_SPI_SCK_PIN LORA_SCK #define LR1110_SPI_SCK_PIN LORA_SCK

View File

@ -94,7 +94,7 @@ extern "C" {
#define USE_LR1110 #define USE_LR1110
#define LR1110_IRQ_PIN LORA_DIO1 #define LR1110_IRQ_PIN LORA_DIO1
#define LR1110_NRESER_PIN LORA_RESET #define LR1110_NRESET_PIN LORA_RESET
#define LR1110_BUSY_PIN LORA_DIO2 #define LR1110_BUSY_PIN LORA_DIO2
#define LR1110_SPI_NSS_PIN LORA_CS #define LR1110_SPI_NSS_PIN LORA_CS
#define LR1110_SPI_SCK_PIN LORA_SCK #define LR1110_SPI_SCK_PIN LORA_SCK

View File

@ -91,7 +91,7 @@ extern "C" {
#define USE_LR1110 #define USE_LR1110
#define LR1110_IRQ_PIN LORA_DIO1 #define LR1110_IRQ_PIN LORA_DIO1
#define LR1110_NRESER_PIN LORA_RESET #define LR1110_NRESET_PIN LORA_RESET
#define LR1110_BUSY_PIN LORA_DIO2 #define LR1110_BUSY_PIN LORA_DIO2
#define LR1110_SPI_NSS_PIN LORA_CS #define LR1110_SPI_NSS_PIN LORA_CS
#define LR1110_SPI_SCK_PIN LORA_SCK #define LR1110_SPI_SCK_PIN LORA_SCK