Multitech xDot AT Firmware
Dependencies: MTS-Serial libxDot-mbed5
main.cpp@18:72b6b49d363d, 2019-01-16 (annotated)
- 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?
User | Revision | Line number | New 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 |