A small lib for switch xbee from transperant mode to api

Dependents:   XbeeSwitchTest

Revision:
0:31b3aca13b85
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/XbeeConfig.cpp	Mon Jan 30 16:22:53 2017 +0000
@@ -0,0 +1,101 @@
+/*
+ * XbeeConfig.cpp
+ *
+ *  Created on: 29/01/2017
+ *      Author: gert
+ */
+
+#include <XbeeConfig/XbeeConfig.h>
+
+XbeeConfig::XbeeConfig(PinName tx, PinName rx, PinName Rst): _com(tx,rx), rst(Rst){
+  _com.baud(9600);
+  Reset();
+}
+
+XbeeConfig::~XbeeConfig() {
+
+}
+
+void XbeeConfig::Reset()
+{
+    rst = 0;
+    wait_ms(10);
+    rst = 1;
+    wait_ms(1);
+}
+
+int XbeeConfig::SetZB()
+{
+    wait_ms(5);
+    _com.printf("ATZS2\r");
+    Wait4OK();
+    return 1;
+}
+
+int XbeeConfig::ResetSetAPI()
+{
+    wait_ms(5);
+    _com.printf("ATAP0\r");
+    Wait4OK();
+    return 1;
+}
+
+
+int XbeeConfig::SetAPI()
+{
+    wait_ms(5);
+    _com.printf("ATAP1\r");
+    Wait4OK();
+    return 1;
+}
+
+
+int XbeeConfig::ExitConfigMode()
+{
+    wait_ms(5);
+    _com.printf("ATWR \r");
+    Wait4OK();
+
+    _com.printf("ATCN \r");
+    Wait4OK();
+    return 1;
+}
+
+int XbeeConfig::Wait4OK(){
+    int a=0;
+    while (a != 75) { //Wait for OK
+        if (_com.readable()) {
+            a = _com.getc();
+        }
+    }
+    return 1;
+}
+
+int XbeeConfig::ConfigMode()
+{
+    wait(2);
+    _com.printf("+++");
+    Wait4OK();
+    wait(1);
+    return 1;
+}
+
+int XbeeConfig::Switch2Transperantmode() {
+ if (ConfigMode()) {
+     ResetSetAPI();
+     ExitConfigMode();
+     return 1;
+ }
+ else return 0;
+}
+
+
+int XbeeConfig::Switch2APImode() {
+ if (ConfigMode()) {
+     SetAPI();
+     SetZB();
+     ExitConfigMode();
+     return 1;
+ }
+ else return 0;
+}