123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- //
- typedef struct
- {
- uint8_t Len;
- uint8_t uuid[16];
- }UUID_TYPE;
- typedef struct
- {
- uint16_t handle;
- UUID_TYPE uuids;
- uint16_t dataLen;
- uint16_t dataPtr;
- }FOUND_UUID_TYPE;
- typedef struct
- {
- uint16_t startHandle;
- uint16_t endHandle;
- UUID_TYPE uuids;
- }ATTRIBUTE_GROUP_TYPE;
- typedef struct
- {
- uint8_t Len;
- uint8_t uuid[2];
- }UUID32_TYPE;
- typedef struct
- {
- uint8_t Len;
- uint8_t uuid[16];
- }UUID128_TYPE;
- typedef struct
- {
- uint16_t handle;
- uint8_t uuid_len;
- uint8_t *uuid;
- uint8_t dataLen;
- uint8_t *dataPtr;
- }ATT_TABLE_TYPE;
- // const uint8_t READ_PREMITTED_ONLY[] = {READ_PREMITTED};
- // const uint8_t NOTIFY_PREMITTED_ONLY[] = {NOTIFY_PREMITTED};
- // const uint8_t INDICATE_PREMITTED_ONLY[] = {INDICATE_PREMITTED};
- // const uint8_t WRITE_PREMITTED_ONLY[] = {WRITE_PREMITTED};
- // const uint8_t WRITE_WITHOUT_RESPONSE_PREMITTED_ONLY[] = {WRITE_WITHOUT_RESPONSE_PREMITTED};
- // const uint8_t READ_NOTIFY_PREMITTED[] = {WRITE_WITHOUT_RESPONSE_PREMITTED|NOTIFY_PREMITTED};
- // const uint8_t READ_WRITE_WRITEWITHOUTRSP_PREMITTED[] = {WRITE_WITHOUT_RESPONSE_PREMITTED|READ_PREMITTED|WRITE_PREMITTED};
- // const uint8_t READ_WRITE_PREMITTED[] = {READ_PREMITTED|WRITE_PREMITTED};
- // const uint8_t READ_WRITEWITHOUTRSP_PREMITTED[] = {READ_PREMITTED|WRITE_WITHOUT_RESPONSE_PREMITTED};
- // const uint8_t PRIMARY_SERVICE[] = {UUID2ARRAY(UUID_GATT_PRIMARY_SERVICE)};
- // const uint8_t SECONDARY_SERVICE[] = {UUID2ARRAY(UUID_GATT_SECONDARY_SERVICE)};
- // const uint8_t SERVICE_GENERIC_ACC[] = {UUID2ARRAY(UUID_SERVICE_GENERIC_ACC)};
- // const uint8_t GATT_CHARACTERISTIC[] = {UUID2ARRAY(UUID_GATT_CHARACTERISTIC)};
- // const uint8_t CHRCTR_DEVICE_NAME[] = {UUID2ARRAY(UUID_CHRCTR_DEVICE_NAME)};
- // const uint8_t CHRCTR_APPEARANCE[] = {UUID2ARRAY(UUID_CHRCTR_APPEARANCE)};
- // const uint8_t appearance_value[] = {0x80,0x01};
- // const uint8_t SERVICE_GENERIC_ATT[] = {UUID2ARRAY(UUID_SERVICE_GENERIC_ATT)};
- // const uint8_t CHCTR_PerPreferred_Connection_Parameters[] = {UUID2ARRAY(UUID_CHRCTR_PerPreConn_Parameters)};
- // const uint8_t CHRCTR_SERVICE_CHANGED[] = {UUID2ARRAY(UUID_CHRCTR_SERVICE_CHANGED)};
- // const uint8_t service_changed_value[] = {0,0};
- // const uint8_t CHARACTERTIC_CONFIGURATION[] = {UUID2ARRAY(CLIENT_CHARACTERTIC_CONFIGURATION)};
- // const uint8_t service_changed_conf_value[] = {0,0};
- // const uint8_t SERVICE_BATTERY[] = {UUID2ARRAY(UUID_SERVICE_BATTERY)};
- // const uint8_t CHRCTR_BATTERY_LEVEL[] = {UUID2ARRAY(UUID_CHRCTR_BATTERY_LEVEL)};
- // const uint8_t battery_leval_conf_value[] = {0,0};
- // const uint8_t SERVICE_DEVICE_INFO[] = {UUID2ARRAY(UUID_SERVICE_DEVICE_INFO)};
- // const uint8_t CHRCTR_MODEL_NUMBER[] = {UUID2ARRAY(UUID_CHRCTR_MODEL_NUMBER)};
- // const uint8_t model_number_value[] = {'1','1','1'};
- // const uint8_t CHRCTR_MANUFACTURE_NAME[] = {UUID2ARRAY(UUID_CHRCTR_MANUFACTURE_NAME)};
- // const uint8_t manufacture_name_value[] = {'n','a','n','o'};
- // const uint8_t CHRCTR_PNP_ID[] = {UUID2ARRAY(UUID_CHRCTR_PNP_ID)};
- // const uint8_t pnp_id_value[]={0x02,0x54,0x2b,0x00,0x16,0x00,0x00};
- // const uint8_t SERVICE_HIDS[] = {UUID2ARRAY(UUID_SERVICE_HIDS)};
- // const uint8_t CHRCTR_HID_INFO[] = {UUID2ARRAY(UUID_CHRCTR_HID_INFO)};
- // const uint8_t hid_info[] = {0x01,0x01,0x00,0x02};
- // const uint8_t CHRCTR_REPORT_MAP[] = {UUID2ARRAY(UUID_CHRCTR_REPORT_MAP)};
- // const uint8_t EXTERNAL_REPORT[] = {UUID2ARRAY(EXTERNAL_REPORT_REFERENCE)};
- // const uint8_t external_report_value[] ={0x19,0x2a};
- // const uint8_t CHRCTR_HID_CTRL_POINT[] = {UUID2ARRAY(UUID_CHRCTR_HID_CTRL_POINT)};
- // const uint8_t hid_ctrl_point_value[] = {0,0};
- // const uint8_t CHRCTR_KEYBOARD_INPUT[] = {UUID2ARRAY(UUID_CHRCTR_KEYBOARD_INPUT)};
- // const uint8_t keyboard_input_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t keyboard_input_conf_value[] = {0,0};
- // const uint8_t CHRCTR_KEYBOARD_OUTPUT[] = {UUID2ARRAY(UUID_CHRCTR_KEYBOARD_OUTPUT)};
- // const uint8_t keyboard_output_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t CHRCTR_MOUSE_INPUT[] = {UUID2ARRAY(UUID_CHRCTR_MOUSE_INPUT)};
- // const uint8_t mouse_input_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t mouse_input_conf_value[] = {0,0};
- // const uint8_t CHRCTR_REPORT[] = {UUID2ARRAY(UUID_CHRCTR_REPORT)};
- // const uint8_t report1_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t report1_conf_value[] = {0,0};
- // const uint8_t GATT_REPORT_REFERENCE[] = {UUID2ARRAY(REPORT_REFERENCE)};
- // const uint8_t reportid1_input_value[] = {1,1};
- // const uint8_t report8_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t report8_conf_value[] = {0,0};
- // const uint8_t reportid8_input_value[] = {8,1};
- // const uint8_t report3_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t report3_conf_value[] = {0,0};
- // const uint8_t reportid3_input_value[] = {3,1};
- // const uint8_t reportb_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t reportb_conf_value[] = {0,0};
- // const uint8_t reportidb_input_value[] = {0x0b,1};
- // const uint8_t report_output_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t reportid_ouput_value[] = {0,2};
- // const uint8_t report_feature_value[] = {0,0,0,0,0,0,0,0};
- // const uint8_t reportid_feature_value[] = {0,3};
- // const uint8_t CHRCTR_PROTOCOL_MODE[] = {UUID2ARRAY(UUID_CHRCTR_PROTOCOL_MODE)};
- // const uint8_t YICHIP_SERVICE[] = {0x49,0x53,0x53,0x43,0xfe,0x7d,0x4a,0xe5,0x8f,0xa9,0x9f,0xaf,0xd2,0x05,0xe4,0x55};
- // const uint8_t yichip_ota_notify_value[20] = {0};
- // const uint8_t yichip_ota_write_value[20] = {0};
- // const uint8_t yichip_ota_notify_conf_value[] = {0,0};
- /**
- const uint8_t report_map_value[] =
- { 0x05 ,0x01 //Usage Page Generic Desktop)
- ,0x09 ,0x06 //Usage (Keyboard)
- ,0xA1 ,0x01 //Collection (Application)
- ,0x85 ,0x0b //report ID (HIDAPP_KEYBOARD_REPORT_ID)
- ,0x75 ,0x01 //Report Size (1)
- ,0x95 ,0x08 //Report Count (8)
- ,0x05 ,0x07 //Usage Page (Key Codes)
- ,0x19 ,0xe0 //Usage Minimum (224)
- ,0x29 ,0xe7 //Usage Maximum (231)
- ,0x15 ,0x00 //Logical Minimum (0)
- ,0x25 ,0x01 //Logical Maximum (1)
- ,0x81 ,0x02 //Input (Data, Variable, Absolute)
- ,0x95 ,0x01 //Report Count (1)
- ,0x75 ,0x08 //Report Size (8)
- ,0x81 ,0x01 //Input (Constant) reserved byte(1)
- ,0x95 ,0x05 //Report Count (5)
- ,0x75 ,0x01 //Report Size (1)
- ,0x05 ,0x08 //Usage Page (Page//for LEDs)
- ,0x19 ,0x01 //Usage Minimum (1)
- ,0x29 ,0x05 //Usage Maximum (5)
- ,0x91 ,0x02 //Output (Data, Variable, Absolute), Led report
- ,0x95 ,0x01 //Report Count (1)
- ,0x75 ,0x03 //Report Size (3)
- ,0x91 ,0x01 //Output (Constant), Led report padding
- ,0x95 ,0x06 //Report Count (6)
- ,0x75 ,0x08 //Report Size (8)
- ,0x15 ,0x00 //Logical Minimum (0)
- ,0x25 ,0xeb //Logical Maximum (101)
- ,0x05 ,0x07 //Usage Page (Key codes)
- ,0x19 ,0x00 //Usage Minimum (0)
- ,0x29 ,0xeb //Usage Maximum (101)
- ,0x81 ,0x00 //Input (Data, Array) Key array(6 bytes)
- ,0xC0 //End Collection (Application)
- //Consumer Usepage
- ,0x05 ,0x0c //Usage Page (Consumer Devices)
- ,0x09 ,0x01 //Usage (Consumer Control)
- ,0xa1 ,0x01 //Collection (Application)
- ,0x85 ,0x01 //HIDAPP_REMOTE_REPORT_ID, //report ID (01)
- ,0x19 ,0x00 //USAGE_MINIMUM (0)
- ,0x2a ,0x9c ,0x02 //USAGE_MINIMUM (29c)
- ,0x15 ,0x00 //Logical Minimum (0)
- ,0x26 ,0x9c ,0x02 //Logical Maximum (29c)
- ,0x95 ,0x01 //Report Count (1)
- ,0x75 ,0x10 //Report Size (16)
- ,0x81 ,0x00 //Input (Data, array, Absolute)
- ,0x09 ,0x02 //Usage (Numeric Key Pad )
- ,0xa1 ,0x02 //Collection (Application)
- ,0x05 ,0x09 //Usage Page (button)
- ,0x19 ,0x01 //Usage Minimum (1)
- ,0x29 ,0x0a //Usage Maximum (10)
- ,0x15 ,0x01 //Logical Minimum (1)
- ,0x25 ,0x0a //Logical Maximum (10)
- ,0x95 ,0x01 //Report Count (1)
- ,0x75 ,0x08 //Report Size (8)
- ,0x81 ,0x40 //Input (Data, Variable, Relative)
- ,0xc0 //End Collection
- ,0xc0 //End Collection
- //optional mouse data
- ,0x05 ,0x01 //Usage Page (Generic Desktop)
- ,0x09 ,0x02 //USAGE (Mouse)
- ,0xa1 ,0x01 //COLLECTION (Application)
- ,0x09 ,0x01 //USAGE (Pointer)
- ,0xa1 ,0x00 //COLLECTION (Physical)
- ,0x85 ,0x03 //HIDAPP_MOUSE_REPORT_ID, //report ID (HIDAPP_MOUSE_REPORT_ID)
- ,0x05 ,0x01 //USAGE_PAGE (Generic Desktop)
- ,0x09 ,0x30 //USAGE (X)
- ,0x09 ,0x31 //USAGE (Y)
- ,0x15 ,0x80 //LOGICAL_MINIMUM (-127)
- ,0x25 ,0x7f //LOGICAL_MAXIMUM (127)
- ,0x75 ,0x08 //REPORT_SIZE (8)
- ,0x95 ,0x02 //REPORT_COUNT (2)
- ,0x81 ,0x06 //INPUT (Data, Variable, Relative)
- ,0x05 ,0x09 //USAGE_PAGE (Button)
- ,0x19 ,0x01 //USAGE_MINIMUM (Button 1)
- ,0x29 ,0x05 //USAGE_MAXIMUM (Button 5)
- ,0x15 ,0x00 //LOGICAL_MINIMUM (0)
- ,0x25 ,0x01 //LOGICAL_MAXIMUM (1)
- ,0x95 ,0x05 //REPORT_COUNT (5)
- ,0x75 ,0x01 //REPORT_SIZE (1)
- ,0x81 ,0x02 //INPUT ()
- ,0x95 ,0x01 //REPORT_COUNT (1)
- ,0x75 ,0x03 //REPORT_SIZE (3)
- ,0x81 ,0x03 //INPUT ()
- ,0xc0 //End Collection (Physical)
- ,0xc0 //End Collection (Application)
- //end mouse data
- ,0x06 ,0x01 ,0xff
- ,0x09 ,0x01 //Usage (Consumer Control)
- ,0xa1 ,0x02 //COLLECTION ()
- ,0x85 ,0x08 //HIDAPP_VOICE_REPORT_ID, //report ID (HIDAPP_KEYBOARD_REPORT_ID)
- ,0x09 ,0x14
- ,0x75 ,0x08 //Report Size (8)
- ,0x95 ,0x14 //Report Count (20)
- ,0x15 ,0x80 //Logical Minimum (80)
- ,0x25 ,0x7f //Logical Minimum (7f)
- ,0x81 ,0x22 //Input ()
- ,0x85 ,0x04 //report ID ()
- ,0x09 ,0x04 //USAGE ()
- ,0x75 ,0x08 //Report Size (8)
- ,0x95 ,0x01 //Report Count (1)
- ,0x91 ,0x02 //Output
- ,0xc0
- };
- **/
- //
- //uint8_t ble_name[BLE_NAME_LENTH] = {'1','1','x','x','B','L','E'};
- //uint8_t ble_conn_parameter[]={0x10,0x00,0x18,0x00,0x10,0x00,0x58,0x02};
- //uint8_t YICHIP_OTA_SERVICE[] = {0xf0,0xff};
- //uint8_t YICHIP_OTA_NOTIFY[] = {0xf4,0xff};
- //uint8_t YICHIP_OTA_WRITE[] = {0xf5,0xff};
- // const ATT_TABLE_TYPE Att_list2[] = {
- // //Primary Service: GAP
- // {0x01, 2, PRIMARY_SERVICE, 2, SERVICE_GENERIC_ACC},
- // //
- // {0x02, 2, GATT_CHARACTERISTIC, 1, READ_PREMITTED_ONLY},
- // {0x03, 2, CHRCTR_DEVICE_NAME, BLE_NAME_LENTH, ble_name},
- // //Characteristic: Appearance
- // {0x04, 2, GATT_CHARACTERISTIC, 1, READ_PREMITTED_ONLY},
- // {0x05, 2, CHRCTR_APPEARANCE, 2, appearance_value},
- // //Perpheral Preferred Connection Parameters
- // {0x06, 2, GATT_CHARACTERISTIC, 1, READ_PREMITTED_ONLY},
- // {0x07, 2, CHCTR_PerPreferred_Connection_Parameters, 8, ble_conn_parameter},
- // //Primary service yichip transmit
- // {0x08, 2, SECONDARY_SERVICE, 2, READ_PREMITTED_ONLY},
- // //Service Changed
- // {0x09, 2, GATT_CHARACTERISTIC, 1, INDICATE_PREMITTED_ONLY},
- // {0x0a, 2, CHRCTR_SERVICE_CHANGED, 1, 0},
- // //Client Characteristic Configuration
- // {0x0b, 2, CHARACTERTIC_CONFIGURATION, 1, 00},
- // //ota service
- // {0x0c, 2, PRIMARY_SERVICE, 2, YICHIP_OTA_SERVICE},
- // //ota notify
- // {0x0d, 2, GATT_CHARACTERISTIC, 1, READ_NOTIFY_PREMITTED},
- // {0x0e, 2, YICHIP_OTA_NOTIFY, 20, yichip_ota_notify_value},
- // {0x0f, 2, CHARACTERTIC_CONFIGURATION, 2, yichip_ota_notify_conf_value},
- // //ota write
- // {0x10, 2, GATT_CHARACTERISTIC, 1,WRITE_WITHOUT_RESPONSE_PREMITTED_ONLY},
- // {0x11, 2, YICHIP_OTA_WRITE, 20, yichip_ota_write_value},
- // 0,
- // 0,
- // }
- uint8_t att_list_init();
- uint8_t att_list_init2(uint8_t *AttPtr, uint16_t len);
- void Att_profile_Config();
|