您好!
我将基于 ti154stack 示例"收集器"和"传感器"来实现应用。 MCU 为 CC1312、SDK 6.41.00.17。
模式:信标;BO:10 (~4.9s);SO:2 (~19ms RX);频率:868MHz;调节:ETSI
应用使用信标模式、设备由电池供电。 通信理念是 收集器协调 特定传感器发送数据包的时间。 基本上、收集器填充信标有效载荷 、其中内容传感器器件知道何时 需要发送消息。 消息应在收集器的相同信标 RX 时间部分内发送。 我有两种类型的传感器消息:跟踪和警报。 的影响很小、因为每个信标只发送一个器件。 带报警类型消息的其它故事。 每 第二个信标宣布任何传感器均可在需要时发送警报类型消息。 可能有零个或多个设备有待处理的报警消息。 我的目标是让传感器 使用禁用的 CSMA_BACKOFFS、重试和不等待 ACK 来发送数据。 传感器将知道消息是否 来自下一个信标内容。 如果有多个传感器的警报消息处于待处理状态、则只有一个传感器能够发送、因为另一个传感器将检测到该通道被占用。 在这种情况下、我希望邮件被丢弃、并宣布为未送达。 大多数时候的应用的行为与我所描述的一样。 但在某些情况下、当两个传感器尝试在同一个信标内发送警报时、一个传感器成功发送、而另一个传感器也成功发送、但在下一个信标或甚至两个信标上发送。 这种行为与跟踪消息交织在一起、不受欢迎。
由此产生了两个问题:
- 收集器应用是否可以准确知道何时发送了信标? 或信标 RX 器件完成后发现它? 我需要知道何时设置下一个信标有效载荷是安全的。
- 传感器具有配置和消息 txOptions:
/*最大数据重试次数*/
#define CONFIG_MAX_RETRIES 0
/*! MAC MAX CSMA 退避*/
#define CONFIG_MAC_MAX_CSMA_BACKOFFS 0
txOptions.ack = false
txOptions.indirect =真
txOptions.pendingBit = false
txOptions.noRetransmits =真
txOptions.noConfirm =假
txOptions.useAltBE =假
txOptions.usePowerAndChannel =假
txOptions.useGreenPower =假
如果无法访问 LBT 检测到的帽子通道、您能否确认是否应丢弃该消息? 如果需要、可以指出什么原因会导致此类消息在以后传递几个信标(TX 队列中没有其他消息)?