diff options
Diffstat (limited to 'src/AccessoryCards/LoraCard15.cpp')
-rw-r--r-- | src/AccessoryCards/LoraCard15.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/AccessoryCards/LoraCard15.cpp b/src/AccessoryCards/LoraCard15.cpp index 69efb6b..cb7dc64 100644 --- a/src/AccessoryCards/LoraCard15.cpp +++ b/src/AccessoryCards/LoraCard15.cpp @@ -19,8 +19,15 @@ Device::Lora15Card::Lora15Card(Device& d, const std::string ProductId, const std::string Port) : LoraCard(d, ProductId, Port) { int ret; - if ((productId.rfind("MTCDT3-", 0) == 0 || productId.rfind("MTLGA-", 0) == 0) && (port.back() == '2')) { - spiPath = "/dev/spidev1.0"; + std::string deviceProductId = ""; + /* Map the spi path to the device and card product id, with the default being spidev0.0 */ + MTS::System::readFile(PRODUCT_ID_PATH, deviceProductId); + if (deviceProductId.find("MTCDT3-") != std::string::npos) { + if (port.back() == '2') { + spiPath = "/dev/spidev1.2"; + } else { + spiPath = "/dev/spidev0.2"; + } } else if (productId.find("MTAC-LORA-") == 0) { if (port.back() == '2') { spiPath = "/dev/spidev32765.2"; @@ -37,6 +44,7 @@ Device::Lora15Card::Lora15Card(Device& d, const std::string ProductId, const std ret = spiRead(MTAC_FPGA_ADDRESS, &fpgaVersion); if (ret != 0) { printf("Could not read FPGA version"); + fpgaVersion = 255; } spiClose(); |