This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

请问下Ble 5协议中的发送Coded PHY广播时,从HCI命令如果配置使用S=2还是S=8呢?

请教一个Ble 5协议的问题呢,在发送扩展广播时,如果采用Coded PHY,Controller是根据什么来决定使用S=2还是S=8编码的呢?
在HCI命令里只看到可以设置广播时采用Coded PHY方式,但没有具体配置S=2还是S=8的地方。
难道是由controller自己决定采用s=2或s=8吗,不需要由Host设置吗,有点不明白呢?
谢谢先
  • Every packet sent on LE Coded PHY contains a coding indicator (CI), which indicates the coding of the packet. Thus, when a packet is being received on the LE Coded PHY, the receiver uses the coding indicator to determine the coding of the packet.
  • 你HOST设置的:

    #define GAPADV_PARAMS_AE_LONG_RANGE_CONN { \
    .eventProps = GAP_ADV_PROP_CONNECTABLE, \
    .primIntMin = 160, \
    .primIntMax = 160, \
    .primChanMap = GAP_ADV_CHAN_ALL, \
    .peerAddrType = PEER_ADDRTYPE_PUBLIC_OR_PUBLIC_ID, \
    .peerAddr = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa }, \
    .filterPolicy = GAP_ADV_WL_POLICY_ANY_REQ, \
    .txPower = GAP_ADV_TX_POWER_NO_PREFERENCE, \
    .primPhy = GAP_ADV_PRIM_PHY_CODED_S2, \
    .secPhy = GAP_ADV_SEC_PHY_CODED_S2, \
    .sid = 0 \
    }
    这个广播参数你可以设置为S8或者S2。
  • 也就是说接收方不需要设置,通过CI即可知道是s=2还是s=8。 非常感谢。
  • 但是发送方在发送广播的时候,从协议的角度,是根据什么信息决定它采用s=2编码还是2=8编码呢?
  • 非常感谢,再请教下,“.primPhy = GAP_ADV_PRIM_PHY_CODED_S2” 和 “.secPhy = GAP_ADV_SEC_PHY_CODED_S2” 在协议中的Host和Controller的HCI接口中有对应的命令吗?我查了下,没查到有相关的命令呢。
    如果没有的话,那如果是Host和Controller分离的设备,岂不是不能通过标准HCI命令设置Controller发广播时的编码方式是2还是8呢?怎么理解呢?
  • “再请教下,“.primPhy = GAP_ADV_PRIM_PHY_CODED_S2” 和 “.secPhy = GAP_ADV_SEC_PHY_CODED_S2” 在协议中的Host和Controller的HCI接口中有对应的命令吗?我查了下,没查到有相关的命令呢。”



    你是说协议中没有提供HCI接口? 当你烧录host test app那个demo可以去用HCI命令去控制。至于HCI命令你需要在HCI_tester那个上位机软件里面查一下。
  • HCI_LE_SetPhyCmd(connList[0].connHandle,LL_PHY_USE_PHY_PARAM,HCI_PHY_2_MBPS,HCI_PHY_2_MBPS, LL_PHY_OPT_NONE);
    HCI_LE_SetPhyCmd 是这个吗?我新手
x 出现错误。请重试或与管理员联系。