static const uint8_t adv_data[] = {
  // Flags general discoverable, BR/EDR not supported
  2, BLUETOOTH_DATA_TYPE_FLAGS, 0x06,   ←NUSのアドバタイズ・データ
  // Name
  8, BLUETOOTH_DATA_TYPE_COMPLETE_LOCAL_NAME, 'n', 'R', 'F',' ', 'S', 'P', 'P',
  // UUID ...
  17, BLUETOOTH_DATA_TYPE_COMPLETE_LIST_OF_128_BIT_SERVICE_CLASS_UUIDS, 0x9e, 0xca, 0xdc, 0x24, 0xe, 0xe5, 0xa9, 0xe0, 0x93, 0xf3, 0xa3, 0xb5, 0x1, 0x0, 0x40, 0x6e,
};
const uint8_t adv_data_len = sizeof(adv_data);
省略
/*
 *  GATTパケットハンドラ
 */
static void att_packet_handler(uint8_t packet_type,
   uint16_t channel, uint8_t *packet, uint16_t size) {
  UNUSED(channel);
  UNUSED(size);
  int local_mtu;

  if (packet_type != HCI_EVENT_PACKET)
    return;
  switch (hci_event_packet_get_type(packet)) {
  case ATT_EVENT_CONNECTED:
    syslog_0(LOG_NOTICE, "BTstack connect.");
    att_mtu = ATT_DEFAULT_MTU - 4;
    connect = true;
    init_queue(&tque, sbuffer, SEND_BUFSIZE,
                                    LIMIT_SIZE);
    init_queue(&rque, rbuffer, RECV_BUFSIZE, 0);
    SVC_PERROR(ter_tsk(mon_tid));
    _setup_ble_serial(NULL);
    dly_tsk(1);
    SVC_PERROR(act_tsk(mon_tid));
    break;
  case ATT_EVENT_MTU_EXCHANGE_COMPLETE:
    local_mtu = att_event_mtu_exchange_complete_get_MTU(packet) - 3;
    att_mtu = btstack_min(local_mtu - 3, BUFFSER_SIZE);
    syslog_2(LOG_NOTICE,
      "ATT MTU = %u => serial length %u", local_mtu,
      att_mtu);
    break;
  case ATT_EVENT_DISCONNECTED:
    syslog_0(LOG_NOTICE, "BTstack disconnect.");
    _restore_ble_serial();
    set_1_queue(&rque, '\r');
    connect = false;
    break;
  default:
    break;
  }
}
