digipeating only ssids 7, 8 and 9

pull/2/head
Mateusz Lubecki 2019-05-29 06:11:05 +02:00
rodzic 4afb22ccfe
commit b05322ba7a
4 zmienionych plików z 16 dodań i 3 usunięć

Wyświetl plik

@ -3,8 +3,8 @@
#include "aprs/ax25.h"
#define SW_VER "DC00"
#define SW_DATE "05052019"
#define SW_VER "DC01"
#define SW_DATE "29052019"
#define SYSTICK_TICKS_PER_SECONDS 100
#define SYSTICK_TICKS_PERIOD 10

Wyświetl plik

@ -14,6 +14,7 @@
// Uncomment to enable all meteo functionality. TX20 anemometer, dallas termometer, MS5611 pressure sens
#define _METEO
#define _DIGI // Comment this do disable WIDE1-1 digipeating
//#define _DIGI_ONLY_789
//#define _MUTE_RF // TODO: Not yet implemented - This will make station RXonly and disable all data transmission
//#define _MUTE_OWN // TODO: Not yet implemented - This will disable all self-generated packets (wx, telemetry, beacon)

Wyświetl plik

@ -124,7 +124,7 @@ void packet_tx_handler(void) {
telemetry_send_values(rx10m, tx10m, digi10m, kiss10m, rte_wx_temperature_valid, dallas_qf, rte_wx_ms5611_qf, rte_wx_dht.qf, rte_wx_tx20_excessive_slew_rate);
#else
// if user will disable both _METEO and _DALLAS_AS_TELEM value will be zeroed internally anyway
telemetry_send_values(rx10m, tx10m, digi10m, kiss10m, 0.0f, dallas_qf, rte_wx_ms5611_qf, rte_wx_dht.qf);
telemetry_send_values(rx10m, tx10m, digi10m, kiss10m, 0.0f, dallas_qf, rte_wx_ms5611_qf, rte_wx_dht.qf, rte_wx_tx20_excessive_slew_rate);
#endif
//
#endif

Wyświetl plik

@ -20,10 +20,18 @@ char digi_q = 0;
uint8_t digi_msg[CONFIG_AX25_FRAME_BUF_LEN];
uint16_t digi_msg_len;
uint8_t digi_limit_to_ssid789;
char Digi(struct AX25Msg *msg) {
#ifdef _DIGI
#ifdef _DIGI_ONLY_789
digi_limit_to_ssid789 = 1;
#else
digi_limit_to_ssid789 = 0;
#endif
AX25Call digi_path[7];
uint8_t call_len = 0;
memset(digi_path, sizeof(AX25Call) * 7, 0x00);
@ -33,6 +41,10 @@ char Digi(struct AX25Msg *msg) {
return DIGI_PACKET_TOO_LONG;
}
if ((msg->src.ssid < 7 || msg->src.ssid > 9) && digi_limit_to_ssid789 == 1) {
return 0;
}
if (main_afsk.sending != 1 && after_tx_lock == 0) {
/* funkcja wywoływana po odbiorze ramki - tu powinna być obsługa digi */
if((msg->rpt_cnt >= 1) /*&& CheckIsOwnPacket(msg) == 0*/) {