kopia lustrzana https://github.com/SP8EBC/ParaTNC
aprsis beacon and closing connection of failed login attempt
rodzic
1b25b294e6
commit
21db804d19
|
@ -14,10 +14,11 @@
|
|||
extern uint8_t aprsis_connected;
|
||||
|
||||
void aprsis_init(srl_context_t * context, gsm_sim800_state_t * gsm_modem_state, char * callsign, uint8_t ssid, uint32_t passcode);
|
||||
void aprsis_connect_and_login(char * address, uint8_t address_ln, uint16_t port);
|
||||
uint8_t aprsis_connect_and_login(char * address, uint8_t address_ln, uint16_t port);
|
||||
void aprsis_receive_callback(srl_context_t* srl_context);
|
||||
void aprsis_check_alive(void);
|
||||
|
||||
void aprsis_send_wx_frame(uint16_t windspeed, uint16_t windgusts, uint16_t winddirection, float temperatura, float cisnienie, uint8_t humidity);
|
||||
void aprsis_send_beacon(uint8_t async);
|
||||
|
||||
#endif /* APRSIS_H_ */
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
#include "drivers/serial.h"
|
||||
#include "config_data.h"
|
||||
|
||||
#define SW_VER "EA04"
|
||||
#define SW_DATE "20022022"
|
||||
#define SW_VER "EA05"
|
||||
#define SW_DATE "06032022"
|
||||
|
||||
#define SYSTICK_TICKS_PER_SECONDS 100
|
||||
#define SYSTICK_TICKS_PERIOD 10
|
||||
|
|
33
src/aprsis.c
33
src/aprsis.c
|
@ -67,10 +67,12 @@ void aprsis_init(srl_context_t * context, gsm_sim800_state_t * gsm_modem_state,
|
|||
|
||||
}
|
||||
|
||||
void aprsis_connect_and_login(char * address, uint8_t address_ln, uint16_t port) {
|
||||
uint8_t aprsis_connect_and_login(char * address, uint8_t address_ln, uint16_t port) {
|
||||
|
||||
uint8_t out = 2;
|
||||
|
||||
if (aprsis_serial_port == 0 || aprsis_gsm_modem_state == 0 || aprsis_logged == 1) {
|
||||
return;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (*aprsis_gsm_modem_state == SIM800_ALIVE) {
|
||||
|
@ -122,13 +124,23 @@ void aprsis_connect_and_login(char * address, uint8_t address_ln, uint16_t port)
|
|||
// wait for consecutive data
|
||||
gsm_sim800_tcpip_async_receive(aprsis_serial_port, aprsis_gsm_modem_state, 0, 61000, aprsis_receive_callback);
|
||||
|
||||
out = 0;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
gsm_sim800_tcpip_close(aprsis_serial_port, aprsis_gsm_modem_state);
|
||||
}
|
||||
}
|
||||
else {
|
||||
gsm_sim800_tcpip_close(aprsis_serial_port, aprsis_gsm_modem_state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return out;
|
||||
|
||||
}
|
||||
|
||||
void aprsis_receive_callback(srl_context_t* srl_context) {
|
||||
|
@ -203,3 +215,20 @@ void aprsis_send_wx_frame(uint16_t windspeed, uint16_t windgusts, uint16_t windd
|
|||
|
||||
gsm_sim800_tcpip_async_write((uint8_t *)aprsis_packet_tx_buffer, aprsis_packet_tx_message_size, aprsis_serial_port, aprsis_gsm_modem_state);
|
||||
}
|
||||
|
||||
void aprsis_send_beacon(uint8_t async) {
|
||||
|
||||
if (aprsis_logged == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
aprsis_packet_tx_message_size = sprintf(aprsis_packet_tx_buffer, "%s>AKLPRZ,qAR,%s:=%s%c%c%s%c%c %s\r\n", aprsis_callsign_with_ssid, aprsis_callsign_with_ssid, main_string_latitude, main_config_data_basic->n_or_s, main_symbol_f, main_string_longitude, main_config_data_basic->e_or_w, main_symbol_s, main_config_data_basic->comment);
|
||||
aprsis_packet_tx_buffer[aprsis_packet_tx_message_size] = 0;
|
||||
|
||||
if (async > 0) {
|
||||
gsm_sim800_tcpip_async_write((uint8_t *)aprsis_packet_tx_buffer, aprsis_packet_tx_message_size, aprsis_serial_port, aprsis_gsm_modem_state);
|
||||
}
|
||||
else {
|
||||
gsm_sim800_tcpip_write((uint8_t *)aprsis_packet_tx_buffer, aprsis_packet_tx_message_size, aprsis_serial_port, aprsis_gsm_modem_state);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1201,7 +1201,11 @@ int main(int argc, char* argv[]){
|
|||
}
|
||||
|
||||
if (main_config_data_mode->gsm == 1) {
|
||||
aprsis_connect_and_login(TEST_IP, strlen(TEST_IP), 14580);
|
||||
retval = aprsis_connect_and_login(TEST_IP, strlen(TEST_IP), 14580);
|
||||
|
||||
if (retval == 0) {
|
||||
aprsis_send_beacon(0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue