Index: BlueTooth/BT&BLE/user/bt_code.c
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/BT&BLE/user/bt_code.c	(revision 635)
+++ /YC3121_demo/ModuleDemo/BlueTooth/BT&BLE/user/bt_code.c	(working copy)
@@ -1,65 +1,150 @@
 const unsigned char bt_code[] = {
-0x00,0x02,0xaa,0x55,0x36,0x00,0xc0,0x00,0x80,0x02,0xc0,0x5d,0x80,0x08,0x20,0x40,
-0x68,0xc4,0x20,0x40,0x60,0xd7,0x20,0x40,0x00,0x06,0x20,0x20,0x40,0x0a,0x20,0x75,
-0x80,0x00,0x20,0x20,0x7b,0x9a,0x6f,0xe2,0x0a,0xff,0xc0,0x13,0x80,0x0b,0x20,0x20,
-0x4e,0x5c,0xd8,0x5f,0xff,0xff,0x20,0x20,0x4b,0x06,0xc2,0x2c,0xaa,0x55,0x01,0x00,
+0x00,0x02,0xaa,0x55,0xb6,0x03,0xc2,0x84,0x00,0x05,0xc0,0x00,0x80,0x0d,0xc0,0x5c,
+0x00,0x13,0xc0,0x5d,0x80,0x40,0x20,0x20,0x4a,0x8b,0xc0,0x01,0x80,0x9b,0xc0,0x02,
+0x80,0xab,0xc0,0x1d,0x00,0xb4,0xc0,0x1f,0x00,0xbd,0xc0,0x20,0x80,0xcf,0xc0,0x29,
+0x00,0xd5,0xc0,0x4c,0x80,0xe9,0x20,0x20,0x4a,0x8b,0x20,0x40,0x68,0xc4,0x20,0x40,
+0x60,0xd7,0x20,0x40,0x00,0x11,0x20,0x20,0x40,0x0a,0x20,0x75,0x80,0x00,0x20,0x20,
+0x7b,0x9a,0x58,0x00,0x00,0x1d,0x67,0xe4,0x41,0xf6,0x58,0x00,0x00,0x25,0x67,0xe4,
+0x41,0xfe,0x58,0x00,0x00,0x2f,0x67,0xe4,0x41,0xfa,0x20,0x40,0x4d,0xaf,0x20,0x40,
+0x4d,0xbc,0x20,0x40,0x4c,0x2a,0x20,0x20,0x50,0x4d,0x1a,0x62,0x7e,0x00,0xc0,0x04,
+0x80,0x23,0xc0,0x01,0x00,0x21,0x20,0x20,0x4d,0xdf,0x70,0x4b,0x15,0x00,0x20,0x20,
+0x4d,0xfb,0x70,0x4b,0x15,0x06,0x20,0x20,0x4e,0x08,0x20,0x40,0x00,0x27,0x20,0x20,
+0x50,0xc3,0x6f,0xe2,0x4b,0x15,0x20,0x7a,0x00,0x00,0x1f,0xe0,0xff,0xff,0x67,0xe2,
+0x4b,0x15,0x24,0x7a,0x00,0x00,0x6f,0xe4,0x46,0x52,0xc2,0x80,0x4d,0x64,0x20,0x60,
+0x00,0x00,0x20,0x40,0x4f,0x11,0x20,0x74,0x00,0x00,0x1a,0x22,0x7e,0x00,0x67,0xe4,
+0x46,0x71,0x1a,0x42,0x7e,0x00,0x67,0xe2,0x46,0x70,0x68,0x44,0x04,0x74,0x60,0x44,
+0x46,0x73,0x20,0x40,0x5b,0x6c,0x24,0x3a,0x4a,0x8b,0x6f,0xe2,0x04,0x9e,0xc0,0x81,
+0x50,0x42,0xe8,0x44,0x00,0x06,0x58,0x00,0x29,0x02,0x98,0x46,0x7c,0x00,0x20,0x62,
+0x80,0x00,0x20,0x20,0x50,0x42,0x6f,0xe2,0x0a,0xff,0xc0,0x13,0x80,0x99,0xc0,0x06,
+0x00,0x48,0xc0,0x3b,0x00,0x51,0xc0,0x3b,0x80,0x57,0xc0,0x3c,0x00,0x5c,0xc0,0x0a,
+0x80,0x96,0x20,0x20,0x4e,0x5c,0x1a,0x22,0x06,0x00,0xef,0xe2,0x00,0x03,0xc0,0x00,
+0x4f,0x1c,0xc0,0x00,0xcf,0x1f,0xc0,0x01,0x4f,0x25,0xc0,0x01,0x80,0x4f,0x20,0x20,
+0x50,0x1c,0x58,0x00,0x00,0x01,0x20,0x20,0x4f,0x20,0xd8,0x40,0x00,0x28,0x20,0x40,
+0x5b,0x4d,0x18,0xc0,0x8b,0xfe,0x58,0x00,0x00,0x00,0xe7,0xe4,0x00,0x05,0x20,0x20,
+0x50,0x1f,0x20,0x40,0x00,0x60,0x20,0x40,0x00,0x7d,0x58,0x00,0x00,0x00,0xe7,0xe4,
+0x00,0x05,0x20,0x20,0x00,0x8f,0xef,0xe2,0x00,0x03,0x20,0x40,0x00,0x64,0x20,0x40,
+0x00,0x6b,0x20,0x20,0x00,0x8f,0x20,0x40,0x00,0x81,0x58,0x28,0x00,0x02,0xe7,0xe6,
+0x00,0x05,0x20,0x60,0x00,0x00,0x67,0xe2,0x0a,0x96,0x20,0x40,0x00,0x81,0x59,0x28,
+0x03,0x02,0xe7,0xe8,0x00,0x05,0x6f,0xe2,0x0a,0x96,0xe7,0xe6,0x00,0x05,0x20,0x60,
+0x00,0x00,0x20,0x40,0x00,0x81,0x20,0x40,0x00,0x7d,0x20,0x40,0x00,0x7d,0x58,0x00,
+0x00,0x00,0xe7,0xe4,0x00,0x05,0x18,0x40,0x85,0xff,0x20,0x40,0x5b,0x4d,0x18,0xc0,
+0x8c,0x04,0xef,0xe2,0x00,0x06,0xc2,0x82,0x00,0x78,0xc2,0x82,0x80,0x78,0x18,0x40,
+0x84,0x01,0x20,0x60,0x00,0x00,0x20,0x40,0x00,0x81,0x5a,0x29,0x02,0x02,0xe7,0xf0,
+0x00,0x05,0x18,0x40,0x85,0xff,0x20,0x60,0x00,0x00,0xef,0xe2,0x00,0x03,0x1f,0xe2,
+0x72,0x00,0xe7,0xe2,0x00,0x05,0x20,0x20,0x67,0xed,0x20,0x40,0x00,0x84,0xe0,0x44,
+0x00,0x05,0x20,0x60,0x00,0x00,0x6f,0xe4,0x44,0x8e,0x98,0x00,0x0c,0x00,0xef,0xe4,
+0x00,0x06,0x20,0x7a,0x00,0x00,0x1f,0xe0,0x84,0x01,0xef,0xe2,0x00,0x06,0x98,0xc0,
+0x8c,0x00,0xef,0xe2,0x00,0x06,0x98,0xc0,0x8c,0x00,0x18,0xc2,0x0a,0x00,0x20,0x20,
+0x00,0x86,0x60,0x44,0x0a,0x9e,0x70,0x0a,0xff,0x29,0x58,0x00,0x00,0x02,0x20,0x40,
+0x50,0xa5,0x68,0x44,0x0a,0x9e,0xe0,0x44,0x00,0x0a,0x20,0x20,0x67,0xb9,0xef,0xe6,
+0x00,0x03,0x67,0xe6,0x40,0xaa,0x20,0x20,0x50,0x1f,0x20,0x40,0x50,0x1f,0x20,0x20,
+0x4d,0x85,0x20,0x40,0x49,0xba,0x78,0x23,0xfc,0x00,0x78,0x24,0xfc,0x00,0x09,0x80,
+0x00,0x08,0x19,0x89,0x7e,0x00,0x67,0xe2,0x02,0xd5,0x09,0x80,0x00,0x08,0x19,0x89,
+0x7e,0x00,0xe7,0xe2,0x00,0x05,0x1f,0xe1,0x72,0x3f,0x20,0x22,0xd8,0x8b,0x1f,0xe6,
+0x7c,0x33,0x24,0x41,0x00,0xa9,0x20,0x20,0x58,0x87,0xdf,0x20,0x00,0x33,0x20,0x60,
+0x00,0x00,0x20,0x40,0x58,0xa3,0x20,0x40,0x49,0x15,0x68,0x42,0x00,0x17,0x20,0x40,
+0x49,0x1c,0x20,0x00,0x05,0xdc,0x20,0x40,0x49,0x21,0x78,0x28,0x7c,0x00,0xd9,0x60,
+0x15,0x7c,0x20,0x20,0x58,0x69,0x6f,0xe2,0x00,0x7d,0xc0,0x08,0x00,0xb7,0x20,0x20,
+0x60,0xfe,0x68,0x42,0x05,0x4e,0x18,0x46,0x7c,0x06,0x20,0x21,0x00,0xbb,0x20,0x20,
+0x62,0x06,0x70,0x00,0x7e,0x24,0x20,0x20,0x61,0x34,0x78,0x54,0x7c,0x00,0x20,0x40,
+0x66,0xa3,0x6f,0xe2,0x00,0x48,0x20,0x7a,0x00,0x00,0xc2,0x83,0x80,0xc3,0x20,0x20,
+0x63,0xf2,0xc0,0x42,0x00,0xc6,0xc0,0x41,0x80,0xc9,0x20,0x20,0x64,0x21,0x20,0x40,
+0x00,0xcc,0x6f,0xe2,0x00,0x48,0x20,0x20,0x64,0x7b,0x20,0x40,0x00,0xcc,0x6f,0xe2,
+0x00,0x48,0x20,0x20,0x64,0xef,0x6f,0xe2,0x46,0x2c,0x20,0x3a,0x65,0x0d,0x20,0x20,
+0x65,0x06,0x6f,0xe2,0x40,0x9e,0x79,0x3f,0xfe,0x03,0x67,0xe2,0x40,0x9e,0x58,0x00,
+0x00,0x01,0x67,0xe4,0x04,0xca,0x20,0x60,0x00,0x00,0x6f,0xe2,0x04,0xf9,0xc0,0x1f,
+0xe9,0x3e,0xc0,0x39,0xe9,0x47,0xc0,0x77,0x80,0xdb,0xc0,0x29,0xea,0x05,0x20,0x60,
+0x00,0x00,0x6f,0xe4,0x04,0xfd,0x1f,0xe2,0x0c,0x00,0x20,0x40,0x69,0x84,0x6f,0xe2,
+0x04,0xff,0xc0,0x20,0xe9,0x66,0xc0,0x20,0x69,0x6e,0xc0,0x38,0xe9,0xa7,0xc0,0x38,
+0x00,0xe5,0xc0,0x24,0xe9,0xbe,0x20,0x20,0x6a,0x58,0x70,0x0a,0x95,0x08,0x20,0x40,
+0x7b,0xab,0x20,0x40,0x69,0x72,0x20,0x20,0x69,0xba,0x6f,0xe2,0x44,0x90,0x20,0x3a,
+0x5e,0xd0,0x20,0x40,0x74,0x38,0x20,0x20,0x79,0x32,0x0c,0x69,0xaa,0x55,0x01,0x00,
 0x92,0x40,0x0a,0xaa,0x55,0x01,0x00,0x54,0x46,0x40,0xaa,0x55,0x01,0x00,0x06,0x42,
-0x13,0xaa,0x55,0x08,0x00,0x98,0x40,0xff,0xff,0x8f,0xf8,0x9b,0x9d,0x59,0x83,0xaa,
-0x55,0x03,0x00,0x14,0x42,0x07,0x4a,0x05,0xaa,0x55,0x04,0x00,0x3d,0x45,0x00,0x7f,
+0x13,0xaa,0x55,0x08,0x00,0x98,0x40,0xff,0xfb,0x8f,0xf8,0x8b,0x85,0x59,0x83,0xaa,
+0x55,0x03,0x00,0x14,0x42,0x6b,0x4a,0x05,0xaa,0x55,0x04,0x00,0x3d,0x45,0x00,0x7f,
 0x00,0x07,0xaa,0x55,0x03,0x00,0x2d,0x46,0x03,0x00,0x04,0xaa,0x55,0x01,0x00,0x2c,
 0x46,0x01,0xaa,0x55,0x06,0x00,0x57,0x46,0x04,0x30,0x30,0x30,0x30,0x30,0xaa,0x55,
 0x10,0x00,0xf0,0x4f,0x00,0x1c,0xff,0x1f,0x00,0x1c,0x00,0x1c,0x00,0x4c,0xe0,0x4f,
-0x00,0x4c,0x00,0x4c,0xaa,0x55,0x02,0x00,0x68,0x46,0x00,0x01,0xaa,0x55,0x01,0x00,
+0x00,0x4c,0x00,0x4c,0xaa,0x55,0x02,0x00,0x68,0x46,0x00,0x03,0xaa,0x55,0x01,0x00,
 0x6c,0x46,0x03,0xaa,0x55,0x01,0x00,0x6f,0x46,0x07,0xaa,0x55,0x03,0x00,0xaa,0x40,
 0x24,0x04,0x04,0xaa,0x55,0x01,0x00,0x79,0x46,0x00,0xaa,0x55,0x01,0x00,0x91,0x40,
 0x00,0xaa,0x55,0x03,0x00,0x54,0x41,0x00,0x01,0x08,0xaa,0x55,0x01,0x00,0x74,0x41,
-0x02,0xaa,0x55,0x01,0x00,0x93,0x40,0x03,0xaa,0x55,0x01,0x00,0x6d,0x46,0x28,0xaa,
-0x55,0x06,0x00,0xa0,0x40,0xa8,0x2a,0x2a,0x31,0x10,0x3a,0xaa,0x55,0x10,0x00,0xe7,
-0x44,0x0f,0x59,0x69,0x63,0x68,0x69,0x70,0x20,0x33,0x31,0x32,0x31,0x20,0x77,0x75,
-0x31,0xaa,0x55,0x03,0x00,0xe4,0x41,0x20,0x00,0x01,0xaa,0x55,0x01,0x00,0xe8,0x41,
-0x00,0xaa,0x55,0x01,0x00,0x90,0x44,0x01,0xaa,0x55,0x01,0x00,0x5f,0x44,0x07,0xaa,
-0x55,0x01,0x00,0x98,0x44,0x01,0xaa,0x55,0x04,0x00,0x75,0x46,0x09,0x00,0x2f,0x00,
-0xaa,0x55,0x01,0x00,0x40,0x43,0x01,0xaa,0x55,0x02,0x00,0x54,0x44,0xf0,0x00,0xaa,
-0x55,0x01,0x00,0x6e,0x46,0x05,0xaa,0x55,0x06,0x00,0x72,0x44,0x25,0x25,0x00,0x33,
-0x02,0x3a,0xaa,0x55,0x10,0x00,0x81,0x43,0x0f,0x59,0x69,0x63,0x68,0x69,0x70,0x20,
-0x33,0x31,0x32,0x31,0x20,0x77,0x75,0x31,0xaa,0x55,0x04,0x00,0x41,0x43,0x03,0x02,
-0x01,0x0e,0xaa,0x55,0x13,0x00,0x61,0x43,0x0e,0x11,0x09,0x59,0x69,0x63,0x68,0x69,
-0x70,0x20,0x31,0x30,0x32,0x31,0x73,0x20,0x4d,0x6f,0x75,0xaa,0x55,0x07,0x00,0x25,
-0x44,0x02,0x03,0x00,0x05,0x10,0x02,0x03,0xaa,0x55,0x08,0x00,0x68,0x44,0x08,0x00,
-0x10,0x00,0x00,0x00,0x2c,0x01,0xaa,0x55,0x01,0x00,0x78,0x44,0xb5,0xaa,0x55,0x01,
-0x00,0x7a,0x44,0x17,0xaa,0x55,0x02,0x00,0xcc,0x44,0x31,0x00,0xaa,0x55,0x01,0x00,
-0xd1,0x40,0x01,0xaa,0x55,0x0c,0x00,0x49,0x45,0x05,0x03,0x00,0x12,0x00,0x01,0x01,
-0x00,0x01,0x11,0x03,0x00,0xaa,0x55,0x01,0x00,0x5f,0x45,0x00,0xaa,0x55,0x02,0x00,
-0x47,0x45,0x83,0x46,0xaa,0x55,0xb8,0x00,0x83,0x46,0x03,0x12,0x00,0x01,0x00,0x00,
-0x01,0x00,0x01,0x00,0x01,0x36,0x00,0x52,0x09,0x00,0x00,0x0a,0x00,0x01,0x00,0x01,
-0x09,0x00,0x01,0x35,0x03,0x19,0x12,0x00,0x09,0x00,0x04,0x35,0x0d,0x35,0x06,0x19,
-0x01,0x00,0x09,0x00,0x01,0x35,0x03,0x19,0x00,0x01,0x09,0x00,0x09,0x35,0x08,0x35,
-0x06,0x19,0x12,0x00,0x09,0x01,0x00,0x09,0x02,0x00,0x09,0x01,0x03,0x09,0x02,0x01,
-0x09,0x05,0xac,0x09,0x02,0x02,0x09,0x02,0x39,0x09,0x02,0x03,0x09,0x06,0x44,0x09,
-0x02,0x04,0x28,0x01,0x09,0x02,0x05,0x09,0x00,0x02,0x03,0x11,0x01,0x00,0x03,0x01,
-0x00,0x00,0x01,0x00,0x03,0x36,0x00,0x46,0x09,0x00,0x00,0x0a,0x00,0x01,0x00,0x03,
-0x09,0x00,0x01,0x35,0x03,0x19,0x11,0x01,0x09,0x00,0x02,0x0a,0x00,0x00,0x00,0x00,
-0x09,0x00,0x04,0x35,0x0c,0x35,0x03,0x19,0x01,0x00,0x35,0x05,0x19,0x00,0x03,0x08,
-0x01,0x09,0x00,0x06,0x35,0x09,0x09,0x65,0x6e,0x09,0x00,0x6a,0x09,0x01,0x00,0x09,
-0x01,0x00,0x25,0x0a,0x53,0x50,0x50,0x20,0x73,0x6c,0x61,0x76,0x65,0x00,0x00,0x00,
-0x01,0x00,0xaa,0x55,0x02,0x00,0x8e,0x44,0xaf,0x47,0xaa,0x55,0x8a,0x00,0xaf,0x47,
-0x01,0x00,0x02,0x00,0x28,0x02,0x00,0x18,0x02,0x00,0x02,0x03,0x28,0x01,0x0a,0x03,
-0x00,0x02,0x00,0x2a,0x13,0x41,0x73,0x74,0x20,0x4c,0x45,0x20,0x4d,0x6f,0x75,0x73,
-0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x04,0x00,0x02,0x00,0x28,0x10,0x55,0xe4,
-0x05,0xd2,0xaf,0x9f,0xa9,0x8f,0xe5,0x4a,0x7d,0xfe,0x43,0x53,0x53,0x49,0x05,0x00,
-0x02,0x03,0x28,0x01,0x10,0x06,0x00,0x02,0x87,0x05,0x14,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
-0x00,0x02,0x02,0x29,0x02,0x00,0x00,0x08,0x00,0x02,0x03,0x28,0x01,0x0e,0x09,0x00,
-0x02,0x98,0x05,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x55,0x01,0x00,0x00,0x40,
-0x02,0xaa,0x55,0x01,0x00,0x17,0x40,0x08,0xaa,0x55,0x07,0x00,0x76,0x41,0x0f,0x84,
-0x30,0x0a,0x0b,0xb2,0x02,0xaa,0x55,0x02,0x00,0x57,0x41,0x8b,0x0b,0xaa,0x55,0x08,
-0x00,0xa1,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x55,0x02,0x00,0xbd,
-0x40,0x02,0x24,0xaa,0x55,0x08,0x00,0xad,0x40,0x24,0x00,0x80,0x00,0x24,0x00,0x80,
-0x00,0xaa,0x55,0x02,0x00,0xbb,0x40,0x20,0x00,0xaa,0x55,0x04,0x00,0xb7,0x40,0x20,
-0x00,0x00,0x20,0xaa,0x55,0x04,0x00,0xbf,0x40,0x80,0x04,0x00,0x10,0xaa,0x55,0x05,
-0x00,0xe2,0x44,0x08,0x0e,0x05,0x04,0x00,0xaa,0x55,0x02,0x00,0x02,0x42,0x30,0x1f,
-0xaa,0x55,0x01,0x00,0x10,0x42,0x20,0xaa,0x55,0x01,0x00,0xe0,0x41,0x01,0xaa,0x55,
-0x03,0x00,0xb1,0x4a,0x07,0xff,0xff,0xaa,0x55,0x02,0x00,0xc3,0x40,0xb1,0x4a,0xff,
-0xdf
+0x02,0xaa,0x55,0x01,0x00,0x93,0x40,0x00,0xaa,0x55,0x01,0x00,0x6d,0x46,0x28,0xaa,
+0x55,0x06,0x00,0xa0,0x40,0xa7,0x2a,0x2a,0x21,0x10,0x3a,0xaa,0x55,0x0c,0x00,0xe7,
+0x44,0x0b,0x33,0x31,0x32,0x31,0x20,0x4d,0x6f,0x75,0x20,0x42,0x74,0xaa,0x55,0x03,
+0x00,0xe4,0x41,0x20,0x00,0x01,0xaa,0x55,0x01,0x00,0xe8,0x41,0x00,0xaa,0x55,0x01,
+0x00,0x90,0x44,0x01,0xaa,0x55,0x01,0x00,0x5f,0x44,0x07,0xaa,0x55,0x01,0x00,0x98,
+0x44,0x00,0xaa,0x55,0x04,0x00,0x75,0x46,0x2d,0x00,0x2f,0x00,0xaa,0x55,0x01,0x00,
+0x40,0x43,0x00,0xaa,0x55,0x02,0x00,0x54,0x44,0x40,0x00,0xaa,0x55,0x01,0x00,0x6e,
+0x46,0x05,0xaa,0x55,0x06,0x00,0x72,0x44,0x21,0x22,0x01,0x33,0x02,0x3a,0xaa,0x55,
+0x0d,0x00,0x81,0x43,0x0c,0x33,0x31,0x32,0x31,0x20,0x4d,0x6f,0x75,0x20,0x42,0x6c,
+0x65,0xaa,0x55,0x04,0x00,0x41,0x43,0x03,0x02,0x01,0x02,0xaa,0x55,0x16,0x00,0x61,
+0x43,0x0e,0x02,0x01,0x02,0x11,0x09,0x59,0x69,0x63,0x68,0x69,0x70,0x20,0x31,0x30,
+0x32,0x31,0x73,0x20,0x4d,0x6f,0x75,0xaa,0x55,0x07,0x00,0x25,0x44,0x02,0x03,0x00,
+0x05,0x10,0x02,0x03,0xaa,0x55,0x08,0x00,0x68,0x44,0x08,0x00,0x10,0x00,0x00,0x00,
+0x2c,0x01,0xaa,0x55,0x01,0x00,0x78,0x44,0xb9,0xaa,0x55,0x01,0x00,0x7a,0x44,0x17,
+0xaa,0x55,0x02,0x00,0xcc,0x44,0x31,0x00,0xaa,0x55,0x01,0x00,0xd1,0x40,0x01,0xaa,
+0x55,0x0c,0x00,0x49,0x45,0x05,0x03,0x00,0x12,0x00,0x01,0x01,0x00,0x01,0x11,0x03,
+0x00,0xaa,0x55,0x01,0x00,0x5f,0x45,0x00,0xaa,0x55,0x02,0x00,0x47,0x45,0x83,0x46,
+0xaa,0x55,0xb8,0x00,0x83,0x46,0x03,0x12,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,
+0x01,0x36,0x00,0x52,0x09,0x00,0x00,0x0a,0x00,0x01,0x00,0x01,0x09,0x00,0x01,0x35,
+0x03,0x19,0x12,0x00,0x09,0x00,0x04,0x35,0x0d,0x35,0x06,0x19,0x01,0x00,0x09,0x00,
+0x01,0x35,0x03,0x19,0x00,0x01,0x09,0x00,0x09,0x35,0x08,0x35,0x06,0x19,0x12,0x00,
+0x09,0x01,0x00,0x09,0x02,0x00,0x09,0x01,0x03,0x09,0x02,0x01,0x09,0x05,0xac,0x09,
+0x02,0x02,0x09,0x02,0x39,0x09,0x02,0x03,0x09,0x06,0x44,0x09,0x02,0x04,0x28,0x01,
+0x09,0x02,0x05,0x09,0x00,0x02,0x03,0x11,0x01,0x00,0x03,0x01,0x00,0x00,0x01,0x00,
+0x03,0x36,0x00,0x46,0x09,0x00,0x00,0x0a,0x00,0x01,0x00,0x03,0x09,0x00,0x01,0x35,
+0x03,0x19,0x11,0x01,0x09,0x00,0x02,0x0a,0x00,0x00,0x00,0x00,0x09,0x00,0x04,0x35,
+0x0c,0x35,0x03,0x19,0x01,0x00,0x35,0x05,0x19,0x00,0x03,0x08,0x01,0x09,0x00,0x06,
+0x35,0x09,0x09,0x65,0x6e,0x09,0x00,0x6a,0x09,0x01,0x00,0x09,0x01,0x00,0x25,0x0a,
+0x53,0x50,0x50,0x20,0x73,0x6c,0x61,0x76,0x65,0x00,0x00,0x00,0x01,0x00,0xaa,0x55,
+0x02,0x00,0x8e,0x44,0xaf,0x47,0xaa,0x55,0x35,0x02,0xaf,0x47,0x01,0x00,0x02,0x00,
+0x28,0x02,0x00,0x18,0x02,0x00,0x02,0x03,0x28,0x01,0x02,0x03,0x00,0x02,0x01,0x2a,
+0x02,0xc8,0x00,0x04,0x00,0x02,0x03,0x28,0x01,0x0a,0x05,0x00,0x02,0x00,0x2a,0x14,
+0x41,0x73,0x74,0x20,0x4c,0x45,0x20,0x4d,0x6f,0x75,0x73,0x65,0x20,0x20,0x20,0x20,
+0x20,0x20,0x20,0x20,0x06,0x00,0x02,0x03,0x28,0x01,0x02,0x07,0x00,0x02,0x04,0x2a,
+0x08,0x06,0x00,0x06,0x00,0x64,0x00,0x2c,0x01,0x08,0x00,0x02,0x03,0x28,0x01,0x02,
+0x09,0x00,0x02,0x02,0x2a,0x01,0x01,0x0a,0x00,0x02,0x03,0x28,0x01,0x08,0x0b,0x00,
+0x02,0x03,0x2a,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x02,0x00,0x28,0x02,
+0x01,0x18,0x0d,0x00,0x02,0x03,0x28,0x01,0x20,0x0e,0x00,0x02,0x05,0x2a,0x00,0x0f,
+0x00,0x02,0x02,0x29,0x02,0x00,0x00,0x10,0x00,0x02,0x00,0x28,0x02,0x04,0x18,0x11,
+0x00,0x02,0x03,0x28,0x01,0x16,0x12,0x00,0x02,0x07,0x2a,0x01,0x00,0x13,0x00,0x02,
+0x02,0x29,0x02,0x00,0x00,0x14,0x00,0x02,0x00,0x28,0x02,0x0f,0x18,0x15,0x00,0x02,
+0x03,0x28,0x01,0x12,0x16,0x00,0x02,0x19,0x2a,0x01,0x38,0x17,0x00,0x02,0x00,0x28,
+0x02,0x0a,0x18,0x18,0x00,0x02,0x03,0x28,0x01,0x02,0x19,0x00,0x02,0x23,0x2a,0x03,
+0x00,0x00,0x00,0x1a,0x00,0x02,0x03,0x28,0x01,0x02,0x1b,0x00,0x02,0x29,0x2a,0x08,
+0x46,0x6c,0x61,0x67,0x74,0x72,0x69,0x70,0x1c,0x00,0x02,0x03,0x28,0x01,0x02,0x1d,
+0x00,0x02,0x24,0x2a,0x06,0x79,0x69,0x63,0x68,0x69,0x70,0x1e,0x00,0x02,0x03,0x28,
+0x01,0x02,0x1f,0x00,0x02,0x25,0x2a,0x04,0x63,0x6f,0x6d,0x33,0x20,0x00,0x02,0x03,
+0x28,0x01,0x02,0x21,0x00,0x02,0x26,0x2a,0x03,0x31,0x2e,0x30,0x22,0x00,0x02,0x03,
+0x28,0x01,0x02,0x23,0x00,0x02,0x28,0x2a,0x03,0x31,0x2e,0x30,0x24,0x00,0x02,0x03,
+0x28,0x01,0x02,0x25,0x00,0x02,0x2a,0x2a,0x03,0x31,0x2e,0x30,0x26,0x00,0x02,0x03,
+0x28,0x01,0x02,0x27,0x00,0x02,0x25,0x2a,0x04,0x63,0x6f,0x6d,0x33,0x28,0x00,0x02,
+0x00,0x28,0x10,0x55,0xe4,0x05,0xd2,0xaf,0x9f,0xa9,0x8f,0xe5,0x4a,0x7d,0xfe,0x43,
+0x53,0x53,0x49,0x29,0x00,0x02,0x03,0x28,0x01,0x12,0x2a,0x00,0x10,0x16,0x96,0x24,
+0x47,0xc6,0x23,0x61,0xba,0xd9,0x4b,0x4d,0x1e,0x43,0x53,0x53,0x49,0x14,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x2b,0x00,0x02,0x02,0x29,0x02,0x00,0x00,0x2c,0x00,0x02,0x03,0x28,0x01,
+0x08,0x2d,0x00,0x10,0xb3,0x9b,0x72,0x34,0xbe,0xec,0xd4,0xa8,0xf4,0x43,0x41,0x88,
+0x43,0x53,0x53,0x49,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x00,0x02,0x03,0x28,0x01,0x04,
+0x2f,0x00,0x10,0xfe,0x69,0xca,0x9a,0x56,0x19,0xf6,0xab,0x02,0x4d,0xaa,0x6d,0x43,
+0x53,0x53,0x49,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x02,0x03,0x28,0x01,0x1a,0x31,
+0x00,0x10,0x18,0x03,0xa6,0x28,0x5e,0xd8,0xec,0x91,0x1c,0x48,0xa3,0xac,0x43,0x53,
+0x53,0x49,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x02,0x02,0x29,0x02,0x00,0x00,0x00,
+0x00,0xaa,0x55,0x01,0x00,0x00,0x40,0x02,0xaa,0x55,0x01,0x00,0x17,0x40,0x09,0xaa,
+0x55,0x01,0x00,0x20,0x40,0x28,0xaa,0x55,0x02,0x00,0x27,0x40,0x44,0x02,0xaa,0x55,
+0x01,0x00,0x2a,0x40,0x04,0xaa,0x55,0x01,0x00,0x33,0x40,0x02,0xaa,0x55,0x07,0x00,
+0x76,0x41,0x0f,0x84,0x30,0x0a,0x0b,0xb2,0x32,0xaa,0x55,0x02,0x00,0x57,0x41,0x8b,
+0x0b,0xaa,0x55,0x08,0x00,0xa1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,
+0x55,0x02,0x00,0xbd,0x40,0x02,0x24,0xaa,0x55,0x08,0x00,0xad,0x40,0x40,0x00,0x00,
+0x02,0x32,0x00,0x00,0x02,0xaa,0x55,0x02,0x00,0xbb,0x40,0x20,0x00,0xaa,0x55,0x04,
+0x00,0xb7,0x40,0x20,0x00,0x00,0x20,0xaa,0x55,0x04,0x00,0xbf,0x40,0x80,0x04,0x00,
+0x08,0xaa,0x55,0x05,0x00,0xe2,0x44,0x08,0x0e,0x05,0x04,0x00,0xaa,0x55,0x02,0x00,
+0x02,0x42,0x30,0x1f,0xaa,0x55,0x01,0x00,0x10,0x42,0x20,0xaa,0x55,0x01,0x00,0xe0,
+0x41,0x01,0xaa,0x55,0x0f,0x00,0x16,0x4b,0x4b,0xba,0x55,0xd0,0x56,0xe0,0x57,0x88,
+0x58,0x6c,0x59,0x10,0x07,0xff,0xff,0xaa,0x55,0x02,0x00,0xc3,0x40,0x16,0x4b,0x88,
+0x37
 };
Index: BlueTooth/BT&BLE/user/main.c
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/BT&BLE/user/main.c	(revision 635)
+++ /YC3121_demo/ModuleDemo/BlueTooth/BT&BLE/user/main.c	(working copy)
@@ -39,32 +39,44 @@
 /* Private function prototypes -----------------------------------------------*/
 void UART_Configuration(void);
 
-/* Private define ------------------------------------------------------------*/
-#define BT_TEST_CMD_SetVisibility	'0'
-#define BT_TEST_CMD_SetNameAndAdr	'1'
-#define BT_TEST_CMD_SendSPPData		'2'
-#define BT_TEST_CMD_SenBleData		'3'
-#define BT_TEST_CMD_GetBTStatus		'4'
-#define BT_TEST_CMD_SetParingMode	'5'
-#define BT_TEST_CMD_SetPincode		'6'
-#define BT_TEST_CMD_BT_GetVersion	'9'
-#define BT_TEST_CMD_BTDisConnect	'a'
-#define BT_TEST_CMD_BLEDisConnect	'b'
-#define BT_TEST_CMD_BT_GetCreadIT_GIVEN 'c'
-
-uint8_t bt_addr[6] =  {0x22,0x33,0x88,0x55,0x66,0x66};
-uint8_t spp_data[] = {0x064,0x65,0x67,0x68,0x69,0x30,0x40};
-uint8_t ble_data[] = {06,0x00,0x03,0x04,0x05,0x06,0x07,0x08};
+
+
+// byte0： uuid length
+//byte1-16: uuid
+// 49535343-FE78-4AE5-8FA9-9FAFD205E455
+uint8_t ble_service_uuid_lsps[] = {0x10,0x55,0xe4,0x05,0xd2,0xaf,0x9f,0xa9,0x8f,0xe5,0x4a,0x7d,0xfe,0x43,0x53,0x53,0x49};
+
+/*
+byte0: characterisitic  
+byte1:characterisitic uuid length  
+byte2-17:characterisitic uuid 
+byte18:write/read payload length 
+byte19-20:write/read payload
+*/
+//49535343-1E4D-4BD9-BA61-23C647249616
+uint8_t ble_Characteristic_uuid_lsps_tx[] = {0x10,0x10,0x16,0x96,0x24,0x47,0xc6,0x23,0x61,0xba,0xd9,0x4b,0x4d,0x1e,0x43,0x53,0x53,0x49,0x01,0x00};
+//49535343-8841-43F4-A8D4-ECBE34729BB3
+uint8_t ble_Characteristic_uuid_lsps_rx[] = {0x0c,0x10,0xb3,0x9b,0x72,0x34,0xbe,0xec,0xd4,0xa8,0xf4,0x43,0x41,0x88,0x43,0x53,0x53,0x49,0x01,0x00};
+//49535343-aca3-481c-91ec-d85e28a60318
+uint8_t ble_Characteristic_uuid_flow_ctrl[] = {0x18,0x10,0x18,0x03,0xa6,0x28,0x5e,0xd8,0xec,0x91,0x1c,0x48,0xa3,0xac,0x43,0x53,0x53,0x49,0x01,0x00};	
+
+	
+	
 #define IFLASH_NVRAM_ADDR 0x1000000+0x40000
 #define NVRAM_LEN 170//Nvram 长度170bytes,每个设备信息34个字节.
+//#define SPP_FLOWCONTROL
+uint16_t ble_send_handle;
+uint8_t bt_cod[3] = {0x24,0x04,0x04};
+uint8_t NvramData[MAX_BLUETOOTH_DATA_LEN]={0};
 
+	
 //write flash 
 uint8_t   ReserveNV(uint8_t* nvram);
 
 extern tick SystickCount;;
 void BT_IRQHandler()
 {
-	MyPrintf("BT_IRQHandler\n");
+	//MyPrintf("BT_IRQHandler\n");
 	while(IPC_have_data())
 	{
 		BT_ParseBTData();
@@ -78,7 +90,20 @@
 	SystickCount++;
 }
 
-uint8_t NvramData[MAX_BLUETOOTH_DATA_LEN]={0};
+
+
+static uint8_t hex_lookup[16] = { '0', '1', '2', '3', '4', '5', '6', '7','8','9', 'a', 'b', 'c', 'd', 'e', 'f' };
+static void array2hex(uint8_t* in, int inlen, uint8_t* out)
+{
+	int i;
+	for (i = 0; i < inlen; ++i)
+	{
+		out[2 * i] = hex_lookup[in[i] >> 4];
+		out[2 * i + 1] = hex_lookup[in[i] & 0x0f];
+	}
+}
+
+
 /**
   * @brief  Main program
   * @param  None
@@ -86,8 +111,10 @@
   */
 int main(void)
 {
-	uint8_t blename[] = "Yc3121BLE";
-	uint8_t btname[] =  "Yc3121BT";
+	uint8_t bt_name[17] = "YC3121demo";
+	uint8_t bt_addr[6] =  {0x00,0x00,0x00,0x33,0x22,0x11};
+	uint8_t chip_id[6]={0};
+	uint16_t temp_handle;
 
 	int UARTCMD = 0;
 	uint8_t getbtstatus = 0;
@@ -97,14 +124,19 @@
 	SysTick_Config(CPU_MHZ/1000);
 	BT_Init();
 	enable_intr(INTR_BT);
+	
+	read_chipid(chip_id);
+	array2hex(chip_id+3,3,bt_name+10);
+	bt_name[16]='\0';
+	memcpy(bt_addr,chip_id,3);
 
 	MyPrintf("bt ble demo\n");
-	if(BT_SetBleName(blename,sizeof(blename)-1)==TRUE) 
-		MyPrintf("SetBleName_suc ble name:%s\n",blename);
+	if(BT_SetBleName(bt_name,sizeof(bt_name)-1)==TRUE) 
+		MyPrintf("SetBleName_suc ble name:%s\n",bt_name);
 	else 
 		MyPrintf("SetBleName_failed\n");
 	
-	if(BT_SetBtName(btname,sizeof(btname)-1) == TRUE)//bt与ble名字地址可以设置成一样
+	if(BT_SetBtName(bt_name,sizeof(bt_name)-1) == TRUE)//bt与ble名字地址可以设置成一样
 		MyPrintf("SetbtName_suc\n");
 	else 
 		MyPrintf("SetbtName_fail\n");
@@ -124,6 +156,47 @@
 	else
 		MyPrintf("set confirmkey mode failed\n");
 	
+	if(BT_SetCOD(bt_cod) == TRUE) //设置COD
+		MyPrintf("set COD sucess\n");
+	else
+		MyPrintf("set COD failed\n");
+
+	
+	if(BT_DeleteService() == TRUE) //  删除用户自定义服务
+		MyPrintf("delete service sucess\n");
+	else
+		MyPrintf("delete service failed\n");
+
+	temp_handle=BT_AddBleService(ble_service_uuid_lsps,sizeof(ble_service_uuid_lsps));
+	if( temp_handle!= 0)  //增加服务 返回handle无需保存
+		MyPrintf("add service sucess,handle=%04x\n",temp_handle);
+	else
+		MyPrintf("add service failed,return=%04x\n",temp_handle);
+	
+	ble_send_handle=BT_AddBleCharacteristic(ble_Characteristic_uuid_lsps_tx,sizeof(ble_Characteristic_uuid_lsps_tx));
+	if( ble_send_handle!= 0)  //增加服务特征  write返回的handle需要保存，发数据使用
+		MyPrintf("add Characteristic tx sucess,handle=%04x\n",ble_send_handle);
+	else
+		MyPrintf("add Characteristic tx failed,return=%04x\n",ble_send_handle);
+	
+	temp_handle=BT_AddBleCharacteristic(ble_Characteristic_uuid_lsps_rx,sizeof(ble_Characteristic_uuid_lsps_rx));
+	if( temp_handle!= 0)
+		MyPrintf("add Characteristic rx sucess;handle=%04x\n",temp_handle);
+	else
+		MyPrintf("add Characteristic rx failed,return=%04x\n",temp_handle);
+	
+	temp_handle=BT_AddBleCharacteristic(ble_Characteristic_uuid_flow_ctrl,sizeof(ble_Characteristic_uuid_flow_ctrl));
+	if( temp_handle!= 0)
+		MyPrintf("add Characteristic flow_ctrl sucess;handle=%04x\n",temp_handle);
+	else
+		MyPrintf("add Characteristic flow_ctrl failed,return=%04x\n",temp_handle);
+
+	if(BT_SetVisibility(0x01,0x01,0x01) == TRUE)  //设置可发现
+		MyPrintf("SetVisibility sucess\n");
+	else
+		MyPrintf("SetVisibility failed\n");
+	
+
 	memset(NvramData,0xff,170);
 	qspi_flash_read(IFLASH_NVRAM_ADDR,NvramData,NVRAM_LEN);
 	//nvram 包含5个设备信息
@@ -142,63 +215,6 @@
 	while (1)
 	{
 		BT_Progress();
-		if(UART_IsRXFIFONotEmpty(PRINT_UART))//通过串口发指令测试蓝牙操作接口
-		{
-			UARTCMD = UART_ReceiveData(PRINT_UART);
-			MyPrintf("recv cmd\n");
-			switch(UARTCMD)
-			{
-					case BT_TEST_CMD_SetVisibility:
-						if(BT_SetVisibility(TRUE,TRUE,TRUE) == TRUE)MyPrintf("SetVisibility_suc\n");
-						else MyPrintf("SetVisibility_fail\n");
-					 break;
-					 
-					case BT_TEST_CMD_SetNameAndAdr: 
-						if(BT_SetBleName(blename,9)==TRUE) MyPrintf("SetBleName_suc\n");
-						else MyPrintf("SetBleName_failed\n");
-						if(BT_SetBleAddr(bt_addr) == TRUE) MyPrintf("SetBleAddr_suc\n");
-						else MyPrintf("SetBleAddr_fail\n"); 
-					
-						if(BT_SetBtAddr(bt_addr) == TRUE)MyPrintf("SetBtAddr_suc\n");
-						else MyPrintf("SetBtAddr_fail\n");
-						if(BT_SetBtName(btname,8) == TRUE)MyPrintf("SetbtName_suc\n");
-						else MyPrintf("SetbtName_fail\n");
-					break;
-					
-					case BT_TEST_CMD_SendSPPData:
-						if(BT_SendSppData( spp_data,6) == TRUE)MyPrintf("BTSendSppData_suc");
-						else MyPrintf("SendSppData_failed\n");	
-					break;
-					
-					case BT_TEST_CMD_SenBleData:
-						if(BT_SendBleData(ble_data,7) ==TRUE)MyPrintf("BT_SendBleData_suc\n");
-						else MyPrintf("SendBleData_failed\n");	
-					break;
-					
-					case BT_TEST_CMD_GetBTStatus:
-						getbtstatus = Bt_GetBtStatus();	
-						if(getbtstatus !=(1<<BIT_STATUS_REQUEST))MyPrintf("GetBtStatus_suc,status:%d",getbtstatus);
-						else MyPrintf("GetBtStatus_failed\n");
-					break;
-				
-					case BT_TEST_CMD_SetParingMode:
-					if(BT_SetParingMode(0x01) == TRUE	)MyPrintf("SetParingMode_suc\n");
-					else MyPrintf("SetPatingMode_failed\n");	
-					break;
-					case BT_TEST_CMD_BTDisConnect:
-						if(BT_BtDisconnect() == TRUE) MyPrintf("BT_BtDisconnect_suc\n");
-						else MyPrintf("BT_BtDisconnect_failed\n");	
-					break;
-				
-					case BT_TEST_CMD_BLEDisConnect:
-						if(BT_BleDisconnect() == TRUE)MyPrintf("BT_BleDisconnect_suc\n");
-						else MyPrintf("BT_BleDisconnect_failed\n"); 
-					break;					
-				default:
-					MyPrintf("none cmd,plese send effective char format cmd\n");
-					break;
-			}	
-		}
 	}
 }
 
@@ -254,11 +270,16 @@
 				if(BtDataLen>0)
 				{
 					MyPrintf("received %d bytes bt data:",BtDataLen);
-					
-					while(BtDataLen--)
-						MyPrintf("%02x ",btData[i++]);
-					
-					MyPrintf("\n");				
+					for(int i=0;i<BtDataLen;i++)	MyPrintf("%02x ",btData[i]);
+					MyPrintf("\n");	
+
+					BT_SendSppData(btData,BtDataLen);
+					MyPrintf("send %d bytes bt data:",BtDataLen);
+					for(int i=0;i<BtDataLen;i++)	MyPrintf("%02x ",btData[i]);
+					MyPrintf("\n");	
+					#ifdef SPP_FLOWCONTROL
+					if(BT_SetSppFlowcontrol(1) != TRUE)	MyPrintf("set Flowcontrol failed\n");
+					#endif
 				}
 				else	MyPrintf("read bt data error");
 			}
@@ -266,15 +287,21 @@
 			
 		case BLE_DATA:
 			{
-				uint8_t i = 0;
 				uint8_t bleData[MAX_BLUETOOTH_DATA_LEN]={0};
 				int BleDataLen=0;
-				BleDataLen=BT_ReadBTData(bleData);
+				BleDataLen=BT_ReadBTData(bleData+2);
 				if(BleDataLen>0)
 				{
 					MyPrintf("received %d bytes ble data:",BleDataLen);
-					while(BleDataLen--)
-						MyPrintf("%02x ",bleData[i++]);
+					for(int i=0;i<BleDataLen;i++)	MyPrintf("%02x ",bleData[2+i]);
+					MyPrintf("\n");
+					
+					//add handle
+					bleData[0]=(ble_send_handle&0xff);
+					bleData[1]=((ble_send_handle>>8)&0xff);
+					BT_SendBleData(bleData,BleDataLen+2);
+					MyPrintf("send %d bytes ble data[%02x %02x]:",BleDataLen,bleData[0],bleData[1]);
+					for(int i=0;i<BleDataLen;i++)	MyPrintf("%02x ",bleData[2+i]);
 					MyPrintf("\n");
 				}
 				else	MyPrintf("read ble data error");
