@@ -51,7 +51,6 @@ static void process_packet(unsigned char* data, unsigned int len);
51
51
static void send_packet (unsigned char * data , unsigned int len );
52
52
53
53
void lora_send_packet (unsigned char * data , unsigned int len ) {
54
-
55
54
if (!send_mutex_init_done ) {
56
55
chMtxObjectInit (& send_mutex );
57
56
send_mutex_init_done = true;
@@ -66,11 +65,8 @@ static void process_packet(unsigned char* data, unsigned int len) {
66
65
}
67
66
68
67
static void send_packet (unsigned char * data , unsigned int len ) {
69
-
70
- int erg ;
71
-
72
- erg = SX1278_LoRaEntryTx (& SX1278 , len , 100 );
73
- erg = SX1278_LoRaTxPacket (& SX1278 , (uint8_t * )data , len , 100 );
68
+ SX1278_LoRaEntryTx (& SX1278 , len , 100 );
69
+ SX1278_LoRaTxPacket (& SX1278 , (uint8_t * )data , len , 100 );
74
70
}
75
71
76
72
void lora_init (void ) {
@@ -82,7 +78,7 @@ void lora_init(void) {
82
78
palSetPadMode (HW_LORA_SPI_PORT_MOSI , HW_LORA_SPI_PIN_MOSI , PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST );
83
79
palSetPadMode (HW_LORA_SPI_PORT_DIO0 , HW_LORA_SPI_PIN_DIO0 , PAL_MODE_INPUT );
84
80
palSetPadMode (HW_LORA_SPI_PORT_RESET , HW_LORA_SPI_PIN_RESET , PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST );
85
- SX1278_init (& SX1278 , 868000000 , SX1278_POWER_17DBM , SX1278_LORA_SF_7 , SX1278_LORA_BW_250KHZ , SX1278_LORA_CR_4_5 , SX1278_LORA_CRC_DIS , 100 );
81
+ SX1278_init (& SX1278 , 868000000 , SX1278_POWER_17DBM , SX1278_LORA_SF_7 , SX1278_LORA_BW_250KHZ , SX1278_LORA_CR_4_5 , SX1278_LORA_CRC_DIS , 10 );
86
82
if (!thread_is_running ) {
87
83
chThdCreateStatic (packet_process_thread_wa , sizeof (packet_process_thread_wa ), NORMALPRIO , packet_process_thread , NULL );
88
84
thread_is_running = true;
@@ -95,22 +91,24 @@ void lora_stop(void) {
95
91
static THD_FUNCTION (packet_process_thread , arg ) {
96
92
(void )arg ;
97
93
98
- unsigned char buffer [128 ];
94
+ uint8_t erg ;
95
+ uint8_t buffer [255 ];
99
96
chRegSetThreadName ("LoRa proc" );
100
97
101
98
buffer [0 ] = COMM_GET_VALUES ;
102
99
103
100
while (!commands_is_initialized ()) {
104
101
chThdSleepMilliseconds (10 );
105
102
}
106
-
103
+ erg = SX1278_LoRaEntryRx ( & SX1278 , 255 , 200 );
107
104
for (;;) {
108
- //simulate a received packet to trigger send_packet
109
- commands_process_packet ( buffer , 1 , lora_send_packet );
110
- SX1278_LoRaEntryRx ( & SX1278 , 100 , 100 );
111
- if ( SX1278_LoRaRxPacket ( & SX1278 )) {
112
- process_packet ( SX1278 . rxBuffer , SX1278 . readBytes );
105
+ erg = SX1278_LoRaRxPacket ( & SX1278 );
106
+ if ( erg > 0 ) {
107
+ for ( int i = 0 ; i < SX1278 . readBytes ; i ++ )
108
+ packet_process_byte ( SX1278 . rxBuffer [ i ], & packet_state );
109
+ erg = SX1278_LoRaEntryRx ( & SX1278 , 255 , 200 );
113
110
}
111
+ chThdSleepMilliseconds (10 );
114
112
}
115
113
}
116
114
0 commit comments