Browse Source

疫情备份

huangyongliang 3 years ago
parent
commit
d3d7cedc6b

+ 2 - 0
CMakeLists.txt

@@ -27,11 +27,13 @@ set(app_file ./hpocapp.c
 	${app_dir}/uiEntry.c
 	${app_dir}/uiBlock.c
 	${app_dir}/gpsCtl.c
+	${app_dir}/GpsData.c
 	${app_dir}/message.c
 	${app_dir}/hook.c
 	${app_dir}/appAuth.c
 	${app_dir}/common.c
 	${app_dir}/bsp.c
+	${app_dir}/ble.c
 	${debug_files})
 
 set(log_dir ${app_dir}/log)

BIN
D29V资料/蓝牙资料/HKT-60 双模蓝牙模块串口通信协议 VER01.pdf


+ 286 - 363
app/GUI/fonts.c

@@ -106,82 +106,298 @@ const unsigned char  g_apucCFonts16[]={0x00,0x00,0x00,0x00,0x3F,0xF8,0x20,0x08,0
 };
 
 
-
-
-
-
 const unsigned char g_apucLetter24[]={
-0x7D,0x28,0x29,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x2D,0x3A,0x20,0x2C,0x6B,0x65,0x79,0x3D,0x25,0x78,0x2E,0x21,
-0x00};
+	" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"};
 const unsigned char g_apucFonts24[]={
-//}
-0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0xC,0x0,0x6,0x0,0xC,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x8,0x0,0x38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//(
-0x0,0x20,0x0,0x40,0x0,0x80,0x0,0x80,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x1,0x0,0x1,0x0,0x0,0x80,0x0,0x80,0x0,0x40,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//)
-0x60,0x0,0x30,0x0,0x18,0x0,0x8,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x0,0x0,0x2,0x0,0x2,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x4,0x0,0x8,0x0,0x18,0x0,0x10,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//1
-0x0,0x0,0x0,0x0,0x2,0x0,0x6,0x0,0xE,0x0,0x12,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//2
-0x0,0x0,0x7,0x0,0x1F,0xC0,0x38,0xC0,0x20,0x60,0x20,0x60,0x0,0x60,0x0,0x40,0x0,0xC0,0x1,0x80,0x1,0x0,0x3,0x0,0x6,0x0,0xC,0x0,0x18,0x0,0x30,0x0,0x3F,0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//3
-0x0,0x0,0x7,0x0,0xF,0xC0,0x10,0xC0,0x30,0x60,0x20,0x60,0x0,0x40,0x0,0xC0,0x3,0x80,0x3,0x80,0x0,0xC0,0x0,0x60,0x0,0x60,0x20,0x60,0x30,0x60,0x38,0xC0,0x1F,0x80,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//4
-0x0,0x0,0x0,0xC0,0x0,0xC0,0x1,0xC0,0x3,0xC0,0x3,0xC0,0x4,0xC0,0xC,0xC0,0x8,0xC0,0x10,0xC0,0x30,0xC0,0x20,0xC0,0x7F,0xF0,0x7F,0xF0,0x0,0xC0,0x0,0xC0,0x0,0xC0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//5
-0x0,0x0,0x0,0x0,0x1F,0xC0,0x10,0x0,0x10,0x0,0x10,0x0,0x30,0x0,0x3F,0x80,0x39,0xC0,0x20,0x40,0x0,0x60,0x0,0x60,0x0,0x60,0x40,0x60,0x60,0x40,0x30,0xC0,0x1F,0x80,0xE,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//6
-0x0,0x0,0x1,0x80,0x1,0x0,0x3,0x0,0x6,0x0,0x4,0x0,0xC,0x0,0x1F,0x80,0x1F,0xC0,0x30,0x60,0x30,0x20,0x20,0x30,0x20,0x30,0x20,0x30,0x30,0x20,0x38,0x60,0x1F,0xC0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//7
-0x0,0x0,0x0,0x0,0x3F,0xE0,0x0,0x20,0x0,0x60,0x0,0x40,0x0,0x80,0x0,0x80,0x1,0x0,0x1,0x0,0x3,0x0,0x2,0x0,0x6,0x0,0x6,0x0,0x4,0x0,0xC,0x0,0xC,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//8
-0x0,0x0,0x7,0x0,0x1F,0x80,0x30,0xC0,0x20,0x40,0x20,0x60,0x20,0x40,0x30,0xC0,0x1F,0x80,0x1F,0x80,0x30,0xC0,0x20,0x60,0x60,0x20,0x60,0x20,0x20,0x60,0x30,0xC0,0x1F,0xC0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//9
-0x0,0x0,0x7,0x0,0x1F,0x80,0x30,0xC0,0x20,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x40,0x30,0xC0,0x1F,0x80,0x7,0x80,0x1,0x0,0x3,0x0,0x2,0x0,0x6,0x0,0xC,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//0
-0x0,0x0,0x7,0x0,0xF,0x80,0x18,0xC0,0x30,0x40,0x30,0x60,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x30,0x60,0x30,0x40,0x18,0xC0,0xF,0x80,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//-
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7F,0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//:
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-// 
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//,
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//k
-0x0,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0x0,0x20,0xC0,0x21,0x80,0x23,0x0,0x26,0x0,0x3E,0x0,0x31,0x0,0x31,0x80,0x30,0x80,0x30,0xC0,0x30,0x60,0x30,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//e
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xF,0x80,0x19,0xC0,0x30,0x40,0x20,0x60,0x3F,0xE0,0x20,0x0,0x20,0x0,0x30,0x60,0x18,0x40,0x1F,0xC0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//y
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x60,0x20,0x60,0x30,0x40,0x10,0xC0,0x18,0x80,0x8,0x80,0x9,0x80,0xF,0x0,0x7,0x0,0x7,0x0,0x6,0x0,0x6,0x0,0x1C,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//=
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7F,0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7F,0xE0,0x7F,0xE0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//%
-0x0,0x0,0x10,0x0,0x38,0x40,0x48,0x0,0x48,0x80,0x48,0x0,0x48,0x0,0x48,0x0,0x38,0x0,0x12,0x40,0x0,0xE0,0x5,0x20,0x1,0x20,0x9,0x20,0x1,0x20,0x11,0x20,0x0,0xE0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//x
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30,0x60,0x10,0xC0,0x9,0x80,0xF,0x0,0x7,0x0,0x6,0x0,0xF,0x0,0x9,0x80,0x18,0xC0,0x30,0x40,0x20,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//.
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x10,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//!
-0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x6,0x0,0x6,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-
-};
-
-const unsigned char g_apucCLetter24[]={
-"旮詀庈"
-};
-const unsigned char g_apucCFonts24[]={
-//旮
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x10,0xFF,0xF8,0x1C,0x0,0x8,0xC,0x9,0x88,0x0,0x10,0x48,0x60,0x2,0x0,0x7C,0x2,0x0,0x0,0xFF,0xFF,0x1,0x82,0x3E,0x0,0x2,0x4,0xC,0x32,0x60,0x38,0x62,0x30,0x30,0xC2,0x18,0x21,0x82,0x4,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//詀
-0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x10,0x18,0x6,0x31,0x18,0x2,0x11,0x98,0x2,0x11,0x18,0x1F,0x91,0x18,0x26,0x11,0x18,0x2,0x11,0x18,0x2,0x11,0x18,0x3,0xF1,0x18,0x3F,0x11,0x18,0x7C,0x31,0x18,0x0,0xE1,0x18,0x3,0xC3,0x18,0x1,0x80,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
-//庈
+/* 0x20 [ ] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x21 [!] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x03,0x00,
+		0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x22 ["] */
+		0x00,0x00,0x00,0x00,0x07,0x70,0x07,0x70,0x0E,0xE0,0x1D,0xC0,0x19,0x80,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x23 [#] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x7F,0xF0,0x7F,0xF0,0x18,0x60,0x18,0xC0,
+		0x18,0xC0,0x18,0xC0,0x18,0xC0,0x7F,0xF0,0x7F,0xF0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x24 [$] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x0F,0xC0,0x1F,0xE0,0x3B,0xE0,0x3B,0xE0,0x3B,0x00,0x1F,0x00,0x0F,0x00,
+		0x07,0x80,0x03,0xC0,0x03,0xC0,0x03,0xE0,0x3B,0xE0,0x3F,0xE0,0x3B,0xE0,0x1B,0xC0,0x0F,0x80,0x03,0x00,0x03,0x00,0x00,0x00,
+	/* 0x25 [%] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xC0,0x78,0xC0,0xCD,0x80,0xCD,0x80,0xCD,0x80,0xCF,0x00,0xCF,0x00,0x7E,0x00,
+		0x7F,0xE0,0x07,0xE0,0x0F,0x30,0x0F,0x30,0x1B,0x30,0x1B,0x30,0x1B,0x30,0x31,0xE0,0x31,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x26 [&] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00,0x3F,0x00,0x3E,0x00,0x1D,0xF0,
+		0x3C,0xC0,0x7C,0xC0,0xEE,0xC0,0xEE,0xC0,0xE7,0xC0,0xE7,0x80,0xE3,0x98,0x73,0xD8,0x3E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x27 ['] */
+		0x00,0x00,0x00,0x00,0x38,0x00,0x3C,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x28 [(] */
+		0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x60,0x00,0xC0,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+		0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x00,0xC0,0x00,0x60,0x00,0x30,0x00,0x00,
+	/* 0x29 [)] */
+		0x00,0x00,0x00,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
+		0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0x00,0x00,
+	/* 0x2A [*] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x80,0x03,0x00,0x73,0x38,0x7B,0xF8,0x0F,0xC0,
+		0x0F,0xC0,0x7F,0xF8,0x73,0x38,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x2B [+] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
+		0x7F,0xF8,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x2C [,] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x3C,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,
+	/* 0x2D [-] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x2E [.] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x3C,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x2F [/] */
+		0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x70,0x00,0x60,0x00,0xE0,0x00,0xC0,0x00,0xC0,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,
+		0x07,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x38,0x00,0x30,0x00,0x70,0x00,0x60,0x00,0x00,0x00,
+	/* 0x30 [0] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x1D,0xC0,0x38,0xE0,0x38,0xE0,0x70,0x70,0x70,0x70,0x70,0x70,
+		0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x38,0xE0,0x38,0xE0,0x1D,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x31 [1] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x3F,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,
+		0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x32 [2] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x31,0xC0,0x60,0xE0,0x70,0xE0,0x70,0xE0,0x00,0xE0,0x00,0xC0,
+		0x01,0xC0,0x03,0x80,0x07,0x00,0x06,0x00,0x0C,0x00,0x18,0x60,0x30,0x60,0x70,0x60,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x33 [3] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x73,0x80,0x71,0xC0,0x71,0xC0,0x01,0xC0,0x01,0xC0,0x03,0x80,
+		0x0F,0x00,0x01,0xC0,0x00,0xC0,0x00,0xE0,0x00,0xE0,0x70,0xE0,0x70,0xE0,0x71,0xC0,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x34 [4] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x01,0xC0,0x03,0xC0,0x07,0xC0,0x07,0xC0,0x0D,0xC0,0x19,0xC0,
+		0x19,0xC0,0x31,0xC0,0x61,0xC0,0x7F,0xF8,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x35 [5] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x3F,0x80,
+		0x39,0xC0,0x30,0xE0,0x00,0xE0,0x00,0xE0,0x70,0xE0,0x70,0xE0,0x61,0xC0,0x31,0xC0,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x36 [6] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x1C,0xE0,0x38,0xE0,0x38,0x00,0x30,0x00,0x70,0x00,0x77,0xC0,
+		0x7C,0xE0,0x78,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x30,0x70,0x38,0x60,0x1C,0xE0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x37 [7] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x38,0x70,0x30,0x60,0x30,0xC0,0x00,0xC0,0x00,0xC0,0x01,0x80,
+		0x01,0x80,0x03,0x00,0x03,0x00,0x03,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x38 [8] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,0x38,0xE0,0x70,0x70,0x70,0x70,0x70,0x70,0x38,0x60,0x3C,0xE0,
+		0x0F,0x80,0x1B,0xC0,0x38,0xE0,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x38,0xE0,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x39 [9] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x38,0xC0,0x38,0xE0,0x70,0x60,0x70,0x70,0x70,0x70,0x70,0x70,
+		0x70,0xF0,0x39,0xF0,0x1F,0x70,0x00,0x70,0x00,0xE0,0x00,0xE0,0x38,0xC0,0x39,0xC0,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x3A [:] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x07,0x80,
+		0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x07,0x80,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x3B [;] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x03,0x00,0x06,0x00,0x06,0x00,
+	/* 0x3C [<] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x60,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,
+		0x30,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x03,0x00,0x01,0x80,0x00,0xC0,0x00,0x60,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x3D [=] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x3E [>] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x03,0x00,0x01,0x80,0x00,0xC0,0x00,0x60,
+		0x00,0x30,0x00,0x60,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x3F [?] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x1C,0x70,0x30,0x38,0x30,0x38,0x38,0x38,0x38,0x38,0x00,0xF0,
+		0x01,0xC0,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x07,0x80,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x40 [@] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x1C,0xE0,0x38,0x60,0x3B,0xF0,0x37,0xF0,0x77,0xF0,0x77,0xF0,0x7F,0xB0,
+		0x7F,0xB0,0x7F,0xB0,0x7F,0xB0,0x7F,0xE0,0x37,0xC0,0x38,0x30,0x38,0x60,0x1C,0xE0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x41 [A] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x0F,0x00,0x0F,0x80,0x0D,0x80,0x0D,0x80,0x19,0x80,
+		0x19,0xC0,0x18,0xC0,0x1F,0xC0,0x30,0xE0,0x30,0xE0,0x30,0x60,0x60,0x60,0x60,0x70,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x42 [B] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x39,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x39,0xC0,
+		0x3F,0x80,0x38,0xE0,0x38,0x60,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0xE0,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x43 [C] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x1C,0xE0,0x38,0x70,0x38,0x30,0x30,0x30,0x70,0x00,0x70,0x00,
+		0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x30,0x38,0x30,0x38,0x60,0x1C,0xE0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x44 [D] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x39,0xC0,0x38,0xE0,0x38,0xE0,0x38,0x70,0x38,0x70,0x38,0x70,
+		0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0xE0,0x38,0xE0,0x39,0xC0,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x45 [E] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xE0,0x70,0xE0,0x70,0x30,0x70,0x30,0x70,0x00,0x71,0x80,0x71,0x80,
+		0x7F,0x80,0x71,0x80,0x71,0x80,0x71,0x80,0x70,0x00,0x70,0x30,0x70,0x30,0x70,0x60,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x46 [F] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xE0,0x70,0xE0,0x70,0x30,0x70,0x30,0x70,0x00,0x71,0x80,0x71,0x80,
+		0x7F,0x80,0x71,0x80,0x71,0x80,0x71,0x80,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x47 [G] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x1C,0xC0,0x38,0x60,0x38,0x60,0x30,0x60,0x70,0x00,0x70,0x00,
+		0x70,0x00,0x70,0x00,0x73,0xF8,0x70,0xE0,0x70,0xE0,0x38,0xE0,0x38,0xE0,0x1C,0xE0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x48 [H] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+		0x7F,0xF0,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x49 [I] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,
+		0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x4A [J] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,
+		0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x73,0x80,0x77,0x00,0x3E,0x00,
+	/* 0x4B [K] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFB,0xE0,0x71,0xC0,0x73,0x80,0x73,0x00,0x76,0x00,0x7C,0x00,0x7E,0x00,
+		0x7E,0x00,0x7F,0x00,0x73,0x00,0x73,0x80,0x71,0x80,0x71,0xC0,0x70,0xC0,0x70,0xE0,0xF9,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x4C [L] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,
+		0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x30,0x70,0x30,0x70,0x60,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x4D [M] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF0,0x71,0xE0,0x71,0xE0,0x79,0xE0,0x79,0xE0,0x7B,0xE0,0x7B,0xE0,
+		0x7B,0xE0,0x7F,0xE0,0x7F,0xE0,0x7E,0xE0,0x6E,0xE0,0x6E,0xE0,0x6E,0xE0,0x6C,0xE0,0xF1,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x4E [N] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x79,0xF8,0x38,0x60,0x3C,0x60,0x3C,0x60,0x3E,0x60,0x3E,0x60,0x37,0x60,
+		0x37,0x60,0x33,0x60,0x33,0xE0,0x31,0xE0,0x31,0xE0,0x31,0xE0,0x30,0xE0,0x30,0xE0,0xFC,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x4F [O] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x1D,0xC0,0x38,0xE0,0x38,0x60,0x70,0x70,0x70,0x70,0x70,0x70,
+		0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x38,0x60,0x38,0xE0,0x1D,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x50 [P] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x70,0xE0,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+		0x71,0xE0,0x7F,0x80,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x51 [Q] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x1D,0xC0,0x38,0xE0,0x38,0x60,0x70,0x70,0x70,0x70,0x70,0x70,
+		0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x7F,0x70,0x3B,0x60,0x3B,0xE0,0x1D,0xC0,0x0F,0x80,0x01,0xF0,0x00,0xE0,0x00,0x00,
+	/* 0x52 [R] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xC0,0x70,0xE0,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0xE0,
+		0x7F,0x80,0x73,0x00,0x73,0x80,0x71,0x80,0x71,0xC0,0x70,0xE0,0x70,0xE0,0x70,0x70,0xF8,0x78,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x53 [S] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xE0,0x38,0xE0,0x70,0x60,0x70,0x60,0x70,0x00,0x78,0x00,0x3E,0x00,
+		0x1F,0x80,0x07,0xE0,0x01,0xE0,0x00,0xF0,0x60,0x70,0x60,0x70,0x70,0x70,0x38,0xE0,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x54 [T] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xF0,0x67,0x30,0xC7,0x18,0xC7,0x18,0x07,0x00,0x07,0x00,0x07,0x00,
+		0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x55 [U] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xF0,0x38,0x60,0x38,0x60,0x38,0x60,0x38,0x60,0x38,0x60,0x38,0x60,
+		0x38,0x60,0x38,0x60,0x38,0x60,0x38,0x60,0x38,0x60,0x38,0x60,0x38,0x60,0x1C,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x56 [V] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF0,0x70,0x60,0x30,0xC0,0x30,0xC0,0x38,0xC0,0x38,0xC0,0x19,0x80,
+		0x19,0x80,0x1D,0x80,0x1D,0x80,0x0F,0x00,0x0F,0x00,0x0F,0x00,0x0E,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x57 [W] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF8,0x67,0x30,0x63,0x30,0x73,0x30,0x73,0x30,0x37,0x60,0x37,0x60,
+		0x37,0xE0,0x37,0xE0,0x3D,0xE0,0x3D,0xC0,0x1D,0xC0,0x1D,0xC0,0x19,0xC0,0x19,0x80,0x19,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x58 [X] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7D,0xF0,0x38,0xC0,0x18,0xC0,0x1C,0xC0,0x0D,0x80,0x0F,0x80,0x07,0x00,
+		0x06,0x00,0x07,0x00,0x07,0x00,0x0F,0x80,0x0D,0x80,0x19,0xC0,0x18,0xC0,0x30,0xE0,0x79,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x59 [Y] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0x70,0x30,0x30,0x60,0x38,0x60,0x18,0xC0,0x1C,0xC0,0x1F,0x80,
+		0x0F,0x80,0x0F,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x5A [Z] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x38,0x60,0x70,0xE0,0x60,0xC0,0x01,0xC0,0x01,0x80,0x03,0x00,
+		0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x1C,0x00,0x18,0x30,0x38,0x30,0x30,0x60,0x7F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x5B [[] */
+		0x00,0x00,0x00,0x00,0x07,0xE0,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,
+		0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x07,0xE0,0x00,0x00,
+	/* 0x5C [\] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x06,0x00,
+		0x06,0x00,0x03,0x00,0x03,0x00,0x03,0x80,0x01,0x80,0x01,0x80,0x00,0xC0,0x00,0xC0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x30,
+	/* 0x5D []] */
+		0x00,0x00,0x00,0x00,0x3F,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
+		0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x3F,0x00,0x00,0x00,
+	/* 0x5E [^] */
+		0x00,0x00,0x07,0x00,0x0D,0x80,0x18,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x5F [_] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF8,
+	/* 0x60 [`] */
+		0x00,0x00,0x00,0x00,0x1C,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x61 [a] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x38,0xE0,
+		0x38,0xE0,0x00,0xE0,0x07,0xE0,0x3C,0xE0,0x78,0xE0,0x70,0xE0,0x70,0xE0,0x79,0xF8,0x3F,0x78,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x62 [b] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x78,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x3B,0xC0,0x3E,0xE0,
+		0x3C,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x60,0x3C,0xE0,0x37,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x63 [c] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x39,0xC0,
+		0x39,0xC0,0x71,0xC0,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x60,0x38,0x60,0x38,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x64 [d] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x03,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x1F,0xE0,0x39,0xE0,
+		0x38,0xE0,0x70,0xE0,0x70,0xE0,0x70,0xE0,0x70,0xE0,0x70,0xE0,0x30,0xE0,0x39,0xF0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x65 [e] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x1C,0xE0,
+		0x18,0x60,0x38,0x70,0x38,0x70,0x3F,0xF0,0x38,0x00,0x38,0x00,0x1C,0x30,0x1C,0x60,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x66 [f] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x07,0x70,0x0E,0x70,0x0E,0x00,0x0E,0x00,0x7F,0xC0,0x0E,0x00,
+		0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x67 [g] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x1F,0xF0,
+		0x39,0xC0,0x39,0xC0,0x39,0xC0,0x1D,0xC0,0x1F,0x80,0x38,0x00,0x3F,0x80,0x3B,0xE0,0x70,0xE0,0x70,0xE0,0x79,0xE0,0x1F,0x80,
+	/* 0x68 [h] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x78,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x3F,0xC0,0x3C,0xE0,
+		0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x7D,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x69 [i] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x3F,0x00,0x07,0x00,
+		0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x6A [j] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0,0x0F,0xC0,0x01,0xC0,
+		0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x3B,0x80,0x3F,0x00,
+	/* 0x6B [k] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x78,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x39,0xE0,0x39,0x80,
+		0x39,0x80,0x3B,0x00,0x3F,0x00,0x3F,0x00,0x39,0x80,0x39,0xC0,0x38,0xC0,0x38,0xE0,0x7D,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x6C [l] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x3F,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,
+		0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x6D [m] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xF0,0x7F,0xF0,
+		0x77,0x70,0x77,0x70,0x77,0x70,0x77,0x70,0x77,0x70,0x77,0x70,0x77,0x70,0x77,0x70,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x6E [n] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x3C,0xE0,
+		0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x7D,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x6F [o] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x1D,0xC0,
+		0x38,0xE0,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x38,0xE0,0x38,0xE0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x70 [p] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x3C,0xE0,
+		0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0xE0,0x3C,0xE0,0x3F,0xC0,0x38,0x00,0x38,0x00,0x7E,0x00,
+	/* 0x71 [q] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x60,0x39,0xE0,
+		0x38,0xE0,0x70,0xE0,0x70,0xE0,0x70,0xE0,0x70,0xE0,0x70,0xE0,0x30,0xE0,0x39,0xE0,0x1F,0xE0,0x00,0xE0,0x00,0xE0,0x03,0xF0,
+	/* 0x72 [r] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFD,0xE0,0x1F,0x70,
+		0x1E,0x70,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x73 [s] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x3C,0xE0,
+		0x38,0x60,0x38,0x60,0x1E,0x00,0x0F,0x80,0x03,0xE0,0x30,0xE0,0x30,0xE0,0x39,0xE0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x74 [t] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x7F,0xC0,0x0E,0x00,
+		0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x60,0x0E,0x60,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x75 [u] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x60,0x79,0xE0,0x38,0xE0,
+		0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x38,0xE0,0x3D,0xF0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x76 [v] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0xF0,0x38,0x60,
+		0x18,0xC0,0x18,0xC0,0x1C,0xC0,0x0D,0x80,0x0F,0x80,0x0F,0x80,0x07,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x77 [w] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF8,0x67,0x30,
+		0x73,0x30,0x37,0x60,0x37,0x60,0x3F,0xE0,0x3D,0xC0,0x1D,0xC0,0x1D,0xC0,0x1D,0xC0,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x78 [x] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x1C,0xC0,
+		0x0C,0xC0,0x0F,0x80,0x07,0x00,0x07,0x00,0x07,0x80,0x0D,0x80,0x18,0xC0,0x18,0xE0,0x7D,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x79 [y] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7D,0xF0,0x18,0xC0,
+		0x18,0xC0,0x18,0xC0,0x0D,0x80,0x0D,0x80,0x0F,0x80,0x07,0x00,0x07,0x00,0x07,0x00,0x06,0x00,0x06,0x00,0x36,0x00,0x3C,0x00,
+	/* 0x7A [z] */
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x31,0xC0,
+		0x33,0x80,0x33,0x00,0x07,0x00,0x06,0x00,0x0E,0x00,0x1C,0x60,0x18,0x60,0x38,0xE0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+	/* 0x7B [{] */
+		0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x03,0x00,
+		0x06,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0xE0,0x00,0x00,
+	/* 0x7C [|] */
+		0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
+		0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
+	/* 0x7D [}] */
+		0x00,0x00,0x00,0x00,0x38,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x06,0x00,
+		0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x38,0x00,0x00,0x00,
+	/* 0x7E [~] */
+		0x00,0x00,0x3C,0x00,0x66,0x30,0x63,0xB0,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 };
 
 
 
-
-
 const unsigned char g_apucLetter12[]={
 	"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ !\"#$%&'()*+,-./:;<=>?@[\\]^_`"//,./;'\\[]-=`~!@#$%^&*()_+{}:\"|<> ?
 };
@@ -377,299 +593,6 @@ const unsigned char g_apucFonts12[]={
 		0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 };
 
-//const unsigned char g_apucFonts12[]={
-
-///* 0x30 [0] */
-//		0x00,0x00,0x00,0x00,0x70,0x00,0x88,0x00,0x88,0x00,0x88,0x00,
-//		0x88,0x00,0x88,0x00,0x88,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x31 [1] */
-//		0x00,0x00,0x00,0x00,0x20,0x00,0x60,0x00,0x20,0x00,0x20,0x00,
-//		0x20,0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x32 [2] */
-//		0x00,0x00,0x00,0x00,0x70,0x00,0x88,0x00,0x88,0x00,0x10,0x00,
-//		0x20,0x00,0x40,0x00,0x80,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x33 [3] */
-//		0x00,0x00,0x00,0x00,0x70,0x00,0x88,0x00,0x08,0x00,0x30,0x00,
-//		0x08,0x00,0x08,0x00,0x88,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x34 [4] */
-//		0x00,0x00,0x00,0x00,0x10,0x00,0x30,0x00,0x30,0x00,0x50,0x00,
-//		0x90,0x00,0xF8,0x00,0x10,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x35 [5] */
-//		0x00,0x00,0x00,0x00,0xF8,0x00,0x80,0x00,0x80,0x00,0xF0,0x00,
-//		0x88,0x00,0x08,0x00,0x88,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x36 [6] */
-//		0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x80,0x00,0xB0,0x00,
-//		0xC8,0x00,0x88,0x00,0x88,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x37 [7] */
-//		0x00,0x00,0x00,0x00,0x78,0x00,0x08,0x00,0x10,0x00,0x10,0x00,
-//		0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x38 [8] */
-//		0x00,0x00,0x00,0x00,0x70,0x00,0x88,0x00,0x88,0x00,0x70,0x00,
-//		0x88,0x00,0x88,0x00,0x88,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x39 [9] */
-//		0x00,0x00,0x00,0x00,0x70,0x00,0x88,0x00,0x88,0x00,0x98,0x00,
-//		0x68,0x00,0x08,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x61 [a] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x08,0x00,
-//		0x38,0x00,0x48,0x00,0x48,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x62 [b] */
-//		0x00,0x00,0x60,0x00,0x20,0x00,0x38,0x00,0x24,0x00,0x24,0x00,
-//		0x24,0x00,0x24,0x00,0x24,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x63 [c] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x4C,0x00,0x44,0x00,
-//		0x40,0x00,0x40,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x64 [d] */
-//		0x00,0x00,0x18,0x00,0x08,0x00,0x38,0x00,0x48,0x00,0x48,0x00,
-//		0x48,0x00,0x48,0x00,0x48,0x00,0x34,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x65 [e] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00,0x44,0x00,
-//		0x7C,0x00,0x40,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x66 [f] */
-//		0x00,0x00,0x18,0x00,0x20,0x00,0x20,0x00,0x78,0x00,0x20,0x00,
-//		0x20,0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x67 [g] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x00,0x4C,0x00,0x44,0x00,
-//		0x44,0x00,0x4C,0x00,0x34,0x00,0x04,0x00,0x78,0x00,0x00,0x00,
-//	/* 0x68 [h] */
-//		0x00,0x00,0x60,0x00,0x20,0x00,0x38,0x00,0x24,0x00,0x24,0x00,
-//		0x24,0x00,0x24,0x00,0x24,0x00,0x6C,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x69 [i] */
-//		0x00,0x00,0x10,0x00,0x00,0x00,0x30,0x00,0x10,0x00,0x10,0x00,
-//		0x10,0x00,0x10,0x00,0x10,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x6A [j] */
-//		0x00,0x00,0x10,0x00,0x00,0x00,0x30,0x00,0x10,0x00,0x10,0x00,
-//		0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x60,0x00,0x00,0x00,
-//	/* 0x6B [k] */
-//		0x00,0x00,0x60,0x00,0x20,0x00,0x2C,0x00,0x28,0x00,0x30,0x00,
-//		0x30,0x00,0x28,0x00,0x28,0x00,0x6C,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x6C [l] */
-//		0x00,0x00,0x30,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
-//		0x10,0x00,0x10,0x00,0x10,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x6D [m] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0xA8,0x00,0x54,0x00,0x54,0x00,
-//		0x54,0x00,0x54,0x00,0x54,0x00,0xD4,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x6E [n] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x00,0x24,0x00,0x24,0x00,
-//		0x24,0x00,0x24,0x00,0x24,0x00,0x64,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x6F [o] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00,0x44,0x00,
-//		0x44,0x00,0x44,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x70 [p] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x24,0x00,0x24,0x00,
-//		0x24,0x00,0x24,0x00,0x38,0x00,0x20,0x00,0x70,0x00,0x00,0x00,
-//	/* 0x71 [q] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x48,0x00,0x48,0x00,
-//		0x48,0x00,0x48,0x00,0x38,0x00,0x08,0x00,0x1C,0x00,0x00,0x00,
-//	/* 0x72 [r] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x00,0x34,0x00,0x20,0x00,
-//		0x20,0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x73 [s] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x44,0x00,0x40,0x00,
-//		0x38,0x00,0x04,0x00,0x44,0x00,0x78,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x74 [t] */
-//		0x00,0x00,0x20,0x00,0x20,0x00,0x78,0x00,0x20,0x00,0x20,0x00,
-//		0x20,0x00,0x20,0x00,0x28,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x75 [u] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0x00,0x44,0x00,0x44,0x00,
-//		0x44,0x00,0x44,0x00,0x44,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x76 [v] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x00,0x44,0x00,0x44,0x00,
-//		0x28,0x00,0x28,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x77 [w] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x00,0x44,0x00,0x54,0x00,
-//		0x54,0x00,0x38,0x00,0x28,0x00,0x28,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x78 [x] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x00,0x44,0x00,0x28,0x00,
-//		0x10,0x00,0x28,0x00,0x44,0x00,0xEC,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x79 [y] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x00,0x44,0x00,0x44,0x00,
-//		0x28,0x00,0x28,0x00,0x10,0x00,0x10,0x00,0x60,0x00,0x00,0x00,
-//	/* 0x7A [z] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x44,0x00,0x08,0x00,
-//		0x10,0x00,0x20,0x00,0x44,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
-
-
-//	/* 0x41 [A] */
-//		0x00,0x00,0x30,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x28,0x00,
-//		0x38,0x00,0x28,0x00,0x28,0x00,0x6C,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x42 [B] */
-//		0x00,0x00,0x78,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x38,0x00,
-//		0x24,0x00,0x24,0x00,0x24,0x00,0x78,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x43 [C] */
-//		0x00,0x00,0x34,0x00,0x4C,0x00,0x44,0x00,0x40,0x00,0x40,0x00,
-//		0x40,0x00,0x40,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x44 [D] */
-//		0x00,0x00,0x78,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x24,0x00,
-//		0x24,0x00,0x24,0x00,0x24,0x00,0x78,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x45 [E] */
-//		0x00,0x00,0x7C,0x00,0x24,0x00,0x20,0x00,0x28,0x00,0x38,0x00,
-//		0x28,0x00,0x20,0x00,0x24,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x46 [F] */
-//		0x00,0x00,0x7C,0x00,0x24,0x00,0x20,0x00,0x28,0x00,0x38,0x00,
-//		0x28,0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x47 [G] */
-//		0x00,0x00,0x34,0x00,0x4C,0x00,0x44,0x00,0x40,0x00,0x5C,0x00,
-//		0x44,0x00,0x44,0x00,0x4C,0x00,0x34,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x48 [H] */
-//		0x00,0x00,0xEC,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x7C,0x00,
-//		0x44,0x00,0x44,0x00,0x44,0x00,0xEC,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x49 [I] */
-//		0x00,0x00,0x38,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
-//		0x10,0x00,0x10,0x00,0x10,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x4A [J] */
-//		0x00,0x00,0x1C,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,
-//		0x08,0x00,0x48,0x00,0x48,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x4B [K] */
-//		0x00,0x00,0x74,0x00,0x24,0x00,0x28,0x00,0x28,0x00,0x30,0x00,
-//		0x28,0x00,0x28,0x00,0x24,0x00,0x74,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x4C [L] */
-//		0x00,0x00,0x70,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,
-//		0x20,0x00,0x24,0x00,0x24,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x4D [M] */
-//		0x00,0x00,0xC4,0x00,0x6C,0x00,0x6C,0x00,0x54,0x00,0x54,0x00,
-//		0x44,0x00,0x44,0x00,0x44,0x00,0xEC,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x4E [N] */
-//		0x00,0x00,0xCC,0x00,0x64,0x00,0x64,0x00,0x54,0x00,0x54,0x00,
-//		0x4C,0x00,0x4C,0x00,0x44,0x00,0xE4,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x4F [O] */
-//		0x00,0x00,0x38,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x44,0x00,
-//		0x44,0x00,0x44,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x50 [P] */
-//		0x00,0x00,0x78,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x38,0x00,
-//		0x20,0x00,0x20,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x51 [Q] */
-//		0x00,0x00,0x38,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x44,0x00,
-//		0x44,0x00,0x74,0x00,0x4C,0x00,0x38,0x00,0x0C,0x00,0x00,0x00,
-//	/* 0x52 [R] */
-//		0x00,0x00,0x78,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x38,0x00,
-//		0x28,0x00,0x24,0x00,0x24,0x00,0x74,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x53 [S] */
-//		0x00,0x00,0x34,0x00,0x4C,0x00,0x44,0x00,0x20,0x00,0x10,0x00,
-//		0x08,0x00,0x44,0x00,0x64,0x00,0x58,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x54 [T] */
-//		0x00,0x00,0x7C,0x00,0x54,0x00,0x54,0x00,0x10,0x00,0x10,0x00,
-//		0x10,0x00,0x10,0x00,0x10,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x55 [U] */
-//		0x00,0x00,0xEC,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x44,0x00,
-//		0x44,0x00,0x44,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x56 [V] */
-//		0x00,0x00,0xEC,0x00,0x44,0x00,0x44,0x00,0x28,0x00,0x28,0x00,
-//		0x28,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x57 [W] */
-//		0x00,0x00,0xEC,0x00,0x44,0x00,0x54,0x00,0x54,0x00,0x54,0x00,
-//		0x54,0x00,0x28,0x00,0x28,0x00,0x28,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x58 [X] */
-//		0x00,0x00,0xEC,0x00,0x44,0x00,0x28,0x00,0x28,0x00,0x10,0x00,
-//		0x28,0x00,0x28,0x00,0x44,0x00,0xEC,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x59 [Y] */
-//		0x00,0x00,0xEC,0x00,0x44,0x00,0x28,0x00,0x28,0x00,0x10,0x00,
-//		0x10,0x00,0x10,0x00,0x10,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x5A [Z] */
-//		0x00,0x00,0x7C,0x00,0x44,0x00,0x48,0x00,0x08,0x00,0x10,0x00,
-//		0x20,0x00,0x24,0x00,0x44,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
-//		
-//	/* 0x20 [ ] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x21 [!] */
-//		0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,
-//		0x20,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x22 ["] */
-//		0x28,0x00,0x28,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x23 [#] */
-//		0x00,0x00,0x00,0x00,0x50,0x00,0x50,0x00,0xF8,0x00,0x50,0x00,
-//		0x50,0x00,0xF8,0x00,0x50,0x00,0x50,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x24 [$] */
-//		0x00,0x00,0x20,0x00,0x70,0x00,0xA8,0x00,0xA0,0x00,0x60,0x00,
-//		0x30,0x00,0x28,0x00,0xA8,0x00,0x70,0x00,0x20,0x00,0x00,0x00,
-//	/* 0x25 [%] */
-//		0x00,0x00,0x00,0x00,0x48,0x00,0xA8,0x00,0xB0,0x00,0xA8,0x00,
-//		0x74,0x00,0x34,0x00,0x54,0x00,0x48,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x26 [&] */
-//		0x00,0x00,0x00,0x00,0x20,0x00,0x50,0x00,0x50,0x00,0x6C,0x00,
-//		0xA8,0x00,0xA8,0x00,0x94,0x00,0x68,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x27 ['] */
-//		0x40,0x00,0x40,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x28 [(] */
-//		0x08,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x20,0x00,
-//		0x20,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x00,0x00,
-//	/* 0x29 [)] */
-//		0x40,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
-//		0x10,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x00,0x00,
-//	/* 0x2A [*] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0xA8,0x00,0x70,0x00,
-//		0x70,0x00,0xA8,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x2B [+] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x7C,0x00,
-//		0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x2C [,] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x80,0x00,0x00,0x00,
-//	/* 0x2D [-] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x2E [.] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x2F [/] */
-//		0x00,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x10,0x00,
-//		0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x00,0x00,0x00,
-//		
-///* 0x3A [:] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x3B [;] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x00,0x00,
-//	/* 0x3C [<] */
-//		0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,
-//		0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x3D [=] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,
-//		0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x3E [>] */
-//		0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,
-//		0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x3F [?] */
-//		0x00,0x00,0x00,0x00,0x70,0x00,0x88,0x00,0x88,0x00,0x10,0x00,
-//		0x20,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x40 [@] */
-//		0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00,0x94,0x00,0xB4,0x00,
-//		0xB4,0x00,0xB8,0x00,0x44,0x00,0x38,0x00,0x00,0x00,0x00,0x00,
-
-///* 0x5B [[] */
-//		0x38,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,
-//		0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x38,0x00,0x00,0x00,
-//	/* 0x5C [\] */
-//		0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x20,0x00,
-//		0x10,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
-//	/* 0x5D []] */
-//		0x70,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
-//		0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x00,0x00,
-//	/* 0x5E [^] */
-//		0x20,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//	/* 0x5F [_] */
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,
-//	/* 0x60 [`] */
-//		0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//		0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-//};
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 

+ 3 - 2
app/GUI/gui.c

@@ -362,7 +362,7 @@ void guiShowButton(unsigned short x, unsigned short y,const char *str, FONT_MODE
 }
 
 void guiFillRect(unsigned short x1, unsigned short y1, unsigned short x2, unsigned short y2,unsigned int colorData){
-	x1++;x2++;y1++;y2++;
+
 	unsigned short x=x2,y=y2,w,h,i,m,k,j,data;
 	if(x1>x2 || y1>y2) return;
 	if(x1>=GLCD_WIDTH || y1>=GLCD_HEIGHT) return;
@@ -520,7 +520,8 @@ void guiInit(void){
 }
 void guiClearAll(unsigned int colorID){//只清第二,三区
 	guiFillRect(0, UI_STATUS_ITEM_Y, GLCD_WIDTH-1, UI_CONTENT_SHOW_Y-1, guiGetForeColor());//清除第二区
-	guiFillRect(0,UI_CONTENT_SHOW_Y,GLCD_WIDTH-1,GLCD_HEIGHT-1,colorID);
+	guiFillRect(0,UI_CONTENT_SHOW_Y,GLCD_WIDTH-1,UI_LOCATION_SHOW_Y-1,colorID);
+	guiFillRect(0, UI_LOCATION_SHOW_Y, GLCD_WIDTH-1, GLCD_HEIGHT-1, guiGetForeColor());//清除信标区
 }
 
 void guiShowMessageBox(char *msg){

+ 18 - 0
app/GUI/lcdDrv.c

@@ -207,6 +207,12 @@ char lcdDrv_Init(char type){
 	//LSAPI_OSI_ThreadSleep(100);
 	LSAPI_PmuSwitchPower(OSI_MAKE_TAG('L', 'C', 'D', ' '), true, true);
 	//LSAPI_OSI_ThreadSleep(100);
+
+	LSAPI_PmuSetPowerLevel(OSI_MAKE_TAG('C', 'A', 'M', 'A'), 2800);
+	LSAPI_OSI_ThreadSleep(100);
+	LSAPI_PmuSwitchPower(OSI_MAKE_TAG('C', 'A', 'M', 'A'), true, true);
+	LSAPI_OSI_ThreadSleep(100);
+	
 	drvLcdClose();
 	status=drvLcdInit();
 	
@@ -237,3 +243,15 @@ void LCD_DataWrite_ST7735(unsigned char data){
 void LCD_DataRead_ST7735(unsigned char *reg, unsigned char *data, unsigned int readLen){
 	halGoudaReadData(reg, data, readLen);
 }
+
+void lcdBackList(char onoff){
+	bool write_value = onoff;
+	//onoff=1;
+	//LSAPI_Device_Write(LcdBlGpio, (void *)&write_value, 1);
+	if(onoff)LSAPI_PmuSwitchPower(OSI_MAKE_TAG('C', 'A', 'M', 'A'), onoff, true);
+	else LSAPI_PmuSwitchPower(OSI_MAKE_TAG('C', 'A', 'M', 'A'), onoff, false);
+	
+	
+}
+
+

+ 5 - 5
app/Interface/ListBox.c

@@ -175,7 +175,7 @@ void ListBoxShowBar(struct SUT_LIST_BOX *p,REV_ENUM rev)
 	}
 	
 	handle=p->handle%LIST_ROW;
-	y=LIST_TOPY+handle*16;
+	y=LIST_TOPY+handle*(24+LIST_SPACE);
 #ifdef NEED_ROOP
 	str=p->item[p->handle];
 	showHexBuf(str);
@@ -183,8 +183,8 @@ void ListBoxShowBar(struct SUT_LIST_BOX *p,REV_ENUM rev)
 	//截�并适当�.
 	StrIntercept(str,p->item[p->handle],LIST_ITEM_TEXT_LEN_MAX);
 #endif
-	if(REVERSED_YES==rev) guiFillRect(x,y-0,140,y+12,guiGetBackColor());
-	else guiFillRect(x,y-0,140,y+12,COLOR_STATUS_BAR);
+	if(REVERSED_YES==rev) guiFillRect(x,y-0,140,y+24,guiGetBackColor());
+	else guiFillRect(x,y-0,140,y+24,COLOR_STATUS_BAR);
 	if(REVERSED_NO==rev) guiShowStr(x,y,str, FONT_MODE_16X16, rev,guiGetBackColor(), COLOR_STATUS_BAR);
 	else guiShowStr(x,y,str, FONT_MODE_16X16, rev,guiGetBackColor(), COLOR_BLACK);
 }
@@ -205,8 +205,8 @@ void ListBoxShow(struct SUT_LIST_BOX *p)
 	{
 		if(i >= p->itemnum){
 			//y=MENU_TOPY+(i % MENU_ROW)*(12+MENU_SPACE);//16
-			y=LIST_TOPY+(i % LIST_ROW)*16;
-			guiClearArea(LIST_TOPX,y,LIST_BAR_LEN+18,16,guiGetBackColor());
+			y=LIST_TOPY+(i % LIST_ROW)*(24+LIST_SPACE);
+			guiClearArea(LIST_TOPX,y,LIST_BAR_LEN+20,(24+LIST_SPACE),guiGetBackColor());
 		}else{
 			ListBoxShowItem(p,i);
 		}

+ 3 - 2
app/Interface/ListBox.h

@@ -11,9 +11,10 @@
  #include "ListBoxSMS.h"
  
  #define LIST_TOPX          0
- #define LIST_TOPY          30				
+ #define LIST_TOPY          59				
  #define LIST_ROW           5	
- #define LIST_BAR_LEN       (108-16)//16为图标宽度
+ #define LIST_BAR_LEN       (240-20)//16为图标宽度
+ #define LIST_SPACE          4
  #define LIST_ITEM_NUM_MAX  10
  //#define LIST_ITEM_TEXT_LEN_MAX  17 //�项(行)显示字符串最大长度,��字节, 对于中文一个汉��2个字节,应调�适值��显示越�
  #define N 100

+ 3 - 4
app/Interface/Palace.c

@@ -74,6 +74,7 @@ void PalaceShow(SUT_PALACE *sutPalace,int flag,int index)
 		}
 		sutPalace->showAlreadyFlag=1;
 	}else{
+		guiFillRect(0, UI_STATUS_ITEM_Y, GLCD_WIDTH-1, UI_CONTENT_SHOW_Y-1, guiGetForeColor());//Çå³ýµÚ¶þÇø
 		guiShowCaption(0,sutPalace->Title[sutPalace->Index],UI_STATUS_BAR_HEIGH,guiGetBackColor(),guiGetForeColor(),FONT_MODE_16X16);
 		r=index/PALACE_COL;
 		c=index%PALACE_COL;
@@ -113,18 +114,16 @@ void PalaceInit(SUT_PALACE *sutPalace,const char **title , const char *prefix, c
 		//UI_Stack.OK_back=0;
 
 		
-	}else	if(getKeyValue()==MKEY_VALUE_DOWN){
+	}else if(getKeyValue()==MKEY_VALUE_DOWN){
 
 			sutPalace->Index=0;
 	}
-	
 	sutPalace->mainTile=mainInfo;
 	//sutPalace->Index=0;
-	
 	sutPalace->Title=title;
 	sutPalace->FileNamePrefix=prefix;
 	sutPalace->wide=(GLCD_WIDTH-PALACE_LEFT*2)/PALACE_COL; 
-	sutPalace->high=(GLCD_HEIGHT-PALACE_TOP)/PALACE_ROW;
+	sutPalace->high=(GLCD_HEIGHT-PALACE_TOP-UI_LOCATION_HEIGH)/PALACE_ROW;
 	if(sutPalace->wide>PALACE_ICON_WIDE)sutPalace->ox=(sutPalace->wide-PALACE_ICON_WIDE)/2;
 	else sutPalace->ox=0;
 	if(sutPalace->high>PALACE_ICON_HIGH)sutPalace->oy=(sutPalace->high-PALACE_ICON_HIGH)/2;

+ 1 - 1
app/Interface/Palace.h

@@ -14,7 +14,7 @@
 #define 	PALACE_COL	4	//有多少列图标
 #define   PALACE_NUM	(PALACE_ROW*PALACE_COL) //总共有多少个图标
 
-#define 	PALACE_TOP  25 //30
+#define 	PALACE_TOP  UI_CONTENT_SHOW_Y //30
 #define 	PALACE_LEFT 0
 #define 	PALACE_ICON_WIDE  40	//图标像素 宽 //40
 #define 	PALACE_ICON_HIGH  40//图标像素 高

+ 7 - 7
app/Interface/uiMenu.c

@@ -20,8 +20,8 @@ static void uiMenuShowItem(SUT_MENU *p, unsigned char handle, FONT_MODEENUM font
 	unsigned char y,hand;
 
 	hand=handle%UI_MENU_ROW;
-	y=UI_MENU_TOPY+hand*(12+UI_MENU_SPACE);
-	guiClearArea(0, y-1,UI_MENU_BAR_LEN,18,guiGetBackColor());
+	y=UI_MENU_TOPY+hand*(24+UI_MENU_SPACE);
+	guiClearArea(0, y-1,UI_MENU_BAR_LEN,24+4,guiGetBackColor());//18
 	guiShowStr(0,y,p->item[handle],fontMode, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
 }
 static void uiMenuShowBar(SUT_MENU *p, REV_ENUM rev, FONT_MODEENUM fontMode){
@@ -32,12 +32,12 @@ static void uiMenuShowBar(SUT_MENU *p, REV_ENUM rev, FONT_MODEENUM fontMode){
 	
 	x=0;
 	handle=p->handle%UI_MENU_ROW;
-	y=UI_MENU_TOPY+handle*(12+UI_MENU_SPACE);
+	y=UI_MENU_TOPY+handle*(24+UI_MENU_SPACE);
 	str=(char *)p->item[p->handle];
 	len=guiGetStrXLen(str, fontMode);
 	if(REVERSED_NO==rev) color=COLOR_STATUS_BAR;
 	else color=guiGetBackColor();
-	guiFillRect(x, y-2, x+UI_MENU_BAR_LEN, y+14, color);
+	guiFillRect(x, y-2, x+UI_MENU_BAR_LEN, y+24+UI_MENU_SPACE, color);//14
 	if(REVERSED_NO==rev) guiShowStr(x,y,str, fontMode, rev,guiGetBackColor(), COLOR_STATUS_BAR);
 	else guiShowStr(x,y,str, fontMode, rev,guiGetBackColor(), COLOR_BLACK);
 }
@@ -49,8 +49,8 @@ static void uiMenuShow(SUT_MENU *p, FONT_MODEENUM fontMode){
 
 	for(i=j;i<j+UI_MENU_ROW;i++){
 		if(i>=p->itemnum){
-			y=UI_MENU_TOPY+(i%UI_MENU_ROW)*(12+UI_MENU_SPACE);
-			guiClearArea(0, y-1, UI_MENU_BAR_LEN, 12+UI_MENU_SPACE,guiGetBackColor());
+			y=UI_MENU_TOPY+(i%UI_MENU_ROW)*(24+UI_MENU_SPACE);
+			guiClearArea(0, y-1, UI_MENU_BAR_LEN, 24+UI_MENU_SPACE,guiGetBackColor());
 		}else uiMenuShowItem(p,i, fontMode);
 	}
 	uiMenuShowBar(p,REVERSED_NO,fontMode);
@@ -60,7 +60,7 @@ static void uiMenuShow(SUT_MENU *p, FONT_MODEENUM fontMode){
 	if(p->page>0) guiDrawArrow(GLCD_WIDTH-5, UI_MENU_TOPY, 8, ARROW_UP, COLOR_STATUS_BAR);
 	else guiClearArea(x, UI_MENU_TOPY, 18,8+10,guiGetBackColor());
 
-	y=UI_MENU_TOPY+UI_MENU_ROW*(12+UI_MENU_SPACE);
+	y=UI_MENU_TOPY+UI_MENU_ROW*(24+UI_MENU_SPACE);
 	if(p->page<(p->pagenum-1)) guiDrawArrow(GLCD_WIDTH-5, y-2,8, ARROW_DOWN, COLOR_STATUS_BAR);
 	else guiClearArea(x,y-8-2,19,8,guiGetBackColor());
 }

+ 2 - 2
app/Interface/uiMenu.h

@@ -2,10 +2,10 @@
 #ifndef __UI_MENU_H__
 #define __UI_MENU_H__
 
-#define UI_MENU_TOPY 	29
+#define UI_MENU_TOPY 	59
 #define UI_MENU_ROW  	5
 #define UI_MENU_SPACE 	4
-#define UI_MENU_BAR_LEN	108
+#define UI_MENU_BAR_LEN	220
 
 #include "gui.h"
 #pragma pack(push)

+ 86 - 30
app/app.c

@@ -5,6 +5,10 @@
 #define APP_IDLE_TIME 3 		//如果POC已休眿APP没有操作一定秒数后休眠
 int keyNum=0;
 APP_DEF sutApp;
+void plusKeyNum(void){
+	keyNum++;
+}
+
 
 static void appDataInit(void){
 	memset((unsigned char *)&sutApp, 0, sizeof(APP_DEF));
@@ -352,6 +356,7 @@ static unsigned char gtModeCnt=0;
 		}
 	}
 	showKeyMessage(key,status);
+	//MSG_INFO(1,"key========%d",key);
 	if(status==0){//key free
 		switch(key){
 			case MKEY_VALUE_MIC_PTT:
@@ -450,6 +455,48 @@ static unsigned char gtModeCnt=0;
 	}
 }
 
+unsigned char encodeDirection=ENCODE_IDLE;
+unsigned char getEncodeStatus(void){
+	unsigned char tmp=encodeDirection;
+	if(encodeDirection!=ENCODE_IDLE) encodeDirection=ENCODE_IDLE;
+	return tmp;
+}
+#define PROCESS_ENCODE_TIME//是否要延时连续处理旋钮键值
+void encodeHandler(unsigned char encode){
+#ifdef PROCESS_ENCODE_TIME
+	static int64_t lastTimeMs=0;
+	int64_t timems=LSAPI_OSI_UpTime();
+	//添加下延时,0.5秒处理一次
+	if(timems-lastTimeMs<100) goto ENCODE_END;
+	lastTimeMs=timems;
+#endif
+	//处理键值
+	if(encode==ENCODE_SHUN) MSG_INFO(1, "[Encode]:shun");
+	else if(encode==ENCODE_NI) MSG_INFO(1, "[Encode]:ni");	
+	plusKeyNum();
+	backLightReset();
+	tryWakeupApp();
+	sutApp.timeOutCnt=0;
+//	if(sutUIstatus.Status==UIS_STANDBY){
+//		sutApp.groupKeyType=1;
+//		quickUiSwitch(UIS_MENU_GROUP_SEL);
+//	}else{
+//		encodeDirection=encode;
+//	}
+	if(encode==ENCODE_SHUN){
+		sutApp.voluemUpdate=1;
+	}else if(encode==ENCODE_NI){
+		sutApp.voluemUpdate=2;
+	}
+#ifdef PROCESS_ENCODE_TIME
+	ENCODE_END:
+#endif
+	encodeReleased();
+}
+
+
+
+
 /////////////////////////////事件发送接叿//////////////////////////
 void threadSendEvent(LSAPI_OSI_Thread_t *threadID, unsigned int id, unsigned int param1,unsigned int param2,unsigned int param3){
 	LSAPI_OSI_Event_t pEventSend;
@@ -463,13 +510,15 @@ void threadSendEvent(LSAPI_OSI_Thread_t *threadID, unsigned int id, unsigned int
 //////////////////////////////其它处理接口//////////////////////////
 static void adcRead(unsigned int interval){
 	static unsigned char earStatus=0xff;
-	unsigned char tmpEar;
+
 	int32_t chargeVol;
 	static unsigned short cnt=0,lcnt=0;
 	static unsigned int laSiVbat;
 	unsigned int adcValueTmp;
 	if(++cnt<(1000/interval)) return;//1秒读一次ADC即可
 	cnt=0;
+	
+
 	LSAPI_SYS_BattGetVol(&adcValueTmp);
 	sutApp.g_iBAT=adcValueTmp/10;
 	if(sutApp.g_iBAT == laSiVbat){
@@ -485,26 +534,15 @@ static void adcRead(unsigned int interval){
 	}
 	//读取充电/耳机接入状态	//不知道为啥是LSAPI_Device_ADC_CHANNEL_3,而不是LSAPI_Device_ADC_CHANNEL_1
 	chargeVol=LSAPI_Device_AdcGetChannelVolt(LSAPI_Device_ADC_CHANNEL_3, LSAPI_Device_ADC_SCALE_3V233);
-/*
-	if(chargeVol<=800){//耳机插入,没在充电
-		tmpEar=0;
-		sutApp.chargeStatus=0;
-	}else if(chargeVol<=1000){//耳机插入,正在充电
-		tmpEar=0;
-		sutApp.chargeStatus=1;
-	}else if(chargeVol<=1400){//耳机拔出,没在充电
-		tmpEar=1;
+
+	if(chargeVol<=2000){//�,没在充电
+		//tmpEar=0;
 		sutApp.chargeStatus=0;
-	}else{//耳机拔出,正在充电
-		tmpEar=1;
+	}else{//正在充电
+		//tmpEar=1;
 		sutApp.chargeStatus=1;
 	}
-	if(tmpEar != earStatus){//耳机状态发生变化
-		earStatus=tmpEar;
-		tmpEar += 0x30;
-		proHeadSet(&tmpEar);
-	}
-	*/
+	
 
 }
 /*处理UI操作*/
@@ -568,10 +606,7 @@ void ShouHuProcess(int interva)
 	//static int LastAtt_state=0;
 	int  tmepAtt_state=0;
 	static int cnt=0;
-
 	if(sutApp.gtMode==1||sutApp.cardStatus==0)return;
-	
-
 	if(++cnt<(1000/interva)) return;
 	cnt=0;	
 	nRet=LSAPI_NET_GetGprsAttState(&tmepAtt_state);
@@ -669,6 +704,21 @@ static void paProCtl(void);
 static void subTimerCtl(unsigned char sleep_or_not);
 static void configureVoiceParam(void);
 
+
+
+static void Sectick(unsigned int interval){
+	static unsigned short cnt=0,lcnt=0;
+	if(++cnt<(3*1000/interval)) return;//1秒读一次ADC即可
+	cnt=0;
+	
+	MSG_INFO(1,"charge[%d]",sutApp.chargeStatus);
+	Ble_SendAT(Ble_IO2AT,sizeof(Ble_IO2AT));
+
+
+}
+
+
+
 void appRun(void){
 	
 	char cnt=0;
@@ -691,9 +741,8 @@ void appRun(void){
 		LSAPI_OSI_ThreadSleep(1000);
 	}//是否检测超时?
 	MSG_INFO(1, "app loop start");
-	
-      msgAtSend("AT+AUDCH=0,0\r\n");//此机型只使用主通道
-   
+    msgAtSend("AT+AUDCH=0,0\r\n");//此机型只使用主通道
+   	Ear_Judge();
 	//设置一下TTS语音速度
 	msgAtSend("AT+LSHTTSPARAM=3000,106,100\r\n");//设置TTS参数
 	msgAtSend("ATI\r\n");//查询模块版本
@@ -714,9 +763,8 @@ void appRun(void){
 		if(sutApp.audioReconfig==0) break;
 	}
 #endif
-
 	adcRead(APP_SUB_DIV_TIME);//在开机播放前设置下SPK
-	splVolumeSet(newPara.spkVol*10);//更新音量
+	splVolumeSet(newPara.spkVol*10);//更新音量	
 	backLightReset();
 	if(newPara.ttsMessage[0]!=0){
 		if(newPara.ttsCodeType==0){
@@ -737,11 +785,15 @@ void appRun(void){
 	msgAtSend("AT+POC=000000010101\r\n");
 	pwrModeSetCmd(newPara.pwrMode);//心跳间隔  ZZD_PWRMODE
 	ModemSetZZDPocPara();
+	
 	osiPmWakeUnlock(App_osiPmSource_t);
+	BLE_Open();//d  打开蓝牙
  for(;;){
+ 	
 	#ifdef CONFIG_AUDIO_AFTER_INIT
 		audioParaCheck();
 	#endif
+	
 		volUpdateNeed();
 		ledsProCtl();
 		adcRead(APP_SUB_DIV_TIME);
@@ -751,16 +803,21 @@ void appRun(void){
 		ShouHuProcess(APP_SUB_DIV_TIME);
 		pocProCtl(APP_SUB_DIV_TIME);
 		NoteCheck(APP_SUB_DIV_TIME);
-		uiTimeOutToStandby(0, APP_SUB_DIV_TIME);
+		
+		Sectick(APP_SUB_DIV_TIME);
+		
+		//uiTimeOutToStandby(0, APP_SUB_DIV_TIME);
 		HookGroupUserInfo();
 		HookVolToutCheck();
+//		gpsProCtl(APP_SUB_DIV_TIME);
+//		GpsInternalChange(APP_SUB_DIV_TIME);	
 		//IncomingSMS();
 		LogoutOutTimeCheck(APP_SUB_DIV_TIME);
 		if(isSleepReady()==0) LSAPI_OSI_ThreadSleep(APP_TASK_SLEEP_TIME);
-	
 		else if(sutApp.gtMode==0){//正常模式下可以休眿
+		
 			MSG_WARN(1, "APP SLEEP");
-			uiTimeOutToStandby(1, APP_SUB_DIV_TIME);
+		//	uiTimeOutToStandby(1, APP_SUB_DIV_TIME);
 			stopKeyTimer();
 			subTimerCtl(1);//切换为休眠状态定时器
 			sutApp.appStatus=1;
@@ -775,7 +832,6 @@ void appRun(void){
 				lcdBackLightApi(1);
 			}
 			sutApp.forceUiFlash=1;
-			
 			sutApp.appStatus=0;
 			subTimerCtl(0);//切换为唤醒状态定时器
 			MSG_WARN(1, "APP WAKEUP");

+ 1 - 0
app/app.h

@@ -41,6 +41,7 @@ typedef struct{
 	unsigned char pocParaDone:2;//poc�数是�检测完�
 	unsigned char cardStatus:1;//
 	unsigned char gtMode:1;//GT模�
+	unsigned char TbMode:1;//À¶ÑÀ͸´«
 	unsigned char gtTMode:1;//TM模�
 	unsigned char PocGetTime:1;
 	unsigned char pocPpp:1;

+ 143 - 22
app/board.c

@@ -1,10 +1,15 @@
 
 #include "includes.h"
 
+
+
+//LSAPI_OSI_Timer_t *BleTimer_t=NULL;
+
+void gpioConfigInput();
+
 //////////////////////封装一下AT接口/////////////////////////////////
 void msgAtSend(char *at){
 
-
 	ModemSendAt(at);
 	
 }
@@ -99,6 +104,9 @@ static void lcdsInit(void){
 //////////////////gpio及定时器/////////////////////////////
 LSAPI_OSI_Timer_t *pKeytimer_t=NULL;
 LSAPI_OSI_Timer_t *pBackLightTimer_t=NULL;
+
+
+
 bool pkeyTimerCtl=false;
 unsigned short keyStatus=0;
 unsigned short getKeyValue(){return keyStatus;}
@@ -132,20 +140,18 @@ static void Timeroutcallback(void *param){
 	//EarDlyCheck();
 	if(pkeyTimerCtl==true) LSAPI_OSI_TimerStart(pKeytimer_t,KEY_TIMER_TICK);
 }
-LSAPI_Device_t *LcdBlGpio;
+
 LSAPI_Device_t *SpkGpio;
 LSAPI_Device_t *PwrHoldGpio;
 static LSAPI_Device_t * RedGpio = NULL;
 static LSAPI_Device_t * GreenGpio = NULL;
 
-#define RED_GPIO_ID 23
-#define GREEN_GPIO_ID 18
-#define SPK_GPIO_ID 19
-#define PWR_HOLD_ID 22
-#define LCD_BAK_ID 22
-
 
 
+//#define RED_GPIO_ID 23
+//#define GREEN_GPIO_ID 18
+#define SPK_GPIO_ID 19
+#define PWR_HOLD_ID 22
 void gpioConfigOutput(void){
 	bool write_value = false;
 	LSAPI_GpioConfig_t gpioConfig = {0};
@@ -158,28 +164,108 @@ void gpioConfigOutput(void){
 	GreenGpio=LSAPI_Device_LedCreate(LS_LED_2);
 	if(LSAPI_Device_Open(RedGpio)==false){
 	
-		MSG_INFO(1,"RedGpio----ok");
+		MSG_INFO(1,"RedGpio---fail");
 	}
 	if(LSAPI_Device_Open(GreenGpio)==false){
-		MSG_INFO(1,"GreenGpio----ok");
+		MSG_INFO(1,"GreenGpio----fail");
 	}
 	
 	gpioConfig.id = SPK_GPIO_ID;
-    	SpkGpio = LSAPI_Device_GPIOCreate(&gpioConfig);
+    SpkGpio = LSAPI_Device_GPIOCreate(&gpioConfig);
 	gpioConfig.id = PWR_HOLD_ID;
-  	  PwrHoldGpio = LSAPI_Device_GPIOCreate(&gpioConfig);
-	gpioConfig.id = LCD_BAK_ID;
-   	 LcdBlGpio = LSAPI_Device_GPIOCreate(&gpioConfig);
+  	PwrHoldGpio = LSAPI_Device_GPIOCreate(&gpioConfig);
 	 
 	LSAPI_Device_Open(SpkGpio);
 	LSAPI_Device_Write(SpkGpio, (void *)&write_value, 1);
 	LSAPI_Device_Open(PwrHoldGpio);
 	write_value=true;//启动成功后,默认把电源给锁稳
 	LSAPI_Device_Write(PwrHoldGpio, (void *)&write_value, 1);
-	LSAPI_Device_Open(LcdBlGpio);
-	LSAPI_Device_Write(LcdBlGpio, (void *)&write_value, 1);
+	gpioBleConfigOutput();
+	gpioConfigInput();
+	
+}
+
+#define ENCODE1_GPIO_ID   18
+#define ENCODE2_GPIO_ID   23
+static LSAPI_Device_t * Encode1Ctl = NULL;
+static LSAPI_Device_t * Encode2Ctl = NULL;
+
+
+unsigned char g_iEncode=ENCODE_IDLE;
+unsigned char g_iStatus=0;
+unsigned char g_iLastStatus=0;
+void encodeReleased(void){
+	g_iEncode=ENCODE_IDLE;
+}
+
+LSAPI_GpioIntrCB_t inputCB_Encode(void *ctx){
+	bool encode1,encode2;
+	bool encodeValid1=false,encodeValid2=false;
+
+	if(NULL != Encode1Ctl){
+		if (1 == LSAPI_Device_Read(Encode1Ctl, (void *)&encode1, 1)) encodeValid1=true;
+	}
+	if(NULL != Encode2Ctl){
+		if (1 == LSAPI_Device_Read(Encode2Ctl, (void *)&encode2, 1)) encodeValid2=true;
+	}
+	
+	if(encodeValid1==true){
+		if(encode1==true) g_iStatus |= (1<<0);
+		else g_iStatus &= ~(1<<0);
+	}
+	
+	if(encodeValid2==true){
+		if(encode2==true) g_iStatus |= (1<<1);
+		else g_iStatus &= ~(1<<1);
+	}
+
+	MSG_INFO(0, "g_iStatus======%d",g_iStatus);
+	
+	if(encodeValid1==true || encodeValid2==true){
+		if(g_iEncode==ENCODE_IDLE){
+			switch(g_iStatus){
+				case 0:
+					
+					if(g_iLastStatus==1) g_iEncode=ENCODE_NI;
+					else if(g_iLastStatus==2) g_iEncode=ENCODE_SHUN;
+					else if(g_iLastStatus==0) g_iEncode=ENCODE_SHUN;
+					break;
+				case 3:
+					if(g_iLastStatus==1) g_iEncode=ENCODE_SHUN;
+					else if(g_iLastStatus==2) g_iEncode=ENCODE_NI;
+					else if(g_iLastStatus==3) g_iEncode=ENCODE_NI;
+					break;
+			}
+			if(g_iEncode) encodeSendEvent(g_iEncode);
+		}
+		MSG_INFO(0, "\r\n",g_iEncode);//这个不要去掉,否则按一个方向,偶尔还是会反向一下
+		g_iLastStatus=g_iStatus;
+	}
 }
 
+
+void gpioConfigInput(){
+	
+	LSAPI_GpioConfig_t gpioConfig = {0};
+	gpioConfig.mode = LS_GPIO_INPUT;
+	gpioConfig.intr_enabled=true;
+	gpioConfig.intr_level=false;
+	gpioConfig.rising=true;
+	gpioConfig.falling=true;
+	gpioConfig.cb_ctx = NULL;
+	
+	gpioConfig.id = ENCODE1_GPIO_ID;
+	gpioConfig.cb=inputCB_Encode;
+    Encode1Ctl = LSAPI_Device_GPIOCreate(&gpioConfig);
+	LSAPI_Device_Open(Encode1Ctl);
+	gpioConfig.id = ENCODE2_GPIO_ID;
+	gpioConfig.cb=inputCB_Encode;
+    Encode2Ctl = LSAPI_Device_GPIOCreate(&gpioConfig);
+	LSAPI_Device_Open(Encode2Ctl);
+
+}
+
+
 void pwrHoldCtl(bool onoff){
 	bool write_value = onoff;
 	LSAPI_Device_Write(PwrHoldGpio, (void *)&write_value, 1);
@@ -196,10 +282,11 @@ void spkCtl(bool onoff){
 	bool write_value = onoff;
 	LSAPI_Device_Write(SpkGpio, (void *)&write_value, 1);
 }
-void lcdBackList(char onoff){
-	bool write_value = onoff;
-	LSAPI_Device_Write(LcdBlGpio, (void *)&write_value, 1);
-}
+//void lcdBackList(char onoff){
+//	bool write_value = onoff;
+//	//LSAPI_Device_Write(LcdBlGpio, (void *)&write_value, 1);
+//	LSAPI_PmuSwitchPower(OSI_MAKE_TAG('C', 'A', 'M', 'D '), onoff, false);
+//}
 void startBackLightTimer(int time){
 	if(NULL==pBackLightTimer_t) return;
 	LSAPI_OSI_TimerStart(pBackLightTimer_t,time);
@@ -213,6 +300,10 @@ static void gpioTask(void *param){
 	
 	if(NULL == pBackLightTimer_t) pBackLightTimer_t = LSAPI_OSI_TimerCreate(LSAPI_OSI_ThreadCurrent(), backLightCb, NULL);
 	if(NULL == pBackLightTimer_t) MSG_WARN(1,"backlight timer init failed");
+
+//	if(NULL == BleTimer_t) BleTimer_t = LSAPI_OSI_TimerCreate(LSAPI_OSI_ThreadCurrent(), bleCb, NULL);
+//	if(NULL == BleTimer_t) MSG_WARN(1,"ble timer init failed");
+	
 	startKeyTimer();
 	gpioConfigOutput();
 	uioStatusInit();
@@ -223,6 +314,7 @@ static void gpioTask(void *param){
 		param3=event.param3;
 		
 		if(event.id==OHPOC_EVENT_KEY_NOR) keyHandler((unsigned short)param1,(unsigned char)param2);
+		else if(event.id==OHPOC_EVENT_ENCODE) encodeHandler((unsigned short)param1);
 		
 	}
 }
@@ -236,6 +328,10 @@ void keySendEvent(unsigned short key, unsigned char keyType){
 	threadSendEvent(gGpioTd,OHPOC_EVENT_KEY_NOR, key,keyType,NULL);
 	tryWakeupApp();
 }
+void encodeSendEvent(unsigned short encode){
+	threadSendEvent(gGpioTd,OHPOC_EVENT_ENCODE, encode,NULL,NULL);
+	tryWakeupApp();
+}
 
 //////////////////按键实始化//////////////////////////
 #define POWER_KEY_PRESSED_TIMEOUT (3000)
@@ -270,6 +366,30 @@ void keyPadInit(void){
 	LSAPI_Device_KeypadCreate(_lsKeyCB, key);
 }
 
+
+
+static LSAPI_Device_t *vibrator = NULL;
+static void ls_vibrator_Init(void){
+	LSAPI_VibrConfig_t cfg = {		
+		.type = LS_VIBR_PMIC,	
+		};	
+		vibrator = LSAPI_Device_VibrCreate(&cfg);	
+		if (!vibrator)	{	
+		LSAPI_Log_Debug("ls_vibrator_demo: create vibrator faild!\n");	
+		}	else	
+		{		
+		LSAPI_Log_Debug("ls_vibrator_demo: start test vibrator!!!\n");		
+		}
+}
+
+void VibCtrl(bool statue){
+
+	if(statue)LSAPI_Device_Open(vibrator);
+	else LSAPI_Device_Close(vibrator);	
+
+}
+
+
 //////////////////////////PA控制接口(外放使用免提,耳机FM)///////////////////////////
 //8735
 //#define PA_MODE_AB
@@ -322,7 +442,8 @@ void beepStop(void){
 void boardInit(void){
 	if(logPortInit()==true) MSG_INFO(1, "Log ok");
 	gpiosInit();
-	CreateSerialAtThead();//铏氭嫙涓插彛
+	CreateSerialAtThead();//铏氭嫙涓插彛	
+	CreateUART1_Thread();
 	lcdsInit();
 	keyPadInit();
-}
+}

+ 17 - 2
app/board.h

@@ -2,8 +2,10 @@
 #ifndef __BOARD_H_
 #define __BOARD_H_
 #include "stdbool.h"
+#include "lsapi_os.h"
 
-#define MAX_SPK_VOL 8
+
+#define MAX_SPK_VOL 10
 
 #define KEY_TIMER_TICK 30
 #define KS_ALL_IDLE 0
@@ -22,6 +24,14 @@ typedef enum{
 	MKEY_VALUE_NONE=15//不使用
 }MKEY_VALUEENUM;
 
+typedef enum{
+	ENCODE_IDLE,
+	ENCODE_SHUN=1,
+	ENCODE_NI=2
+}ENCODE_DIRECTION;
+
+
+
 #define MKEY_VALUE_PTT  (1<<MKEY_VALUE_3)
 #define MKEY_VALUE_F1   (1<<MKEY_VALUE_6)
 #define MKEY_VALUE_F2  	(1<<MKEY_VALUE_5)
@@ -33,7 +43,6 @@ typedef enum{
 #define MKEY_VALUE_DOWN (1<<MKEY_VALUE_13)  //菜单键/下一项键
 #define MKEY_VALUE_ESC 	(1<<MKEY_VALUE_0)
 
-#define MKEY_VALUE_UP  	(1<<MKEY_VALUE_NONE)
 
 #define MKEY_VALUE_CB_GT (MKEY_VALUE_MENU | MKEY_VALUE_ESC)
 #define MKEY_VALUE_CB_IP (MKEY_VALUE_ESC | MKEY_VALUE_DOWN)
@@ -60,11 +69,17 @@ void boardInit(void);
 void usbOutPut(unsigned char *info, int len);
 unsigned int getAppTick(void);
 void keySendEvent(unsigned short key, unsigned char keyType);
+void encodeSendEvent(unsigned short encode);
+
 void stopKeyTimer(void);
 void paControl(bool status);
 unsigned short getKeyValue();
 void startBackLightTimer(int time);
 void pttBeepStart(bool isMicReq);
 void beepStart(int freq);
+void VibCtrl(bool statue);
+//extern LSAPI_OSI_Timer_t *BleTimer_t;
+
+
 
 #endif

+ 69 - 0
app/bsp.c

@@ -85,6 +85,75 @@ void ModemSendAt(char *p)
 	innerInfo(p,len);
 }
 
+/*********************************************************************
+Ó²¼þUART1 DET
+********************************************************************/
+static LSAPI_Device_t *gDeviceUart = NULL;
+
+void Ble_SendAT(char *data,int len){
+
+	LSAPI_Device_Write(gDeviceUart, data, len);
+
+}
+
+
+static void UART1_Init(void){
+	
+	uint8_t r_buffer[256] = {0x00};	
+	unsigned ShowBuf[100]={0};
+	unsigned char temp[3]={0};
+	int ret,i = 0;	
+	LSAPI_Device_UartConfig_t uart_cfg = {	
+	.name = LSAPI_DEV_UART1,
+	.baud = 9600,	
+	.format = LSAPI_DEVICE_FORMAT_8N1,	
+	.parity = LSAPI_DEVICE_PARITY_ODD,	};
+	uart_cfg.event_cb = NULL ;//prvMenuUartEvtCb;	uart_cfg.event_cb_ctx = NULL;
+	//gUartWRTd;	
+	gDeviceUart = LSAPI_Device_UartCreate(&uart_cfg);	
+	if(gDeviceUart == NULL)	{	
+		MSG_INFO(1,"uart: creat uart faild!");	
+		return ;	
+		}	
+	ret = LSAPI_Device_Open(gDeviceUart);	
+	if(!ret){	
+		MSG_INFO(1,"uart: Open uart Failed");	
+		return ;	
+	}	
+	while (1) 
+	{	
+		int read_avail_size = LSAPI_Device_ReadAvail(gDeviceUart);	
+		if (read_avail_size > 0) {	
+			int read_size = LSAPI_Device_Read(gDeviceUart, r_buffer, sizeof(r_buffer));		
+			if (read_size > 0)		
+			{		
+				for(i=0;i<read_size;i++){
+					snprintf(temp,3,"%02x",r_buffer[i]);
+					strcat(ShowBuf,temp);
+
+				}
+				usbOutPut(ShowBuf,strlen(ShowBuf));
+				//MSG_INFO(1,"uart1: read: {%s}", ShowBuf);
+				//BLE_at_process(r_buffer,read_size);	
+		    }	
+		}		
+	}
+	
+}
+
+
+
+
+void CreateUART1_Thread(void)
+{
+
+	if(NULL==LSAPI_OSI_ThreadCreate("uart1", UART1_Init, NULL, LSAPI_OSI_PRIORITY_NORMAL, 1024*2, 4))
+		MSG_INFO(1,"uart1 thread create err");
+		LSAPI_OSI_ThreadSleep(500);	
+
+}
+
+
 
 
 

+ 3 - 0
app/bsp.h

@@ -4,6 +4,9 @@
 
 void ModemSendAt(char *p);
 void CreateSerialAtThead(void);
+void Ble_SendAT(char *data,int len);
+void CreateUART1_Thread();
+
 
 
 #endif

+ 105 - 74
app/gpsCtl.c

@@ -1,100 +1,131 @@
 
 #include "includes.h"
 SUT_MESS sutMess;
-GPS_DEF gpsInfo;
+//GPS_DEF gpsInfo;
 const unsigned short GPS_TimeTable[GPS_TABLE_NUM]={0,5,10,15,30,60,120,300};
 void gpsDataInit(void){
-	memset((unsigned char *)&sutMess, 0, sizeof(SUT_MESS));
-	memset((unsigned char *)&gpsInfo, 0, sizeof(GPS_DEF));
+	//memset((unsigned char *)&sutMess, 0, sizeof(SUT_MESS));
+	memset((unsigned char *)&sutGpsInfo, 0, sizeof(SUT_GPS_INF));
+	GPSInit();
+	GpsTimeUpdate();
 }
 unsigned short getGPSTimeValue(unsigned char index){
 	return GPS_TimeTable[index];
-}	
-static unsigned char gpsCheckCnt=1;//榛樿�寮€鏈烘煡璇�竴娆�
+}
+
+static unsigned char gpsCheckCnt=1;//榛樿�寮€鏈烘煡璇�竴娆?
 void gpsCheckInfo(void){//鏌ヨ�GPS淇℃伅
 	gpsCheckCnt++;
 }
-/*鎺у埗鏌ヨ�GPS鐘舵€
+/*鎺у埗鏌ヨ�GPS鐘舵€?
 dly:鎺ュ彛琚�皟鐢ㄧ殑棰戠巼锛屽崟浣峬s*/
+
+
+
+/*
+AT+POC=11000032322e32333231312c3130332e3132333132312c352c32302c362e302c0425242
+52600
+其中 32322e32333231312c3130332e3132333132312c352c32302c362e302c042524252600 表示
+北纬 22.23211 东经 103.123121 速度 5km/h,方向角 20 度,精度因子为 6.0,共有 4 颗卫星,
+信噪比分别为 37db, 36db, 37db, 38db。
+
+*/
 void gpsProCtl(int dly){
+
 	static unsigned short cnt=0;
-	if(sutApp.gtMode!=0) return;//GT妯″紡鍚庝笉鍐嶆煡璇�
-	if(getAppObjStatus(ASLEEP_POC)==0) return;//POC浼戠湢鏃讹紝涓嶅彂鎸囦护
-	if(++cnt<(5*1000/dly) && gpsCheckCnt==0) return;
+	unsigned char GpsDatabuf[100];
+	unsigned char restohex[20];
+	unsigned char destohex[40];
+	
+	
+
+	if(GPS_TimeTable[newPara.gpsTimeIndex]==0)return;
+	
+	if(sutApp.gtMode!=0) return;
+	if(++cnt<(GPS_TimeTable[newPara.gpsTimeIndex]*1000/dly) && gpsCheckCnt==0) return;
 	cnt=0;
-	//浠ヤ笅5绉掓搷浣滀竴娆�
-	msgAtSend("AT+CGPS\r\n");
+	if(sutGpsInfo.g_GpsEnable)msgToModem("AT+GPSRD=\"ALL\"\r\n");
 	gpsCheckCnt=0;
+	if(sutGpsInfo.isGpsValid){
+		snprintf(restohex,sizeof(restohex),"%d.%06d,%d.%06d",sutGpsInfo.latitue/1000000,sutGpsInfo.latitue%1000000,sutGpsInfo.longitue/1000000,sutGpsInfo.longitue%1000000);
+
+		AscStrTurnHexStr(restohex,destohex);
+		snprintf(GpsDatabuf,sizeof(GpsDatabuf),"AT+POC=110000%s2c352c32302c362e302c042524252600\r\n",destohex);
+		msgAtSend(GpsDatabuf);
+		
+		//MSG_INFO(1,GpsDatabuf);
+	}	
+		
 }
 
 /*
 +CGPS:bf,ba,gf,[Lat],[Long]
 bf:0 閮ㄦ爣鍏抽棴 1 閮ㄦ爣鎵撳紑
-ba:0 閮ㄦ爣鏈�壌鏉� 1 閮ㄦ爣宸查壌鏉�
+ba:0 閮ㄦ爣鏈�壌鏉?1 閮ㄦ爣宸查壌鏉?
 gf:0 GPS鍏抽棴 1 GPS鎵撳紑
-Lat: 宸插畾浣嶆墠鏈夛紝瀹氫綅绾�害 搴�.搴�(宸叉斁澶�1000000)
-Long: 宸插畾浣嶆墠鏈夛紝瀹氫綅缁忓害 搴�.搴�(宸叉斁澶�1000000)
+Lat: 宸插畾浣嶆墠鏈夛紝瀹氫綅绾�害 搴?搴?宸叉斁澶?000000)
+Long: 宸插畾浣嶆墠鏈夛紝瀹氫綅缁忓害 搴?搴?宸叉斁澶?000000)
 msg=bf,ba,gf,[Lat],[Long]
 */
 void proGpsMsg(char *msg){
-	int i;
-	unsigned char needCloseGps=0;
-	unsigned char needOpenGps=0;
-	unsigned char dotNum=0,lach=0;
-	unsigned char bblF=0,bbAuth=0,gpsF=0;
-	unsigned int Lat=0,Long=0;
-	//鑾峰彇閮ㄦ爣寮€鍏崇姸鎬�
-	bblF=atoi(msg);
-	for(i=0;i<strlen(msg);i++){
-		if(msg[i]==',') dotNum++;
-		if(lach==','){
-			if(dotNum==1) bbAuth=atoi(&msg[i]);
-			else if(dotNum==2) gpsF=atoi(&msg[i]);
-			else if(dotNum==3) Lat=atoi(&msg[i]);
-			else if(dotNum==4) Long=atoi(&msg[i]);
-		}
-		lach=msg[i];
-	}
-	//浼樺厛鏍规嵁gpsEnable鎵撳紑鎴栧叧闂璆PS
-	if(newPara.gpsEnable==0){
-		needCloseGps=1;
-	}else{
-		//鏍规嵁GPS涓婁紶闂撮殧锛屾墦寮€/鍏抽棴GPS
-		if(newPara.gpsTimeIndex<GPS_TABLE_NUM){
-			if(GPS_TimeTable[newPara.gpsTimeIndex]==0) needCloseGps=1;
-			else needOpenGps=1;
-		}
-	}
-	if(needCloseGps!=0 && gpsF!=0){
-		MSG_INFO(1, "Shut GPS");
-		msgAtSend("AT+SGPS=0\r\n");
-		gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
-	}
-	if(needOpenGps!=0 && gpsF==0){
-		MSG_INFO(1, "Open GPS");
-		msgAtSend("AT+SGPS=1\r\n");
-		gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
-	}
-	//鏍规嵁bubiaoEnable鎵撳紑鎴栧叧闂璆PS
-	if(newPara.bubiaoEnable==0){
-		if(bblF!=0){
-			MSG_INFO(1, "Shut BUBIAO");
-			msgAtSend("AT+BUBIAO=0\r\n");
-			gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛			
-		}
-	}else{
-		if(bblF==0){
-			MSG_INFO(1, "Open BUBIAO");
-			msgAtSend("AT+BUBIAO=1\r\n");
-			gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
-		}
-	}
-	//鏇存柊鍊�
-	gpsInfo.bblF=bblF;
-	gpsInfo.bbAuth=bbAuth;
-	gpsInfo.Lat=Lat;
-	gpsInfo.Long=Long;
-	gpsInfo.update++;
-	if(Lat==0 && Long==0) gpsInfo.gpsLocated=0;
-	else gpsInfo.gpsLocated=1;
+//	int i;
+//	unsigned char needCloseGps=0;
+//	unsigned char needOpenGps=0;
+//	unsigned char dotNum=0,lach=0;
+//	unsigned char bblF=0,bbAuth=0,gpsF=0;
+//	unsigned int Lat=0,Long=0;
+//	//鑾峰彇閮ㄦ爣寮€鍏崇姸鎬?
+//	bblF=atoi(msg);
+//	for(i=0;i<strlen(msg);i++){
+//		if(msg[i]==',') dotNum++;
+//		if(lach==','){
+//			if(dotNum==1) bbAuth=atoi(&msg[i]);
+//			else if(dotNum==2) gpsF=atoi(&msg[i]);
+//			else if(dotNum==3) Lat=atoi(&msg[i]);
+//			else if(dotNum==4) Long=atoi(&msg[i]);
+//		}
+//		lach=msg[i];
+//	}
+//	//浼樺厛鏍规嵁gpsEnable鎵撳紑鎴栧叧闂璆PS
+//	if(newPara.gpsEnable==0){
+//		needCloseGps=1;
+//	}else{
+//		//鏍规嵁GPS涓婁紶闂撮殧锛屾墦寮€/鍏抽棴GPS
+//		if(newPara.gpsTimeIndex<GPS_TABLE_NUM){
+//			if(GPS_TimeTable[newPara.gpsTimeIndex]==0) needCloseGps=1;
+//			else needOpenGps=1;
+//		}
+//	}
+//	if(needCloseGps!=0 && gpsF!=0){
+//		MSG_INFO(1, "Shut GPS");
+//		msgAtSend("AT+SGPS=0\r\n");
+//		gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
+//	}
+//	if(needOpenGps!=0 && gpsF==0){
+//		MSG_INFO(1, "Open GPS");
+//		msgAtSend("AT+SGPS=1\r\n");
+//		gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
+//	}
+//	//鏍规嵁bubiaoEnable鎵撳紑鎴栧叧闂璆PS
+//	if(newPara.bubiaoEnable==0){
+//		if(bblF!=0){
+//			MSG_INFO(1, "Shut BUBIAO");
+//			msgAtSend("AT+BUBIAO=0\r\n");
+//			gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛			
+//		}
+//	}else{
+//		if(bblF==0){
+//			MSG_INFO(1, "Open BUBIAO");
+//			msgAtSend("AT+BUBIAO=1\r\n");
+//			gpsCheckInfo();//妫€鏌ヤ笅鏄�惁鎴愬姛
+//		}
+//	}
+//	//鏇存柊鍊?
+//	gpsInfo.bblF=bblF;
+//	gpsInfo.bbAuth=bbAuth;
+//	gpsInfo.Lat=Lat;
+//	gpsInfo.Long=Long;
+//	gpsInfo.update++;
+//	if(Lat==0 && Long==0) gpsInfo.gpsLocated=0;
+//	else gpsInfo.gpsLocated=1;
 }

+ 4 - 11
app/gpsCtl.h

@@ -16,23 +16,16 @@ typedef struct{
 	unsigned char codeType;
 }SUT_MESS;
 
-typedef struct{
-	unsigned char bblF:1;//部标是否打开
-	unsigned char bbAuth:1;//部标鉴权状态
-	unsigned char gpsF:1;//GPS是否打开
-	unsigned char gpsLocated:1;//GPS是否定位
-	unsigned char update:1;//定位经纬度刷新
-	unsigned int Lat;//定位伟度
-	unsigned int Long;//定位经度
-}GPS_DEF;
+
 #pragma pack(pop)
 
 extern SUT_MESS sutMess;
-extern GPS_DEF gpsInfo;
+
+
+extern const unsigned short GPS_TimeTable[GPS_TABLE_NUM];
 
 void gpsDataInit(void);
 unsigned short getGPSTimeValue(unsigned char index);
 void gpsProCtl(int dly);
-void proGpsMsg(char *msg);
 void gpsCheckInfo(void);
 #endif

+ 2 - 0
app/includes.h

@@ -21,6 +21,7 @@
 
 #include "ohpoc.h"
 #include "bsp.h"
+#include "ble.h"
 #include "language.h"
 
 
@@ -34,6 +35,7 @@
 #include "uiEntry.h"
 #include "uiBlock.h"
 #include "gpsCtl.h"
+#include "GpsData.h"
 #include "message.h"
 #include "Palace.h"
 #include "uiMenu.h"

+ 3 - 1
app/log/log.c

@@ -11,7 +11,6 @@ void ologShow(char level, char fa, char * fmt, ...){
 	char buf[10];
 	int n;
 
-
 	if(sutApp.gtMode!=0)return;
 	va_start(va, fmt);
 	n=vsnprintf(info, sizeof(info), fmt, va);
@@ -30,3 +29,6 @@ void ologShow(char level, char fa, char * fmt, ...){
 	if(fa) usbOutPut("\r\n", 2);
 }
 
+
+
+

+ 1 - 0
app/ohpoc.h

@@ -28,6 +28,7 @@
 #define OHPOC_EVENT_USB 	(OHPOC_EVENT_BASE+1)
 #define OHPOC_EVENT_KEY_NOR (OHPOC_EVENT_BASE+2)
 #define OHPOC_EVENT_MAIN 	(OHPOC_EVENT_BASE+3)
+#define OHPOC_EVENT_ENCODE  (OHPOC_EVENT_BASE+4)
 
 char *getOhpocVersion(void);
 char *getOhpocModle(void);

+ 11 - 2
app/setting.c

@@ -11,7 +11,12 @@ void cmdSetting(char *msg){
 	unsigned long psn;
 
 	if(sutApp.gtMode==0) return;
-	
+
+
+	if(sutApp.TbMode!=0){
+		Ble_SendAT(msg,strlen(msg)-2);
+		return;
+	}
 	if(sutApp.gtTMode!=0){
 		msgAtSends(msg, strlen(msg));
 		return;
@@ -21,7 +26,11 @@ void cmdSetting(char *msg){
 		snprintf(info, sizeof(info), "TM Mode:OK\r\n");
 		needFeedSms=1;
 		sutApp.gtTMode=1;
-	}else if(msgCmp(msg, "GT+PWM=")){
+	}else if(msgCmp(msg, "GT+TB")){
+
+		sutApp.gtMode=1;
+	}
+ else if(msgCmp(msg, "GT+PWM=")){
 //		if(msg[7]>='0' && msg[7]<='9') beepStart(atoi(msg+7));
 	}else if(msgCmp(msg, "GT+RPID")){
 		snprintf(info, sizeof(info), "GT+RPID:PSN=%lu;\r\n", sutApp.UserInfo.psn);

+ 59 - 64
app/uiBlock.c

@@ -5,30 +5,30 @@
 //显示信号强度
 static void ShowSingle(int CSQ){
 	unsigned short x=SIGNAL_ICON_X;
-	unsigned short y=2;
+	unsigned short y=3;
 	if(sutApp.pocPpp == 0) guiShowBmp(x,y,"/ext/prepack/Single.bmp");
 	else guiShowBmp(x,y,"/ext/prepack/SingleOK.bmp");
 	//11 3格
-	x += 7;
+	x += 10;
 	if(CSQ<5 || CSQ==99){
-		guiClearRect(x,y+1,x+10,y+9,COLOR_STATUS_BAR);
+		guiClearRect(x,y+1,x+14,y+17,COLOR_STATUS_BAR);
 	}else if(CSQ<11){
-		guiDrawVLine(x+2,y+8,x,y,guiGetBackColor());
-		guiClearRect(x+2,y+1,x+10,y+9,COLOR_STATUS_BAR);
+		guiDrawVLine(x+2,y+16,x,y,guiGetBackColor());
+		guiClearRect(x+4,y+1,x+14,y+17,COLOR_STATUS_BAR);
 	}else if(CSQ<18){
-		guiDrawVLine(x+2,y+8,x,y,guiGetBackColor());
-		guiDrawVLine(x,y+8,x+3,y,guiGetBackColor());
-		guiClearRect(x+6,y+1,x+10,y+9,COLOR_STATUS_BAR);
+		guiDrawVLine(x+2,y+16,x,y,guiGetBackColor());
+		guiDrawVLine(x,y+16,x+4,y,guiGetBackColor());
+		guiClearRect(x+8,y+1,x+14,y+17,COLOR_STATUS_BAR);
 	}else if(CSQ<22){
-		guiDrawVLine(x+2,y+8,x,y,guiGetBackColor());
-		guiDrawVLine(x,y+8,x+3,y,guiGetBackColor());
-		guiDrawVLine(x-2,y+8,x+6,y,guiGetBackColor());
-		guiClearRect(x+9,y+1,x+10,y+9,COLOR_STATUS_BAR);
+		guiDrawVLine(x+2,y+16,x,y,guiGetBackColor());
+		guiDrawVLine(x,y+16,x+4,y,guiGetBackColor());
+		guiDrawVLine(x-2,y+16,x+8,y,guiGetBackColor());
+		guiClearRect(x+11,y+1,x+14,y+17,COLOR_STATUS_BAR);
 	}else{
-		guiDrawVLine(x+2,y+8,x,y,guiGetBackColor());
-		guiDrawVLine(x,y+8,x+3,y,guiGetBackColor());
-		guiDrawVLine(x-2,y+8,x+6,y,guiGetBackColor());
-		guiDrawVLine(x-4,y+8,x+9,y,guiGetBackColor());	
+		guiDrawVLine(x+2,y+16,x,y,guiGetBackColor());
+		guiDrawVLine(x,y+16,x+4,y,guiGetBackColor());
+		guiDrawVLine(x-2,y+16,x+8,y,guiGetBackColor());
+		guiDrawVLine(x-4,y+16,x+12,y,guiGetBackColor());	
 	}
 
 }
@@ -46,31 +46,24 @@ static void Show_Net(unsigned char s_netshowvalue){
 static void gpsIconShow(char flash){
 	typedef struct{
 		unsigned char located:1;
-		unsigned char auth:1;
 		unsigned char gpsF:1;
 	}TMP_GPS_DEF;
 	static TMP_GPS_DEF tmpGps;
 	unsigned short x=GPS_ICON_X,y=0;
-	return;
-	if(tmpGps.located==gpsInfo.gpsLocated && tmpGps.auth==gpsInfo.bbAuth && tmpGps.gpsF==gpsInfo.gpsF && flash==0) return;
+
+	if(tmpGps.located==sutGpsInfo.isGpsValid && tmpGps.gpsF==sutGpsInfo.isGpsWork&& flash==0) return;
 	guiClearRect(x,y,x+GPS_ICON_WX,y+11,COLOR_STATUS_BAR);
-	if(gpsInfo.gpsF==0){//GPS未打开时
-		if(gpsInfo.bbAuth==1) guiShowBmp(x,y,"/ext/prepack/GPS3.bmp");//已鉴权
-	}else{//GPS已打开
-		if(gpsInfo.bbAuth==1) guiShowBmp(x,y,"/ext/prepack/GPS1.bmp");//已鉴权
-		else if(gpsInfo.bbAuth==1) guiShowBmp(x,y,"/ext/prepack/GPSA.bmp");//未鉴权
-		if(gpsInfo.gpsLocated==1) guiShowBmp(x+10,y,"/ext/prepack/GPS2.bmp");//已定位
-	}
-	tmpGps.located=gpsInfo.gpsLocated;
-	tmpGps.auth=gpsInfo.bbAuth;
-	tmpGps.gpsF=gpsInfo.gpsF;
-}
-static void ShowCardType(char card){
-	unsigned short x= CARD_ICON_X;
-	unsigned short y=3;
-	if(card==0) guiShowBmp(x, y, "SIM1.bmp");
-	else if(card==1) guiShowBmp(x, y, "SIM2.bmp");
+	if(sutGpsInfo.isGpsWork==1){//GPS打开时
+		 guiShowBmp(x,y,"/ext/prepack/GPSA.bmp");
+		if(sutGpsInfo.isGpsValid==1) {
+			guiShowBmp(x+14,y,"/ext/prepack/GPSL1.bmp");//已定位
+			guiShowBmp(x+20,y,"/ext/prepack/GPSL2.bmp");//已定位
+		}
+	}
+	tmpGps.located=sutGpsInfo.isGpsValid;
+	tmpGps.gpsF=sutGpsInfo.isGpsWork;
 }
+
 //显示电量
 static void ShowBatttery(int bat,unsigned int exeInterval){
 	static unsigned int flashCnt=0;
@@ -78,7 +71,11 @@ static void ShowBatttery(int bat,unsigned int exeInterval){
 	static unsigned short cnt=0;
 	unsigned short x=BAT_ICON_X+1,y=2,h=y+4;
 	unsigned char batweight=10;
+	int color;
 
+	if(sutApp.chargeStatus)color=COLOR_GREEN;
+	else color=guiGetBackColor();
+	
 	if(bat<WARN_PWR_LEVEL){//请充电
 		if(++cnt<(800/exeInterval)) return;
 		cnt=0;
@@ -96,25 +93,25 @@ static void ShowBatttery(int bat,unsigned int exeInterval){
 		return;
 	}else if(bat<355){//340<x<=355 1格   //test 355
 		guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");//3
-		guiDrawVLine(h,h+batweight,x+29,y+2,guiGetBackColor());
+		guiDrawVLine(h,h+batweight,x+29,y+2,color);
 	}
 	else if(bat<375){//355<x<=375 2格
 		guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");
-		guiDrawVLine(h,h+batweight,x+22,y+2,guiGetBackColor());
-		guiDrawVLine(h,h+batweight,x+29,y+2,guiGetBackColor());//5.12
+		guiDrawVLine(h,h+batweight,x+22,y+2,color);
+		guiDrawVLine(h,h+batweight,x+29,y+2,color);//5.12
 	}
 	else if(bat<400){//375<x<=400 3格
 		guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");
-		guiDrawVLine(h,h+batweight,x+15,y+2,guiGetBackColor());
-		guiDrawVLine(h,h+batweight,x+22,y+2,guiGetBackColor());
-		guiDrawVLine(h,h+batweight,x+29,y+2,guiGetBackColor());//5.12
+		guiDrawVLine(h,h+batweight,x+15,y+2,color);
+		guiDrawVLine(h,h+batweight,x+22,y+2,color);
+		guiDrawVLine(h,h+batweight,x+29,y+2,color);//5.12
 	}
 	else{//>=400 4格
 		guiShowBmp(x,y,"/ext/prepack/VBAT1.bmp");
-		guiDrawVLine(h,h+batweight,x+8,y+2,guiGetBackColor());
-		guiDrawVLine(h,h+batweight,x+15,y+2,guiGetBackColor());
-		guiDrawVLine(h,h+batweight,x+22,y+2,guiGetBackColor());
-		guiDrawVLine(h,h+batweight,x+29,y+2,guiGetBackColor());//5.12
+		guiDrawVLine(h,h+batweight,x+8,y+2,color);
+		guiDrawVLine(h,h+batweight,x+15,y+2,color);
+		guiDrawVLine(h,h+batweight,x+22,y+2,color);
+		guiDrawVLine(h,h+batweight,x+29,y+2,color);//5.12
 	}
 	sutApp.lowPwrWarn=0;
 }
@@ -162,6 +159,7 @@ void uiShowStatusBar(char flash,unsigned int exeInterval){
 	static unsigned char lastPPPStatus;
 	static int siCSQ;
 	static int siVbat;
+	static signed char charging=-1;//充电
 	static unsigned short batFirstShow=0;
 	static char cardType=0;
 	char tempFlash=flash;
@@ -178,29 +176,24 @@ void uiShowStatusBar(char flash,unsigned int exeInterval){
 		siCSQ=sutApp.g_iCSQ;
 		ShowSingle(sutApp.g_iCSQ);
 	}
-	/*
-	//显示卡选项
-	if(tempFlash || cardType != sutApp.simSel){
-		cardType=sutApp.simSel;
-		ShowCardType(cardType);
-	}
-	*/
-	
+
 	//显示2G/3G/4G
 	if(tempFlash || s_netshowvalue!=netshowvalue){
 		s_netshowvalue=netshowvalue;
+		
+		s_netshowvalue=4;
+		
 		Show_Net(s_netshowvalue);
 	}
-	//显示GPS是否正常及鉴权情况
-	//gpsInfo.gpsLocated=1;
-	//gpsInfo.bbAuth=1;
-	//gpsInfo.gpsF=1;
+	//显示GPS是否正常
+	sutGpsInfo.isGpsValid=1;
+	sutGpsInfo.isGpsWork=1;
 	gpsIconShow(tempFlash);
 	//电量显示
-
-	if(tempFlash || siVbat!=sutApp.g_iBAT || sutApp.g_iBAT < WARN_PWR_LEVEL){
+	if(tempFlash || siVbat!=sutApp.g_iBAT || sutApp.g_iBAT < WARN_PWR_LEVEL||charging!=sutApp.chargeStatus){
 		if(sutApp.g_iBAT>=0){
 			siVbat=sutApp.g_iBAT;
+			charging=sutApp.chargeStatus;
 			ShowBatttery(sutApp.g_iBAT,exeInterval);
 		}
 	}
@@ -211,9 +204,10 @@ void uiShowStatusBar(char flash,unsigned int exeInterval){
 	//时间显示
 	ShowTime(tempFlash,exeInterval);
 	//显示耳机状态
+	//sutApp.earLev=1;
 	ShowEarStatus(tempFlash);
 	//显示键盘锁状态
-	ShowKeyLocStatus(tempFlash);
+	//ShowKeyLocStatus(tempFlash);
 }
 /****************************状态栏显示部分结束***********************************/
 
@@ -299,6 +293,7 @@ void uiShowMainInterface(char status,unsigned int exeInterval){
 	unsigned char moveFlash=0;
 	static unsigned char voice=0;
 	
+	
 	//提示解锁
 	if(sutApp.lockShow!=0){
 		if(lockStep==0){
@@ -973,13 +968,13 @@ static locationXYFlash(char flash){
 	char buf[50];
 	unsigned short y=UI_CONTENT_SHOW_Y+2;
 	
-	if(gpsInfo.update==0 && flash==0) return;
-	gpsInfo.update=0;
+//	if(gpsInfo.update==0 && flash==0) return;
+//	gpsInfo.update=0;
 	guiClearRect(0, y,GLCD_WIDTH-1, y+12+5+12,guiGetBackColor());
-	snprintf(buf, sizeof(buf), "纬度 S:%d.%05d",gpsInfo.Lat/1000000,gpsInfo.Lat%1000000);
+	snprintf(buf, sizeof(buf), "纬度 S:%d.%05d",sutGpsInfo.latitue/1000000,sutGpsInfo.latitue%1000000);
 	guiShowStr(30,y, buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
 	y+=12+5;
-	snprintf(buf, sizeof(buf), "经度 W:%d.%05d",gpsInfo.Long/1000000,gpsInfo.Long%1000000);
+	snprintf(buf, sizeof(buf), "经度 W:%d.%05d",sutGpsInfo.longitue/1000000,sutGpsInfo.longitue%1000000);
 	guiShowStr(30,y, buf,FONT_MODE_16X16, REVERSED_NO, COLOR_BLACK, guiGetBackColor());
 }
 /*****************************定位设置部分结束*********************************/

+ 8 - 11
app/uiBlock.h

@@ -2,23 +2,20 @@
 #ifndef __UI_BLOCK_H__
 #define __UI_BLOCK_H__
 
-#define SIGNAL_ICON_X 0
-#define SIGNAL_ICON_WX (7+10)
+#define SIGNAL_ICON_X 6
+#define SIGNAL_ICON_WX (9+20)
 
-#define CARD_ICON_X (SIGNAL_ICON_X+SIGNAL_ICON_WX+2)
-#define CARD_ICON_WX 7
+#define NET_ICON_X (SIGNAL_ICON_X+SIGNAL_ICON_WX+2)
+#define NET_ICON_WX (32)
 
-#define NET_ICON_X (CARD_ICON_X+CARD_ICON_WX+1)
-#define NET_ICON_WX (16)
-
-#define GPS_ICON_X (NET_ICON_X+NET_ICON_WX)//(NET_ICON_X+NET_ICON_WX+1)
-#define GPS_ICON_WX 0//(18)
+#define GPS_ICON_X (NET_ICON_X+NET_ICON_WX+2)//(NET_ICON_X+NET_ICON_WX+1)
+#define GPS_ICON_WX (24)
 
 #define SMS_ICON_X (GPS_ICON_X+GPS_ICON_WX)//(GPS_ICON_X+GPS_ICON_WX+2)
 #define SMS_ICON_WX 0//(8)
 
 #define TIME_ICON_X (SMS_ICON_X+SMS_ICON_WX+1)
-#define TIME_ICON_WX (5*8)
+#define TIME_ICON_WX (5*16)
 
 #define EAR_ICON_X (TIME_ICON_X+TIME_ICON_WX+1)
 #define EAR_ICON_WX (11)
@@ -27,7 +24,7 @@
 #define LOCK_ICON_WX 8
 
 
-#define BAT_ICON_WX (21)
+#define BAT_ICON_WX (38)
 #define BAT_ICON_X (GLCD_WIDTH-BAT_ICON_WX-1)
 
 

+ 7 - 1
app/uiEntry.c

@@ -183,6 +183,12 @@ void uiResponse(unsigned int exeInterval){
 						msgAtSend(buf);
 					}
 					break;
+				case MKEY_VALUE_DOWN:
+						Ble_Match_IOCTR(1);
+					break;
+
+
+					
 			}	
 			break;
 		/****************1¼¶:Ö÷²Ëµ¥½çÃæÏìÓ¦***************/
@@ -313,7 +319,7 @@ void uiMenuShowBottomIndacitor(const char *infoLF, const char *infoRI){
 		guiShowStr(x, y,infoLF, FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR,guiGetBackColor());
 	}
 	if(NULL != infoRI){
-		len=strlen(infoRI)*8;
+		len=strlen(infoRI)*12;//8
 		x=GLCD_WIDTH-1-len;
 		guiShowStr(x, y,infoRI, FONT_MODE_16X16, REVERSED_NO,COLOR_STATUS_BAR,guiGetBackColor());
 	}

+ 10 - 2
app/uiEntry.h

@@ -66,15 +66,23 @@ extern UI_STACKDEF uiStack;
 
 //状态栏高度及所在行
 #define UI_STATUS_BAR_Y			0
-#define UI_STATUS_BAR_HEIGH		24//
+#define UI_STATUS_BAR_HEIGH		25//
 //对讲标语显示栏高度及所在行
 #define UI_STATUS_ITEM_Y		UI_STATUS_BAR_HEIGH //24
 
 #define UI_STATUS_ITEM_HEIGH	25 //
 
+
+//底部信标
+#define UI_LOCATION_HEIGH	   24//
+#define UI_LOCATION_SHOW_Y		(GLCD_HEIGHT-UI_LOCATION_HEIGH-2)//214
+
+
 //底部按键栏高度及所在行
 #define UI_BOTTOM_BUTTON_HEIGH	24//
-#define UI_BOTTOM_SHOW_Y		(GLCD_HEIGHT-UI_BOTTOM_BUTTON_HEIGH-2)//214
+#define UI_BOTTOM_SHOW_Y		(UI_LOCATION_SHOW_Y-UI_LOCATION_HEIGH)//214
+
+
 
 //对讲状态显示区高度及所在行
 #define UI_CONTENT_SHOW_Y		(UI_STATUS_ITEM_Y+UI_STATUS_ITEM_HEIGH) //49

+ 31 - 26
hpocapp.c

@@ -27,8 +27,7 @@ void appimg_exit(void){
 void handsetStatusOutput(unsigned char status){
 
  char info[30];
-// return;
-
+ 
  snprintf(info,sizeof(info),"+HEADSET:%d\r\n",status);
  MSG_INFO(0,"%s",info);
  
@@ -37,15 +36,13 @@ void handsetStatusOutput(unsigned char status){
  switch(status){
 	 case 0://HEADSET CONNECT
 		 sutApp.earLev=1;
- 
-		 msgAtSend("AT+AUDCH=1,3\r\n");
+		// msgAtSend("AT+AUDCH=1,3\r\n");
 		 sutApp.pcant=2;
 		 break;//HEADSET DISCONNECTED
 		 
 	 case 1:
 		 sutApp.earLev=0;
-		 msgAtSend("AT+AUDCH=0,0\r\n");
-	 
+		// msgAtSend("AT+AUDCH=0,0\r\n");
 		 sutApp.pcant=4;
 		 break;//HEADSET BTN PRESS
 	 case 2:
@@ -105,17 +102,17 @@ void handSetThread(void *param){
 	 
 	   if(status == LSAPI_HEADSET_DISCONNECT)
 	   {
-		   MSG_INFO(1,"headset_disconnect");	
+		  // MSG_INFO(1,"headset_disconnect");	
 		   handsetStatusOutput(1);
 	   }
 	   else if(status == LSAPI_HEADSET_CONNECT)
 	   {
-		   MSG_INFO(1," headset_connect");
+		   //MSG_INFO(1," headset_connect");
 		   handsetStatusOutput(0);
 	   }
 	   else
 	   {
-		   MSG_INFO(1,"unknow state");
+		   //MSG_INFO(1,"unknow state");
 	   }
 		FristHeadDet=1;
 	 	break;
@@ -187,30 +184,38 @@ void startSubTask(void){
 		MSG_ERR(1, "sub task failed");
 	}else MSG_ERR(1, "sub task ok");
 }
+
+//		MSG_INFO(1,"redLedCtl ----1");
+//		redLedCtl(1);
+//	    LSAPI_OSI_ThreadSleep(3000);
+//		MSG_INFO(1,"redLedCtl ----0");
+//		redLedCtl(0);
+//		  LSAPI_OSI_ThreadSleep(3000);
+//		MSG_INFO(1,"greenLedCtl ----1");
+//		greenLedCtl(1);
+//	       LSAPI_OSI_ThreadSleep(3000);
+//		MSG_INFO(1,"greenLedCtl ----0");
+//		greenLedCtl(0);
+//	    LSAPI_OSI_ThreadSleep(3000);
+
 static void mainTask(void *param){
 	LSAPI_OSI_ThreadSleep(5000);
+	handSetInit();
 	ToneInit();
 	dataInit();
 	boardInit();
 	startSubTask();//线程会调用外设接口,必须在boardInit后启动
-	//guiTest();
-	while(1){
-		MSG_INFO(1,"redLedCtl ----1");
-		redLedCtl(1);
-	       LSAPI_OSI_ThreadSleep(1000);
-		MSG_INFO(1,"redLedCtl ----0");
-		redLedCtl(0);
-		  LSAPI_OSI_ThreadSleep(1000);
-		MSG_INFO(1,"greenLedCtl ----1");
-		greenLedCtl(1);
-	       LSAPI_OSI_ThreadSleep(1000);
-		MSG_INFO(1,"greenLedCtl ----0");
-		greenLedCtl(0);
-	       LSAPI_OSI_ThreadSleep(1000);
-
-	}
 
-    	appRun();//应用主程序(pt)
+//	guiTest();
+//	while(1){
+//		MSG_INFO(1,"VIBCTL ----1");
+//		VibCtrl(1);
+//		LSAPI_OSI_ThreadSleep(3000);
+//		MSG_INFO(1,"VIBCTL ----0");
+//		VibCtrl(0);
+//		LSAPI_OSI_ThreadSleep(3000);	
+//	}
+  	appRun();//应用主程序(pt)
 }
 /*
 appimg_enter