Multitech xDot AT Firmware

Dependencies:   MTS-Serial libxDot-mbed5

Committer:
jreiss
Date:
Wed Jan 16 14:20:49 2019 +0000
Revision:
18:72b6b49d363d
Parent:
16:d5cf2af81a6d
Update libxDot to latest and mbed-os to 5.7.7; Update PacketRx for new library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 9:ff62b20f7000 1 #include "mbed.h"
Mike Fiore 9:ff62b20f7000 2 #include "mDot.h"
Mike Fiore 9:ff62b20f7000 3 #include "CommandTerminal.h"
Mike Fiore 9:ff62b20f7000 4 #include "ATSerial.h"
Mike Fiore 9:ff62b20f7000 5 #include "ATSerialFlowControl.h"
jenkins@jenkinsdm1 16:d5cf2af81a6d 6 #include "ChannelPlans.h"
Mike Fiore 9:ff62b20f7000 7
Mike Fiore 9:ff62b20f7000 8 #define SERIAL_BUFFER_SIZE 512
Mike Fiore 9:ff62b20f7000 9
jreiss 18:72b6b49d363d 10 Serial pc(USBTX, USBRX);
Mike Fiore 14:f9a77400b622 11
jenkins@jenkinsdm1 16:d5cf2af81a6d 12 #ifndef CHANNEL_PLAN
jenkins@jenkinsdm1 16:d5cf2af81a6d 13 #define CHANNEL_PLAN CP_US915
jenkins@jenkinsdm1 16:d5cf2af81a6d 14 #endif
jenkins@jenkinsdm1 16:d5cf2af81a6d 15
Mike Fiore 14:f9a77400b622 16 #ifndef UNIT_TEST
Mike Fiore 9:ff62b20f7000 17
Mike Fiore 9:ff62b20f7000 18 int main()
Mike Fiore 9:ff62b20f7000 19 {
jreiss 18:72b6b49d363d 20 pc.baud(115200);
Mike Fiore 9:ff62b20f7000 21
jenkins@jenkinsdm1 16:d5cf2af81a6d 22 #if CHANNEL_PLAN == CP_AS923
jenkins@jenkinsdm1 16:d5cf2af81a6d 23 lora::ChannelPlan* plan = new lora::ChannelPlan_AS923();
jenkins@jenkinsdm1 16:d5cf2af81a6d 24 #elif CHANNEL_PLAN == CP_US915
jenkins@jenkinsdm1 16:d5cf2af81a6d 25 lora::ChannelPlan* plan = new lora::ChannelPlan_US915();
jenkins@jenkinsdm1 16:d5cf2af81a6d 26 #elif CHANNEL_PLAN == CP_AU915
jenkins@jenkinsdm1 16:d5cf2af81a6d 27 lora::ChannelPlan* plan = new lora::ChannelPlan_AU915();
jenkins@jenkinsdm1 16:d5cf2af81a6d 28 #elif CHANNEL_PLAN == CP_EU868
jenkins@jenkinsdm1 16:d5cf2af81a6d 29 lora::ChannelPlan* plan = new lora::ChannelPlan_EU868();
jenkins@jenkinsdm1 16:d5cf2af81a6d 30 #elif CHANNEL_PLAN == CP_KR920
jenkins@jenkinsdm1 16:d5cf2af81a6d 31 lora::ChannelPlan* plan = new lora::ChannelPlan_KR920();
jenkins@jenkinsdm1 16:d5cf2af81a6d 32 #elif CHANNEL_PLAN == CP_IN865
jenkins@jenkinsdm1 16:d5cf2af81a6d 33 lora::ChannelPlan* plan = new lora::ChannelPlan_IN865();
jenkins@jenkinsdm1 16:d5cf2af81a6d 34 #elif CHANNEL_PLAN == CP_AS923_JAPAN
jenkins@jenkinsdm1 16:d5cf2af81a6d 35 lora::ChannelPlan* plan = new lora::ChannelPlan_AS923_Japan();
jenkins@jenkinsdm1 16:d5cf2af81a6d 36 #endif
jenkins@jenkinsdm1 16:d5cf2af81a6d 37 assert(plan);
jenkins@jenkinsdm1 16:d5cf2af81a6d 38
jenkins@jenkinsdm1 16:d5cf2af81a6d 39 mDot* dot = mDot::getInstance(plan);
jenkins@jenkinsdm1 16:d5cf2af81a6d 40 assert(dot);
Mike Fiore 9:ff62b20f7000 41
Mike Fiore 9:ff62b20f7000 42 // Seed the RNG
Mike Fiore 9:ff62b20f7000 43 srand(dot->getRadioRandom());
Mike Fiore 9:ff62b20f7000 44
Mike Fiore 9:ff62b20f7000 45 mts::ATSerial* serial;
Mike Fiore 9:ff62b20f7000 46
Mike Fiore 9:ff62b20f7000 47 if (dot->getFlowControl())
Mike Fiore 14:f9a77400b622 48 #if defined(TARGET_MTS_MDOT_F411RE)
Mike Fiore 9:ff62b20f7000 49 serial = new mts::ATSerialFlowControl(XBEE_DOUT, XBEE_DIN, XBEE_RTS, XBEE_CTS, SERIAL_BUFFER_SIZE, SERIAL_BUFFER_SIZE);
Mike Fiore 14:f9a77400b622 50 #else
Mike Fiore 14:f9a77400b622 51 serial = new mts::ATSerialFlowControl(UART1_TX, UART1_RX, UART1_RTS, UART1_CTS, SERIAL_BUFFER_SIZE, SERIAL_BUFFER_SIZE);
Mike Fiore 14:f9a77400b622 52 #endif
Mike Fiore 9:ff62b20f7000 53 else
Mike Fiore 14:f9a77400b622 54 #if defined(TARGET_MTS_MDOT_F411RE)
Mike Fiore 9:ff62b20f7000 55 serial = new mts::ATSerial(XBEE_DOUT, XBEE_DIN, SERIAL_BUFFER_SIZE, SERIAL_BUFFER_SIZE);
Mike Fiore 14:f9a77400b622 56 #else
Mike Fiore 14:f9a77400b622 57 serial = new mts::ATSerial(UART1_TX, UART1_RX, SERIAL_BUFFER_SIZE, SERIAL_BUFFER_SIZE);
Mike Fiore 14:f9a77400b622 58 #endif
Mike Fiore 9:ff62b20f7000 59
jreiss 18:72b6b49d363d 60 pc.baud(dot->getDebugBaud());
Mike Fiore 9:ff62b20f7000 61 serial->baud(dot->getBaud());
Mike Fiore 9:ff62b20f7000 62
Mike Fiore 14:f9a77400b622 63 CommandTerminal term(*serial);
Mike Fiore 14:f9a77400b622 64 CommandTerminal::_dot = dot;
Mike Fiore 14:f9a77400b622 65
Mike Fiore 14:f9a77400b622 66 term.init();
Mike Fiore 9:ff62b20f7000 67
Mike Fiore 9:ff62b20f7000 68 term.start();
Mike Fiore 9:ff62b20f7000 69 }
Mike Fiore 14:f9a77400b622 70
Mike Fiore 14:f9a77400b622 71 #endif // UNIT_TEST
Mike Fiore 14:f9a77400b622 72