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: PingPong-P2P-ClickButtonToWork-SX1272 Lora_SX1272_Coragem
Revision 6:c305f2aa79a4, committed 2021-03-17
- Comitter:
- afzalsamira
- Date:
- Wed Mar 17 20:14:13 2021 +0000
- Parent:
- 5:ef21a65a3450
- Commit message:
- p2p-clickbuttonToPpingPong
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lora_SX1272_Coragem.lib Wed Mar 17 20:14:13 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/marcoantonioara/code/Lora_SX1272_Coragem/#ef21a65a3450
--- a/SX1272.lib Wed Dec 04 11:50:35 2019 +0000 +++ b/SX1272.lib Wed Mar 17 20:14:13 2021 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/users/marcoantonioara/code/SX1272/#f77a79f4239a +https://os.mbed.com/users/afzalsamira/code/PingPong-P2P-ClickButtonToWork-SX1272/#d7c7e731da3a
--- a/lora.txt Wed Dec 04 11:50:35 2019 +0000
+++ b/lora.txt Wed Mar 17 20:14:13 2021 +0000
@@ -1,7 +1,7 @@
#include "SX1272.h"
//#define BAND868
-#define MAX_DBM 14
+#define MAX_DBM 20
#define DATA 0
#define PING 1
#define PONG 2
@@ -9,6 +9,7 @@
#define ADDRESS 10
+//samira //const uint32_t DEFAULT_CHANNEL=CH_04_868;//to test
const uint32_t DEFAULT_CHANNEL=CH_12_900;//915Mhz CH_12_900 =>0xE4C000;
///////////////////////////////////////////////////////////////////
@@ -32,10 +33,12 @@
int e;
//___________mensagem_____________________
-uint8_t message[255];
+uint8_t message[255]; // message[MESSAGELENGTH]
+
uint8_t buffer[255];
uint8_t message_pong[]="Pong";
uint8_t message_ping[]="Ping";
+
uint8_t r_size;
char float_temp[10];
char float_press[10];
@@ -51,7 +54,7 @@
{
- printf("------Coragem LoRa temperature sensor-------------\n");
+ printf("------Coragem LoRa temperature sensor -------------\n");
//sx1272.ON(); // Power ON the module
int error_config_sx1272=0;
@@ -105,6 +108,7 @@
}
void send_packet (uint8_t *payload, uint8_t length8) // envia pacote
{
+ printf("Samira - send_packet ( ) - ENTER..\n");
//write on FIFO
sx1272.writeRegister(REG_IRQ_FLAGS,255);//clear flags
@@ -114,6 +118,7 @@
sx1272.writeRegister(REG_FIFO_ADDR_PTR,0x00);
for(unsigned int i = 0; i <= length8; i++) {
+ printf("Samira - send_packet ( ) - FOR..\n");
sx1272.writeRegister(REG_FIFO, payload[i]); // Writing the payload in FIFO
}
@@ -124,92 +129,134 @@
unsigned long exitTime = millis()+2000;//2 segundos para sair do for
unsigned long Time= millis();
char value = sx1272.readRegister(REG_IRQ_FLAGS);
-
+/*
+int bitCounter = 0;
while ((bitRead(value, 3) == 0) && (Time < exitTime)) {
+ bitCounter ++;
+ printf("bitCounter = %d", bitCounter);
+ printf("\n");
value=sx1272.readRegister(REG_IRQ_FLAGS);
Time= millis();
wait_ms(50);
}
-
- wait_ms(50);
+ */
+ printf("Samira - send_packet ( ) - OUT..\n");
+ //wait_ms(50);
}
void send_data(int mode) //data predefined
{
led1=1;
+ led2=1;
+ printf("Samira - enter send_data () ..\n");
+ printf("number=%d\n",cont);
sx1272.writeRegister(REG_OP_MODE,129);//standby
if (mode == DATA ) {
+ printf("Samira - send_data (DATA) ..\n");
+ r_size=sprintf((char*)message,"RANDOM MESSAGE");
+ send_packet(message,r_size);
+ printf("packet send :\n%s\nrsize=%d\n",message,r_size);
- sprintf(float_temp,"%2.2f",getTemperature());
- sprintf(float_press,"%04.2f",getPressure());
- sprintf(float_hum,"%2.2f",getHumidity());
+
+
+
+// //samira// it is sending sensors data
+// sprintf(float_temp,"%2.2f",getTemperature());
+// sprintf(float_press,"%04.2f",getPressure());
+// sprintf(float_hum,"%2.2f",getHumidity());
//============= internet of turtles =============
- sprintf(float_breathing_time,"%04.2f", last_breathing_time);
- sprintf(float_diving_time,"%04.2f", last_diving_time);
- r_size=sprintf((char*)message,"\\!#Dt%04.2f_Bt%04.2f_%s°C_%shPa_%s%%",last_diving_time,last_breathing_time,float_temp,float_press,float_hum);
+// sprintf(float_breathing_time,"%04.2f", last_breathing_time);
+// sprintf(float_diving_time,"%04.2f", last_diving_time);
+// r_size=sprintf((char*)message,"\\!#Dt%04.2f_Bt%04.2f_%s°C_%shPa_%s%%",last_diving_time,last_breathing_time,float_temp,float_press,float_hum);
// ==============================================
//size=sprintf((char*)message,"\\!#%s°C_%shPa_%s%%",float_temp,float_press,float_hum);
- send_packet(message,r_size);
-// sx1272.sendPacketTimeout(DEFAULT_DEST_ADDR,/* (uint8_t*)*/message, r_size);
- printf("packet send :\n%s\nrsize=%d\n",message,r_size);
+ // send_packet(message,r_size);
+ // sx1272.sendPacketTimeout(DEFAULT_DEST_ADDR,/* (uint8_t*)*/message, r_size);
+ // printf("packet send :\n%s\nrsize=%d\n",message,r_size);
+
} else if (mode == PING ) {
-
+ printf("Samira - send_data (PING) ..\n");
//sx1272.sendPacketTimeout(DEFAULT_DEST_ADDR, message_ping, sizeof(message_ping));
send_packet(message_ping,sizeof(message_ping));
- printf("packet send :\n%s\n",message_ping);
+ printf("packet sent : %s ",message_ping);
+ printf("packet size : %d \n",sizeof(message_ping));//samira//
+ printf("waiting for POng ... \n");
} else if (mode == PONG ) {
-
+ printf("sending a PONG ... ");
//sx1272.sendPacketTimeout(DEFAULT_DEST_ADDR, message_pong, sizeof(message_pong));
send_packet(message_pong,sizeof(message_pong));
printf("packet send :\n%s\n",message_pong);
}
- wait_ms(300);
+ led1=0;
+ led2=0;
+ //wait_ms(300);
sx1272.writeRegister(REG_IRQ_FLAGS,255);//clear flags
sx1272.writeRegister(REG_OP_MODE,133); //leitura continua
cont++;
- printf("number=%d\n",cont);
-
- led1=0;
}
void print_packet()
{
- led2=1;
+ printf("Samira - print_packet () Enter ..\n");
+ //led2=1;
sx1272.writeRegister(REG_OP_MODE,129);//standby
uint8_t pac_size;
sx1272.writeRegister(REG_FIFO_ADDR_PTR,sx1272.readRegister(REG_FIFO_RX_CURRENT_ADDR));//set fifo pointer to read packet
pac_size = sx1272.readRegister(REG_RX_NB_BYTES);//read size of packet
+ printf("Samira - print_packet () pac_size = %d ..\n", pac_size);
for(int i =0 ; i<pac_size ; i++) { //print packet
buffer[i]=sx1272.readRegister(REG_FIFO);
/* if (buffer[i]== '\n') printf(" \\n");
if (buffer[i]== 0x0B) printf("tab");*/
- printf("%c",buffer[i]);//print packet
+ printf("%c",buffer[i]);//print packet
}
printf("\n");
for(int i =0 ; i<pac_size ; i++) { //look for Ping in packet
if ((buffer[i] =='P') && (buffer[i+1] =='i') && (buffer[i+2] =='n') && (buffer[i+3] =='g') ) {
+ led1=1;
+ led2=1;
+ wait(1);
sx1272.writeRegister(0x12,255);//clear flags
+ led1=0;
+ led2=0;
+ printf("There is a wait before sending PONG \n");
+ printf("sending PONG");
send_data(PONG);
i=pac_size;
}
}
+
+ for(int i =0 ; i<pac_size ; i++) { //look for Pong in packet
+ if ((buffer[i] =='P') && (buffer[i+1] =='o') && (buffer[i+2] =='n') && (buffer[i+3] =='g') ) {
+ led1=1;
+ led2=1;
+ sx1272.writeRegister(0x12,255);//clear flags
+ printf("pong received \n");
+ wait(1);
+ led1=0;
+ led2=0;
+
+ i=pac_size;
+ }
+ }
+
for(int i =0 ; i<pac_size ; i++) { //look for Reset in packet
if ((buffer[i] =='R') && (buffer[i+1] =='e') && (buffer[i+2] =='s') && (buffer[i+3] =='e') && (buffer[i+4] =='t') ) {
@@ -224,5 +271,6 @@
sx1272.writeRegister(REG_IRQ_FLAGS,255);//clear flags
sx1272.writeRegister(REG_OP_MODE,133); //leitura continua
led2=0;
+ printf("Samira - print_packet () OUT ..\n");
}
\ No newline at end of file
--- a/main.cpp Wed Dec 04 11:50:35 2019 +0000
+++ b/main.cpp Wed Mar 17 20:14:13 2021 +0000
@@ -25,6 +25,10 @@
char float_breathing_time[10];
char float_diving_time[10];
+/////////////
+//tESTING INPUT AND OUTPUT
+//////////////
+
//Timer seconds;
//================================================
@@ -51,7 +55,7 @@
// Configuration
///////////////////////////////////////
-
+ printf(" Turning the LEDs on ..\n");
led1=1;//----on leds---
led2=1;
@@ -74,7 +78,8 @@
sx1272.writeRegister(REG_OP_MODE,133); //leitura continua
sx1272.writeRegister(REG_IRQ_FLAGS_MASK,187);//configure interrupt mask to interrupt only when a packet receive and packet envied
-
+
+ printf("Turning the LEDs off ..\n");
led1=0;//----off leds---
led2=0;
@@ -86,13 +91,24 @@
///////////////////////////////////////
while(1){
-
+
if (!button1){
- led2=1;
- send_data(PING);
- led2=0;
+ //test scanf
+ //led1=1;
+ //led2=1;
+ //char ch;
+ // printf("Enter one char");
+ //scanf("%c", &ch);
+ // printf("%c\n",ch);
+
+
+ printf("SENDING PING\n");
+ send_data(PING);
+ // send_data(DATA);
+
+
}
-
+
// if (button3 != beathing) {
// beathing = !beathing;
// if(button3){
@@ -126,3 +142,57 @@
}
}
+
+/*
+
+////////
+//TESTING fREQUENCY CONFIGURATION
+////////////////
+
+
+
+#include "lora.txt"
+
+int main(void) {
+
+ uint8_t config_message[] = "1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm1234567890qwertyuiopasdfghjklzxcvbnm01234567890123456789";
+
+
+ led1=1;//----on leds---
+ led2=1;
+
+ //____Configuration bme280
+ bme_init();
+
+ //____Configuration Lora
+ Thread eventThread;
+ eventThread.start(callback(&queue, &EventQueue::dispatch_forever));
+
+ dio0.rise(queue.event(&print_packet)); //configure interrupt rotine ro recieve packet
+ setup(); //configura sx1272
+
+ sx1272.writeRegister(REG_OP_MODE,133); //leitura continua
+ sx1272.writeRegister(REG_IRQ_FLAGS_MASK,187);//configure interrupt mask to interrupt only when a packet receive and packet envied
+
+ led1=0;//----off leds---
+ led2=0;
+
+ printf("PROGRAM STARTS\n");
+ while(1){
+
+ led1=1;
+ led2=1;
+ send_data(PING);
+ led2=0;
+
+
+// if (button3){
+// // send_data(DATA);
+//// send_packet(big_message,sizeof(big_message));
+//// send_packet(reset_message,sizeof(reset_message));
+//// wait_ms(400);
+ wait_ms(500);
+ }
+
+}
+*/
\ No newline at end of file