4343 */
4444#include "../../../SubGHz_Phy/radio.h"
4545#include "RegionAS923.h"
46+ #include "LmHandler.h"
4647
4748// Definitions
4849#define CHANNELS_MASK_SIZE 1
99100#define AS923_MIN_RF_FREQUENCY 915000000
100101#if (defined( REGION_VERSION ) && ( REGION_VERSION == 0x02010003 ))
101102#define AS923_MAX_RF_FREQUENCY 921000000
102- #else
103+ #else
103104#define AS923_MAX_RF_FREQUENCY 928000000
104105#endif
105106
169170#undef AS923_RX_MAX_DATARATE
170171#define AS923_RX_MAX_DATARATE DR_5
171172
172- #undef AS923_DEFAULT_MAX_EIRP
173- #define AS923_DEFAULT_MAX_EIRP 13.0f
174-
175173/*!
176174 * STD-T108 Ver1.4 does not require dwell-time enforcement when using LBT on channels 28 to 38
177175 */
202200#undef AS923_RX_MAX_DATARATE
203201#define AS923_RX_MAX_DATARATE DR_5
204202
205- #undef AS923_DEFAULT_MAX_EIRP
206- #define AS923_DEFAULT_MAX_EIRP 13.0f
207-
208203/*!
209204 * STD-T108 Ver1.4 does not require dwell-time enforcement when using DC on channels 28 to 38
210205 */
217212#undef AS923_DUTY_CYCLE_ENABLED
218213#define AS923_DUTY_CYCLE_ENABLED 1
219214
220- #elif ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC )
215+ #elif ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH33_CH61_LBT_DC )
221216
222217/*
223- * STD-T108 Ver1.4 allows the use of channels 37 to 61 with LBT and DC.
218+ * STD-T108 Ver1.4 allows the use of channels 33 to 61 with LBT and DC.
224219 * However dwell time enforcement must be enabled
225220 */
226221
227- // Channel plan CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC
222+ // Channel plan CHANNEL_PLAN_GROUP_AS923_1_JP_CH33_CH61_LBT_DC
228223
229224#define REGION_AS923_FREQ_OFFSET 0
230225
231226/*!
232- * Restrict AS923 frequencies to channels 37 to 61
227+ * Restrict AS923 frequencies to channels 33 to 61
233228 * Center frequencies 922.4 MHz to 928.0 MHz @ 200 kHz max bandwidth
234229 */
235230#define AS923_MIN_RF_FREQUENCY 922400000
241236#undef AS923_RX_MAX_DATARATE
242237#define AS923_RX_MAX_DATARATE DR_5
243238
244- #undef AS923_DEFAULT_MAX_EIRP
245- #define AS923_DEFAULT_MAX_EIRP 13.0f
246-
247239/*!
248240 * Enable duty cycle enforcement
249241 */
250242#undef AS923_DUTY_CYCLE_ENABLED
251243#define AS923_DUTY_CYCLE_ENABLED 1
252244
253245/*!
254- * STD-T108 Ver1.4 requires a carrier sense time of at least 128 us on channels 37 to 61
246+ * STD-T108 Ver1.4 requires a carrier sense time of at least 128 us on channels 33 to 61
255247 */
256248#undef AS923_CARRIER_SENSE_TIME
257249#define AS923_CARRIER_SENSE_TIME 1
@@ -562,10 +554,10 @@ void RegionAS923SetBandTxDone( SetBandTxDoneParams_t* txDone )
562554#if defined( REGION_AS923 )
563555#if (defined( REGION_VERSION ) && ( REGION_VERSION == 0x01010003 ))
564556 RegionCommonSetBandTxDone ( & RegionNvmGroup1 -> Bands [RegionNvmGroup2 -> Channels [txDone -> Channel ].Band ],
565- txDone -> LastTxAirTime , txDone -> Joined , txDone -> ElapsedTimeSinceStartUp );
557+ txDone -> LastTxAirTime , txDone -> Joined , txDone -> ElapsedTimeSinceTxBackoffRefTime );
566558#elif (defined( REGION_VERSION ) && (( REGION_VERSION == 0x02010001 ) || ( REGION_VERSION == 0x02010003 )))
567559 RegionCommonSetBandTxDone ( & RegionBands [RegionNvmGroup2 -> Channels [txDone -> Channel ].Band ],
568- txDone -> LastTxAirTime , txDone -> Joined , txDone -> ElapsedTimeSinceStartUp );
560+ txDone -> LastTxAirTime , txDone -> Joined , txDone -> ElapsedTimeSinceTxBackoffRefTime );
569561#endif /* REGION_VERSION */
570562#endif /* REGION_AS923 */
571563}
@@ -617,7 +609,7 @@ void RegionAS923InitDefaults( InitDefaultsParams_t* params )
617609
618610#if ( ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP ) || \
619611 ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT ) || \
620- ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC ) )
612+ ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH33_CH61_LBT_DC ) )
621613 RegionNvmGroup2 -> RssiFreeThreshold = AS923_RSSI_FREE_TH ;
622614 RegionNvmGroup2 -> CarrierSenseTime = AS923_CARRIER_SENSE_TIME ;
623615#endif
@@ -1023,7 +1015,8 @@ uint8_t RegionAS923RxParamSetupReq( RxParamSetupReqParams_t* rxParamSetupReq )
10231015{
10241016 uint8_t status = 0x07 ;
10251017#if defined( REGION_AS923 )
1026-
1018+ int8_t datarate ;
1019+ LmHandlerGetTxDatarate ( & datarate );
10271020 // Verify radio frequency
10281021 if ( VerifyRfFreq ( rxParamSetupReq -> Frequency ) == false )
10291022 {
@@ -1037,7 +1030,7 @@ uint8_t RegionAS923RxParamSetupReq( RxParamSetupReqParams_t* rxParamSetupReq )
10371030 }
10381031
10391032 // Verify datarate offset
1040- if ( RegionCommonValueInRange ( rxParamSetupReq -> DrOffset , AS923_MIN_RX1_DR_OFFSET , AS923_MAX_RX1_DR_OFFSET ) == false )
1033+ if ( RegionCommonValueInRange ( rxParamSetupReq -> DrOffset , AS923_MIN_RX1_DR_OFFSET , AS923_MAX_RX1_DR_OFFSET ) && ( EffectiveRx1DrOffsetDownlinkDwell0AS923 [ datarate ][ rxParamSetupReq -> DrOffset ]<= AS923_RX_MAX_DATARATE ) == false )
10411034 {
10421035 status &= 0xFB ; // Rx1DrOffset range KO
10431036 }
@@ -1181,7 +1174,7 @@ LoRaMacStatus_t RegionAS923NextChannel( NextChanParams_t* nextChanParams, uint8_
11811174 identifyChannelsParam .DutyCycleEnabled = nextChanParams -> DutyCycleEnabled ;
11821175 identifyChannelsParam .MaxBands = AS923_MAX_NB_BANDS ;
11831176
1184- identifyChannelsParam .ElapsedTimeSinceStartUp = nextChanParams -> ElapsedTimeSinceStartUp ;
1177+ identifyChannelsParam .ElapsedTimeSinceTxBackoffRefTime = nextChanParams -> ElapsedTimeSinceTxBackoffRefTime ;
11851178 identifyChannelsParam .LastTxIsJoinRequest = nextChanParams -> LastTxIsJoinRequest ;
11861179 identifyChannelsParam .ExpectedTimeOnAir = GetTimeOnAir ( nextChanParams -> Datarate , nextChanParams -> PktLen );
11871180
@@ -1194,7 +1187,7 @@ LoRaMacStatus_t RegionAS923NextChannel( NextChanParams_t* nextChanParams, uint8_
11941187 {
11951188#if (( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP ) || \
11961189 ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT ) || \
1197- ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC ) )
1190+ ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH33_CH61_LBT_DC ) )
11981191 // Executes the LBT algorithm when operating in Japan
11991192 uint8_t channelNext = 0 ;
12001193
0 commit comments