From f38075a981a91950d8a5f414233c26ff10f277fd Mon Sep 17 00:00:00 2001 From: Linar Yusupov Date: Fri, 25 Aug 2023 10:32:37 +0300 Subject: [PATCH] illustrations for Ham wiki --- documents/images/ham-7.jpg | Bin 0 -> 31895 bytes documents/images/ham-8.jpg | Bin 0 -> 34882 bytes .../firmware/source/SoftRF/src/driver/RF.h | 8 +- .../source/SoftRF/src/protocol/radio/APRS.cpp | 88 ++++++++---------- .../source/SoftRF/src/protocol/radio/APRS.h | 4 +- .../SoftRF/src/protocol/radio/ES1090.cpp | 2 +- .../SoftRF/src/protocol/radio/OGNTP.cpp | 2 +- .../source/SoftRF/src/protocol/radio/P3I.cpp | 2 +- .../SoftRF/src/protocol/radio/UAT978.cpp | 2 +- .../libraries/arduino-basicmac/src/protocol.h | 4 +- .../libraries/arduino-lmic/src/protocol.h | 4 +- 11 files changed, 51 insertions(+), 65 deletions(-) create mode 100644 documents/images/ham-7.jpg create mode 100644 documents/images/ham-8.jpg diff --git a/documents/images/ham-7.jpg b/documents/images/ham-7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d8c5032fa22056df2e6c76ba2cb7aa59c245931e GIT binary patch literal 31895 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 g7XL+a{xd50tS3 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%0D4)bmrsAP+ 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:" "/" "%02d%02d%02dh" @@ -258,38 +276,6 @@ size_t aprs_encode(void *pkt, ufo_t *this_aircraft) { (altitude_i < 0) ? 0 : altitude_i, /* feet */ id | (XX << 24)); - memcpy((void *) pkt, buf, strlen(buf)); - return strlen(buf); + strcpy((char *) pkt, buf); + return strlen(buf) + 1; } - -/* - * APRS-over-LoRa - */ -const rf_proto_desc_t prol_proto_desc = { - "PRoL", - .type = RF_PROTOCOL_APRS, - .modulation_type = RF_MODULATION_TYPE_LORA, - .preamble_type = 0 /* INVALID FOR LORA */, - .preamble_size = 0 /* INVALID FOR LORA */, - .syncword = { 0x12 }, // sx127x default value, valid for PRoL - .syncword_size = 1, - .net_id = 0x0000, /* not in use */ - .payload_type = RF_PAYLOAD_DIRECT, - .payload_size = APRS_PAYLOAD_SIZE, - .payload_offset = PROL_PAYLOAD_OFFSET, - .crc_type = RF_CHECKSUM_TYPE_NONE, /* LoRa packet has built-in CRC */ - .crc_size = 0 /* INVALID FOR LORA */, - .bitrate = DR_SF12 /* CR_5 BW_125 SF_12 */, - - .deviation = 0 /* INVALID FOR LORA */, - .whitening = RF_WHITENING_NONE, - .bandwidth = RF_RX_BANDWIDTH_SS_125KHZ, /* TBD */ - - .air_time = PROL_AIR_TIME, - - .tm_type = RF_TIMING_INTERVAL, - .tx_interval_min = PROL_TX_INTERVAL_MIN, - .tx_interval_max = PROL_TX_INTERVAL_MAX, - .slot0 = {0, 0}, - .slot1 = {0, 0} -}; diff --git a/software/firmware/source/SoftRF/src/protocol/radio/APRS.h b/software/firmware/source/SoftRF/src/protocol/radio/APRS.h index 9a580ba93..2d8d78897 100644 --- a/software/firmware/source/SoftRF/src/protocol/radio/APRS.h +++ b/software/firmware/source/SoftRF/src/protocol/radio/APRS.h @@ -35,7 +35,7 @@ #define APRS_AIR_TIME 3000 /* 3 s */ #define APRS_TX_INTERVAL_MIN 60000 /* in ms, no SB nor LBT support at this time */ -#define APRS_TX_INTERVAL_MAX 65500 /* TBD: 80000 */ +#define APRS_TX_INTERVAL_MAX 80000 typedef struct { @@ -57,7 +57,7 @@ size_t aprs_encode(void *, ufo_t *); #define PROL_AIR_TIME 4600 /* 4.6 s */ #define PROL_TX_INTERVAL_MIN 60000 /* in ms, no SB nor LBT support at this time */ -#define PROL_TX_INTERVAL_MAX 65500 /* TBD: 80000 */ +#define PROL_TX_INTERVAL_MAX 80000 extern const rf_proto_desc_t prol_proto_desc; diff --git a/software/firmware/source/SoftRF/src/protocol/radio/ES1090.cpp b/software/firmware/source/SoftRF/src/protocol/radio/ES1090.cpp index 53d31ca6e..ee9c86f06 100644 --- a/software/firmware/source/SoftRF/src/protocol/radio/ES1090.cpp +++ b/software/firmware/source/SoftRF/src/protocol/radio/ES1090.cpp @@ -1,6 +1,6 @@ /* - * * Protocol_ES1090.cpp + * * Decoder for Extended Squitter 1090 MHz ADS-B radio protocol * Copyright (C) 2021-2023 Linar Yusupov * diff --git a/software/firmware/source/SoftRF/src/protocol/radio/OGNTP.cpp b/software/firmware/source/SoftRF/src/protocol/radio/OGNTP.cpp index 98cabe413..899d8a286 100644 --- a/software/firmware/source/SoftRF/src/protocol/radio/OGNTP.cpp +++ b/software/firmware/source/SoftRF/src/protocol/radio/OGNTP.cpp @@ -1,6 +1,6 @@ /* - * * Protocol_OGNTP.cpp + * * Encoder and decoder for Open Glider Network tracker radio protocol * Copyright (C) 2017-2023 Linar Yusupov * diff --git a/software/firmware/source/SoftRF/src/protocol/radio/P3I.cpp b/software/firmware/source/SoftRF/src/protocol/radio/P3I.cpp index e2e6aec85..e7bdfe8d5 100644 --- a/software/firmware/source/SoftRF/src/protocol/radio/P3I.cpp +++ b/software/firmware/source/SoftRF/src/protocol/radio/P3I.cpp @@ -1,6 +1,6 @@ /* - * * Protocol_P3I.cpp + * * Encoder and decoder for PilotAware P3I radio protocol * Copyright (C) 2017-2023 Linar Yusupov * diff --git a/software/firmware/source/SoftRF/src/protocol/radio/UAT978.cpp b/software/firmware/source/SoftRF/src/protocol/radio/UAT978.cpp index f4fa9df29..f102eb4ff 100644 --- a/software/firmware/source/SoftRF/src/protocol/radio/UAT978.cpp +++ b/software/firmware/source/SoftRF/src/protocol/radio/UAT978.cpp @@ -1,6 +1,6 @@ /* - * * Protocol_UAT978.cpp + * * Decoder for UAT 978 MHz ADS-B radio protocol * Copyright (C) 2019-2023 Linar Yusupov * diff --git a/software/firmware/source/libraries/arduino-basicmac/src/protocol.h b/software/firmware/source/libraries/arduino-basicmac/src/protocol.h index b4a597d5d..d47f7a1b3 100644 --- a/software/firmware/source/libraries/arduino-basicmac/src/protocol.h +++ b/software/firmware/source/libraries/arduino-basicmac/src/protocol.h @@ -137,8 +137,8 @@ typedef struct RF_PROTOCOL { uint16_t air_time; uint8_t tm_type; - uint16_t tx_interval_min; - uint16_t tx_interval_max; + uint32_t tx_interval_min; + uint32_t tx_interval_max; tslot_t slot0; tslot_t slot1; } rf_proto_desc_t; diff --git a/software/firmware/source/libraries/arduino-lmic/src/protocol.h b/software/firmware/source/libraries/arduino-lmic/src/protocol.h index b4a597d5d..d47f7a1b3 100644 --- a/software/firmware/source/libraries/arduino-lmic/src/protocol.h +++ b/software/firmware/source/libraries/arduino-lmic/src/protocol.h @@ -137,8 +137,8 @@ typedef struct RF_PROTOCOL { uint16_t air_time; uint8_t tm_type; - uint16_t tx_interval_min; - uint16_t tx_interval_max; + uint32_t tx_interval_min; + uint32_t tx_interval_max; tslot_t slot0; tslot_t slot1; } rf_proto_desc_t;