A small lib for switch xbee from transperant mode to api
XbeeConfig.cpp@0:31b3aca13b85, 2017-01-30 (annotated)
- Committer:
- gert_lauritsen
- Date:
- Mon Jan 30 16:22:53 2017 +0000
- Revision:
- 0:31b3aca13b85
Libery to switch a xbee from transperant mode to api and zb mode
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gert_lauritsen | 0:31b3aca13b85 | 1 | /* |
gert_lauritsen | 0:31b3aca13b85 | 2 | * XbeeConfig.cpp |
gert_lauritsen | 0:31b3aca13b85 | 3 | * |
gert_lauritsen | 0:31b3aca13b85 | 4 | * Created on: 29/01/2017 |
gert_lauritsen | 0:31b3aca13b85 | 5 | * Author: gert |
gert_lauritsen | 0:31b3aca13b85 | 6 | */ |
gert_lauritsen | 0:31b3aca13b85 | 7 | |
gert_lauritsen | 0:31b3aca13b85 | 8 | #include <XbeeConfig/XbeeConfig.h> |
gert_lauritsen | 0:31b3aca13b85 | 9 | |
gert_lauritsen | 0:31b3aca13b85 | 10 | XbeeConfig::XbeeConfig(PinName tx, PinName rx, PinName Rst): _com(tx,rx), rst(Rst){ |
gert_lauritsen | 0:31b3aca13b85 | 11 | _com.baud(9600); |
gert_lauritsen | 0:31b3aca13b85 | 12 | Reset(); |
gert_lauritsen | 0:31b3aca13b85 | 13 | } |
gert_lauritsen | 0:31b3aca13b85 | 14 | |
gert_lauritsen | 0:31b3aca13b85 | 15 | XbeeConfig::~XbeeConfig() { |
gert_lauritsen | 0:31b3aca13b85 | 16 | |
gert_lauritsen | 0:31b3aca13b85 | 17 | } |
gert_lauritsen | 0:31b3aca13b85 | 18 | |
gert_lauritsen | 0:31b3aca13b85 | 19 | void XbeeConfig::Reset() |
gert_lauritsen | 0:31b3aca13b85 | 20 | { |
gert_lauritsen | 0:31b3aca13b85 | 21 | rst = 0; |
gert_lauritsen | 0:31b3aca13b85 | 22 | wait_ms(10); |
gert_lauritsen | 0:31b3aca13b85 | 23 | rst = 1; |
gert_lauritsen | 0:31b3aca13b85 | 24 | wait_ms(1); |
gert_lauritsen | 0:31b3aca13b85 | 25 | } |
gert_lauritsen | 0:31b3aca13b85 | 26 | |
gert_lauritsen | 0:31b3aca13b85 | 27 | int XbeeConfig::SetZB() |
gert_lauritsen | 0:31b3aca13b85 | 28 | { |
gert_lauritsen | 0:31b3aca13b85 | 29 | wait_ms(5); |
gert_lauritsen | 0:31b3aca13b85 | 30 | _com.printf("ATZS2\r"); |
gert_lauritsen | 0:31b3aca13b85 | 31 | Wait4OK(); |
gert_lauritsen | 0:31b3aca13b85 | 32 | return 1; |
gert_lauritsen | 0:31b3aca13b85 | 33 | } |
gert_lauritsen | 0:31b3aca13b85 | 34 | |
gert_lauritsen | 0:31b3aca13b85 | 35 | int XbeeConfig::ResetSetAPI() |
gert_lauritsen | 0:31b3aca13b85 | 36 | { |
gert_lauritsen | 0:31b3aca13b85 | 37 | wait_ms(5); |
gert_lauritsen | 0:31b3aca13b85 | 38 | _com.printf("ATAP0\r"); |
gert_lauritsen | 0:31b3aca13b85 | 39 | Wait4OK(); |
gert_lauritsen | 0:31b3aca13b85 | 40 | return 1; |
gert_lauritsen | 0:31b3aca13b85 | 41 | } |
gert_lauritsen | 0:31b3aca13b85 | 42 | |
gert_lauritsen | 0:31b3aca13b85 | 43 | |
gert_lauritsen | 0:31b3aca13b85 | 44 | int XbeeConfig::SetAPI() |
gert_lauritsen | 0:31b3aca13b85 | 45 | { |
gert_lauritsen | 0:31b3aca13b85 | 46 | wait_ms(5); |
gert_lauritsen | 0:31b3aca13b85 | 47 | _com.printf("ATAP1\r"); |
gert_lauritsen | 0:31b3aca13b85 | 48 | Wait4OK(); |
gert_lauritsen | 0:31b3aca13b85 | 49 | return 1; |
gert_lauritsen | 0:31b3aca13b85 | 50 | } |
gert_lauritsen | 0:31b3aca13b85 | 51 | |
gert_lauritsen | 0:31b3aca13b85 | 52 | |
gert_lauritsen | 0:31b3aca13b85 | 53 | int XbeeConfig::ExitConfigMode() |
gert_lauritsen | 0:31b3aca13b85 | 54 | { |
gert_lauritsen | 0:31b3aca13b85 | 55 | wait_ms(5); |
gert_lauritsen | 0:31b3aca13b85 | 56 | _com.printf("ATWR \r"); |
gert_lauritsen | 0:31b3aca13b85 | 57 | Wait4OK(); |
gert_lauritsen | 0:31b3aca13b85 | 58 | |
gert_lauritsen | 0:31b3aca13b85 | 59 | _com.printf("ATCN \r"); |
gert_lauritsen | 0:31b3aca13b85 | 60 | Wait4OK(); |
gert_lauritsen | 0:31b3aca13b85 | 61 | return 1; |
gert_lauritsen | 0:31b3aca13b85 | 62 | } |
gert_lauritsen | 0:31b3aca13b85 | 63 | |
gert_lauritsen | 0:31b3aca13b85 | 64 | int XbeeConfig::Wait4OK(){ |
gert_lauritsen | 0:31b3aca13b85 | 65 | int a=0; |
gert_lauritsen | 0:31b3aca13b85 | 66 | while (a != 75) { //Wait for OK |
gert_lauritsen | 0:31b3aca13b85 | 67 | if (_com.readable()) { |
gert_lauritsen | 0:31b3aca13b85 | 68 | a = _com.getc(); |
gert_lauritsen | 0:31b3aca13b85 | 69 | } |
gert_lauritsen | 0:31b3aca13b85 | 70 | } |
gert_lauritsen | 0:31b3aca13b85 | 71 | return 1; |
gert_lauritsen | 0:31b3aca13b85 | 72 | } |
gert_lauritsen | 0:31b3aca13b85 | 73 | |
gert_lauritsen | 0:31b3aca13b85 | 74 | int XbeeConfig::ConfigMode() |
gert_lauritsen | 0:31b3aca13b85 | 75 | { |
gert_lauritsen | 0:31b3aca13b85 | 76 | wait(2); |
gert_lauritsen | 0:31b3aca13b85 | 77 | _com.printf("+++"); |
gert_lauritsen | 0:31b3aca13b85 | 78 | Wait4OK(); |
gert_lauritsen | 0:31b3aca13b85 | 79 | wait(1); |
gert_lauritsen | 0:31b3aca13b85 | 80 | return 1; |
gert_lauritsen | 0:31b3aca13b85 | 81 | } |
gert_lauritsen | 0:31b3aca13b85 | 82 | |
gert_lauritsen | 0:31b3aca13b85 | 83 | int XbeeConfig::Switch2Transperantmode() { |
gert_lauritsen | 0:31b3aca13b85 | 84 | if (ConfigMode()) { |
gert_lauritsen | 0:31b3aca13b85 | 85 | ResetSetAPI(); |
gert_lauritsen | 0:31b3aca13b85 | 86 | ExitConfigMode(); |
gert_lauritsen | 0:31b3aca13b85 | 87 | return 1; |
gert_lauritsen | 0:31b3aca13b85 | 88 | } |
gert_lauritsen | 0:31b3aca13b85 | 89 | else return 0; |
gert_lauritsen | 0:31b3aca13b85 | 90 | } |
gert_lauritsen | 0:31b3aca13b85 | 91 | |
gert_lauritsen | 0:31b3aca13b85 | 92 | |
gert_lauritsen | 0:31b3aca13b85 | 93 | int XbeeConfig::Switch2APImode() { |
gert_lauritsen | 0:31b3aca13b85 | 94 | if (ConfigMode()) { |
gert_lauritsen | 0:31b3aca13b85 | 95 | SetAPI(); |
gert_lauritsen | 0:31b3aca13b85 | 96 | SetZB(); |
gert_lauritsen | 0:31b3aca13b85 | 97 | ExitConfigMode(); |
gert_lauritsen | 0:31b3aca13b85 | 98 | return 1; |
gert_lauritsen | 0:31b3aca13b85 | 99 | } |
gert_lauritsen | 0:31b3aca13b85 | 100 | else return 0; |
gert_lauritsen | 0:31b3aca13b85 | 101 | } |