Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: libmDot-mbed5 picojson ISL29011
Revision 34:42343999ecc1, committed 2019-02-28
- Comitter:
- tesla_xudong
- Date:
- Thu Feb 28 00:24:08 2019 +0000
- Parent:
- 33:ff681aa203f3
- Commit message:
- fdd
Changed in this revision
| examples/src/class_c_example_copy.cpp | Show annotated file Show diff for this revision Revisions of this file |
| picojson.lib | Show annotated file Show diff for this revision Revisions of this file |
--- a/examples/src/class_c_example_copy.cpp Wed Feb 20 04:52:14 2019 +0000
+++ b/examples/src/class_c_example_copy.cpp Thu Feb 28 00:24:08 2019 +0000
@@ -1,8 +1,9 @@
#include "dot_util.h"
#include "RadioEvent.h"
-#include <string.h>
+#include <string>
+#include <MTSText.h>
#if ACTIVE_EXAMPLE == CLASS_C_EXAMPLE
-
+#include <stdlib.h>
/////////////////////////////////////////////////////////////////////////////
// -------------------- DOT LIBRARY REQUIRED ------------------------------//
// * Because these example programs can be used for both mDot and xDot //
@@ -26,17 +27,39 @@
static std::string network_passphrase = "11223344";
//static uint8_t network_id[] = { 0x6C, 0x4E, 0xEF, 0x66, 0xF4, 0x79, 0x86, 0xA6 };
//static uint8_t network_key[] = { 0x1F, 0x33, 0xA1, 0x70, 0xA5, 0xF1, 0xFD, 0xA0, 0xAB, 0x69, 0x7A, 0xAE, 0x2B, 0x95, 0x91, 0x6B };
+
+
+static uint8_t network_address[] = {0x0a,0x00,0x00,0x1e};
+//static uint8_t network_session_key[] = { 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04 };
+//static uint8_t data_session_key[] = { 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04 };
+
+static uint8_t network_session_key[] = {0x11, 0x22, 0x33, 0x44,0x55,0x66,0x77,0x80 };
+static uint8_t data_session_key[] = { 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x44, 0x44, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x44, 0x40 };
+
+
+
+
static uint8_t frequency_sub_band = 4;
static lora::NetworkType network_type = lora::PUBLIC_LORAWAN;
static uint8_t join_delay = 6;
-static uint8_t ack = 0;
+static uint8_t ack = 1;
static bool adr = true;
mDot* dot = NULL;
lora::ChannelPlan* plan = NULL;
Serial pc(USBTX, USBRX);
+Serial pi(PA_2,PA_3);
+PwmOut pwm_L(PA_7);
+PwmOut pwm_R(PB_0);
+PwmOut pwm_G(PA_5);
+PwmOut pwm_B(PA_1);
+
+
+
+
+
#if defined(TARGET_XDOT_L151CC)
I2C i2c(I2C_SDA, I2C_SCL);
ISL29011 lux(i2c);
@@ -142,31 +165,57 @@
}
}
+
std::string get_buffer;
-void Uart_interrupt(){
+//void Uart_interrupt(){
+//
+// char get_char;
+// while(!pc.readable());
+//
+// get_char=pc.getc();
+// if (get_char!='-')
+// {
+// get_buffer=get_buffer+get_char;
+// }
+// else
+// {
+// //send_string(get_buffer,dot);
+// pi.printf("%s",get_buffer.c_str());
+// pc.printf("Mdot received from PC: %s",get_buffer.c_str());
+// send_string(get_buffer.c_str(),dot);
+// get_buffer.clear();
+// }
+//
+// }
+
+
+void Uart_interrupt_pi(){
char get_char;
- while(!pc.readable());
+ while(!pi.readable());
- get_char=pc.getc();
- if (get_char!='-')
- {
- get_buffer=get_buffer+get_char;
- }
- else
- {
- send_string(get_buffer,dot);
- get_buffer.clear();
+ get_char=pi.getc();
+ pc.putc(get_char);
+ // send_char(get_char,dot);
}
-
- }
+
+
int main() {
- pc.baud(115200);
- pc.attach(&Uart_interrupt, SerialBase::RxIrq);
+
+pwm_L.period_ms(1);
+pwm_R.period_ms(1);
+pwm_G.period_ms(1);
+pwm_B.period_ms(1);
+
+ pc.baud(9600);
+ //pc.attach(&Uart_interrupt, SerialBase::RxIrq);
+
+ pi.baud(9600);
+ pi.attach(&Uart_interrupt_pi, SerialBase::RxIrq);
// pc.attach(&Uart_send_interrupt, SerialBase::TxIrq);
#if defined(TARGET_XDOT_L151CC)
i2c.frequency(400000);
@@ -223,7 +272,23 @@
// network KEY = cmac(network passphrase)
update_ota_config_name_phrase(network_name, network_passphrase, frequency_sub_band, network_type, ack);
//update_ota_config_id_key(network_id, network_key, frequency_sub_band, network_type, ack);
-
+
+ }
+ // in MANUAL join mode there is no join request/response transaction
+ // as long as the Dot is configured correctly and provisioned correctly on the gateway, it should be able to communicate
+ // network address - 4 bytes (00000001 - FFFFFFFE)
+ // network session key - 16 bytes
+ // data session key - 16 bytes
+ // to provision your Dot with a Conduit gateway, follow the following steps
+ // * ssh into the Conduit
+ // * provision the Dot using the lora-query application: http://www.multitech.net/developer/software/lora/lora-network-server/
+ // lora-query -a 01020304 A 0102030401020304 <your Dot's device ID> 01020304010203040102030401020304 01020304010203040102030401020304
+ // * if you change the network address, network session key, or data session key, make sure you update them on the gateway
+ // to provision your Dot with a 3rd party gateway, see the gateway or network provider documentation
+
+ //update_manual_config(network_address, network_session_key, data_session_key, frequency_sub_band, network_type, ack);
+
+
// configure the Dot for class C operation
// the Dot must also be configured on the gateway for class C
// use the lora-query application to do this on a Conduit: http://www.multitech.net/developer/software/lora/lora-network-server/
@@ -257,6 +322,7 @@
join_network();
}
send_string("start!",dot);
+
while (true) {
// join network if not joined
@@ -270,11 +336,32 @@
Last_RX.clear();
pc.printf("%s",tx_str.c_str());
+ //pi.printf("%s",tx_str.c_str());
+ //const char *t_json=tx_str.c_str();
+ //std::vector<std::string> t_json=split(tx_str,",");
+
send_string(tx_str.c_str(),dot);
+ string tem;
+ tem.assign(tx_str,1,2);
+ double l=atoi(tem.c_str());
+ tem.assign(tx_str,3,2);
+ double r=atoi(tem.c_str());
+ tem.assign(tx_str,5,2);
+ double g=atoi(tem.c_str());
+ tem.assign(tx_str,7,2);
+ double b=atoi(tem.c_str());
+
+ pwm_L=1-(l/100.0);
+ pwm_R=r/100.0;
+ pwm_G=g/100.0;
+ pwm_B=b/100.0;
+ pc.printf("%f,%f,%f,%f",l,r,g,b);
+
}
}
+
}
#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/picojson.lib Thu Feb 28 00:24:08 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/tesla_xudong/code/picojson/#60535e1b4660