A small lib for switch xbee from transperant mode to api

Dependents:   XbeeSwitchTest

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?

UserRevisionLine numberNew 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 }