-1

経由で返品peripheral:didReceiveWriteRequestする場合。CBATTRequesthex-encoded NSDatarequest.value

これは私が試したものです

// Define struct
typedef struct __attribute__((packed)) {
    UInt8  pktNo;
    UInt8  ctrlCmd;
    UInt8  txPowerRequest;
    UInt16 uuid;
    UInt16 userPayload; // how to store 15 octets?
} Packet;

   // Unpack 
   Packet *packet = (Packet *)request.value.bytes;
    if (packet) {
        UInt8  pktNo   = packet->pktNo;
        UInt8  cmd     = packet->ctrlCmd;
        UInt8  tx      = packet->txPowerRequest;
        UInt16 uuid    = packet->uuid;
        UInt16 payload = packet->userPayload;
        NSLog(@"pktNo: %hhu, cmd: %hhu, tx: %hhu, uuid: %hu, payload: %hu", pktNo, cmd, tx, uuid, payload);
    }

コンソール

pktNo: 121, cmd: 202, tx: 130, uuid: 48321, payload: 21421

まず、これらの数値は不正確に見えます。また、デバッグ ツールから取得した次の類似の値が一致しないように見えるため、これがどのような形式になっているのかもわかりません。

デフォルト:生の文字列?

packet          Packet *    0x281af0cc0 0x0000000281af0cc0
pktNo           UInt8       'y'
ctrlCmd         UInt8       '\xca'
txPowerRequest  UInt8       '\x82'
uuid            UInt16      48321
userPayload     UInt16      21421
4

1 に答える 1