summaryrefslogtreecommitdiff
path: root/src/AccessoryCards
diff options
context:
space:
mode:
Diffstat (limited to 'src/AccessoryCards')
-rw-r--r--src/AccessoryCards/AccessoryCardLora.cpp22
-rw-r--r--src/AccessoryCards/AcessoryCard.cpp21
-rw-r--r--src/AccessoryCards/Gpiob.cpp25
-rw-r--r--src/AccessoryCards/LoraCard.cpp23
-rw-r--r--src/AccessoryCards/LoraCard15.cpp (renamed from src/AccessoryCards/AccessoryCardLora15.cpp)71
-rw-r--r--src/AccessoryCards/LoraCard21.cpp24
-rw-r--r--src/AccessoryCards/LoraCard21Ext.cpp24
-rw-r--r--src/AccessoryCards/Mfser.cpp29
8 files changed, 193 insertions, 46 deletions
diff --git a/src/AccessoryCards/AccessoryCardLora.cpp b/src/AccessoryCards/AccessoryCardLora.cpp
deleted file mode 100644
index 13bbab5..0000000
--- a/src/AccessoryCards/AccessoryCardLora.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "AccessoryCardLora.h"
-
-AccessoryCardLora::AccessoryCardLora(std::string ProductId, std::string Port) {
- port = Port;
- productId = ProductId;
- spiPath = "/dev/spidev0.0";
- if ((productId.find("MTCDT3-") == 0) && (port.back() == '2')) {
- spiPath = "/dev/spidev1.0";
- } else if (productId.find("MTAC-LORA-G") == 0) {
- spiPath = "/dev/spidev32766.2";
- } else if (productId.find("MTAC-LORA-") == 0) {
- if (port.back() == '2') {
- spiPath = "/dev/spidev32765.2";
- } else {
- spiPath = "/dev/spidev32766.2";
- }
- }
-}
-
-std::string AccessoryCardLora::getPath() {
- return spiPath;
-}
diff --git a/src/AccessoryCards/AcessoryCard.cpp b/src/AccessoryCards/AcessoryCard.cpp
new file mode 100644
index 0000000..16589b0
--- /dev/null
+++ b/src/AccessoryCards/AcessoryCard.cpp
@@ -0,0 +1,21 @@
+/**********************************************************************
+* COPYRIGHT 2020 MULTI-TECH SYSTEMS, INC.
+*
+* ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF
+* MULTI-TECH SYSTEMS, INC.
+*
+* MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY
+* INFORMATION AND/OR TRADE SECRET.
+*
+* NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION,
+* DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL
+* INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC.
+* USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A
+* WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED.
+*
+***********************************************************************/
+
+#include "Device.h"
+
+Device::AccessoryCard::AccessoryCard(Device& d) : device(d) {
+}
diff --git a/src/AccessoryCards/Gpiob.cpp b/src/AccessoryCards/Gpiob.cpp
new file mode 100644
index 0000000..3a87c8a
--- /dev/null
+++ b/src/AccessoryCards/Gpiob.cpp
@@ -0,0 +1,25 @@
+/**********************************************************************
+* COPYRIGHT 2020 MULTI-TECH SYSTEMS, INC.
+*
+* ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF
+* MULTI-TECH SYSTEMS, INC.
+*
+* MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY
+* INFORMATION AND/OR TRADE SECRET.
+*
+* NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION,
+* DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL
+* INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC.
+* USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A
+* WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED.
+*
+***********************************************************************/
+
+#include "Device.h"
+
+Device::Gpiob::Gpiob(Device& d) : AccessoryCard(d) {
+ capabilityList["adc"] = true;
+ capabilityList["din"] = true;
+ capabilityList["dout"] = true;
+ capabilityList["gpio"] = true;
+} \ No newline at end of file
diff --git a/src/AccessoryCards/LoraCard.cpp b/src/AccessoryCards/LoraCard.cpp
new file mode 100644
index 0000000..ba50aa7
--- /dev/null
+++ b/src/AccessoryCards/LoraCard.cpp
@@ -0,0 +1,23 @@
+/**********************************************************************
+* COPYRIGHT 2020 MULTI-TECH SYSTEMS, INC.
+*
+* ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF
+* MULTI-TECH SYSTEMS, INC.
+*
+* MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY
+* INFORMATION AND/OR TRADE SECRET.
+*
+* NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION,
+* DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL
+* INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC.
+* USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A
+* WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED.
+*
+***********************************************************************/
+
+#include "Device.h"
+
+Device::LoraCard::LoraCard(Device& d, const std::string productId, const std::string port) : AccessoryCard(d) {
+ spiPath = "/dev/spidev0.0";
+ device.capabilityList["lora"] = true;
+} \ No newline at end of file
diff --git a/src/AccessoryCards/AccessoryCardLora15.cpp b/src/AccessoryCards/LoraCard15.cpp
index ee99622..df5c969 100644
--- a/src/AccessoryCards/AccessoryCardLora15.cpp
+++ b/src/AccessoryCards/LoraCard15.cpp
@@ -1,9 +1,51 @@
-#include "AccessoryCardLora15.h"
+/**********************************************************************
+* COPYRIGHT 2020 MULTI-TECH SYSTEMS, INC.
+*
+* ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF
+* MULTI-TECH SYSTEMS, INC.
+*
+* MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY
+* INFORMATION AND/OR TRADE SECRET.
+*
+* NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION,
+* DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL
+* INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC.
+* USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A
+* WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED.
+*
+***********************************************************************/
+
+#include "Device.h"
+
+Device::Lora15Card::Lora15Card(Device& d, const std::string productId, const std::string port) : LoraCard(d, productId, port) {
+ int ret;
+ fpgaVersion = 255;
+ if ((productId.find("MTCDT3-") == 0) && (port.back() == '2')) {
+ spiPath = "/dev/spidev1.0";
+ } else if (productId.find("MTAC-LORA-") == 0) {
+ if (port.back() == '2') {
+ spiPath = "/dev/spidev32765.2";
+ } else {
+ spiPath = "/dev/spidev32766.2";
+ }
+ }
+ ret = spiOpen(spiPath.c_str());
+ if (ret != 0) {
+ printf("Could not open SPI port %s", spiPath.c_str());
+ return;
+ }
+ /* detect if the gateway has an FPGA with SPI mux header support */
+ ret = spiRead(MTAC_FPGA_ADDRESS, &fpgaVersion);
+ if (ret != 0) {
+ printf("Could not read FPGA version");
+ }
-AccessoryCardLora15::AccessoryCardLora15(std::string ProductId, std::string Port) : AccessoryCardLora(ProductId, Port) {
+ spiClose();
+ spi_target_ptr = NULL;
+ device.accessoryCard.AddMember("fpgaVersion", fpgaVersion, device.accessoryCardsAlloc);
}
-int AccessoryCardLora15::spiOpen(const char *spidev) {
+int Device::Lora15Card::spiOpen(const char *spidev) {
int *spi_device = NULL;
int dev;
int a = 0, b = 0;
@@ -70,7 +112,7 @@ int AccessoryCardLora15::spiOpen(const char *spidev) {
spi_target_ptr = (void *)spi_device;
return 0;
}
-int AccessoryCardLora15::spiRead(uint8_t address, uint8_t *data) {
+int Device::Lora15Card::spiRead(uint8_t address, uint8_t *data) {
int spi_device;
uint8_t out_buf[3];
uint8_t in_buf[ARRAY_SIZE(out_buf)];
@@ -104,7 +146,7 @@ int AccessoryCardLora15::spiRead(uint8_t address, uint8_t *data) {
}
}
-int AccessoryCardLora15::spiClose() {
+int Device::Lora15Card::spiClose() {
int spi_device;
int a;
@@ -120,23 +162,4 @@ int AccessoryCardLora15::spiClose() {
} else {
return 0;
}
-}
-
-uint8_t AccessoryCardLora15::getFPGAVersion() {
- int ret;
- uint8_t u = 255;
- ret = spiOpen(getPath().c_str());
- if (ret != 0) {
- printf("Could not open SPI port %s", getPath().c_str());
- return u;
- }
- /* detect if the gateway has an FPGA with SPI mux header support */
- ret = spiRead(MTAC_FPGA_ADDRESS, &u);
- if (ret != 0) {
- printf("Could not read FPGA version");
- }
-
- spiClose();
- spi_target_ptr = NULL;
- return u;
} \ No newline at end of file
diff --git a/src/AccessoryCards/LoraCard21.cpp b/src/AccessoryCards/LoraCard21.cpp
new file mode 100644
index 0000000..70bec11
--- /dev/null
+++ b/src/AccessoryCards/LoraCard21.cpp
@@ -0,0 +1,24 @@
+/**********************************************************************
+* COPYRIGHT 2020 MULTI-TECH SYSTEMS, INC.
+*
+* ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF
+* MULTI-TECH SYSTEMS, INC.
+*
+* MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY
+* INFORMATION AND/OR TRADE SECRET.
+*
+* NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION,
+* DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL
+* INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC.
+* USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A
+* WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED.
+*
+***********************************************************************/
+
+#include "Device.h"
+
+Device::Lora21Card::Lora21Card(Device& d, const std::string productId, const std::string port): LoraCard(d, productId, port) {
+ spiPath = "/dev/spidev32766.2";
+ MTS::System::cmd(LORA_2_1_FPGA_VERSION, fpgaVersion);
+ device.accessoryCard.AddMember("fpgaVersion", std::stoi(fpgaVersion), device.accessoryCardsAlloc);
+} \ No newline at end of file
diff --git a/src/AccessoryCards/LoraCard21Ext.cpp b/src/AccessoryCards/LoraCard21Ext.cpp
new file mode 100644
index 0000000..b7531c7
--- /dev/null
+++ b/src/AccessoryCards/LoraCard21Ext.cpp
@@ -0,0 +1,24 @@
+/**********************************************************************
+* COPYRIGHT 2020 MULTI-TECH SYSTEMS, INC.
+*
+* ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF
+* MULTI-TECH SYSTEMS, INC.
+*
+* MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY
+* INFORMATION AND/OR TRADE SECRET.
+*
+* NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION,
+* DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL
+* INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC.
+* USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A
+* WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED.
+*
+***********************************************************************/
+
+#include "Device.h"
+
+Device::Lora21ExtCard::Lora21ExtCard(Device& d, const std::string productId, const std::string port): Lora21Card(d, productId, port) {
+ MTS::System::cmd(LORA_2_1_EXT_FPGA_VERSION, fpgaVersion2);
+ device.accessoryCard.AddMember("fpgaVersion2", std::stoi(fpgaVersion2), device.accessoryCardsAlloc);
+
+} \ No newline at end of file
diff --git a/src/AccessoryCards/Mfser.cpp b/src/AccessoryCards/Mfser.cpp
new file mode 100644
index 0000000..ac6bb26
--- /dev/null
+++ b/src/AccessoryCards/Mfser.cpp
@@ -0,0 +1,29 @@
+/**********************************************************************
+* COPYRIGHT 2020 MULTI-TECH SYSTEMS, INC.
+*
+* ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF
+* MULTI-TECH SYSTEMS, INC.
+*
+* MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY
+* INFORMATION AND/OR TRADE SECRET.
+*
+* NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION,
+* DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL
+* INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC.
+* USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A
+* WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED.
+*
+***********************************************************************/
+
+#include "Device.h"
+
+Device::Mfser::Mfser(Device& d, const std::string port) : AccessoryCard(d) {
+ capabilityList["rs232"] = true;
+ capabilityList["rs422"] = true;
+ capabilityList["rs485"] = true;
+ capabilityList["serial"] = true;
+ if (!fileExists("/dev/ext_serial") && port.size() > 0) {
+ std::string temp;
+ MTS::System::cmd(std::string("ln -s /dev/ttyAP") + port.back() + " /dev/ext_serial", temp);
+ }
+} \ No newline at end of file