-#ifndef _BL6XX3_FW_H81_ST_H_
-#define _BL6XX3_FW_H81_ST_H_
+#ifndef _BL6XX3_H_
+#define _BL6XX3_H_
// SoftVersion: TouchTools1.16.018
// ComputerName: SZ-BL-A-0131
-// OperatorTime: 2023-07-07 15:16:37:211
+// OperatorTime: 2023-11-07 09:03:59:526
//const unsigned char bin_pjid_arr[] = {0};
//const unsigned char bin_fwid_arr[] = {4};
-//const unsigned char bin_arg_id_arr[] = {4};
+//const unsigned char bin_arg_id_arr[] = {2};
extern const unsigned char fwbin[];
0x03,0x70,0x40,0x1C,0x52,0x1E,0xEA,0xD4,0x0B,0x78,0x49,0x1C,0x03,0x70,0x40,0x1C, //0x01e0~0x01ef .p@.R....xI..p@.
0x01,0x2A,0xE4,0xD4,0x09,0x78,0x01,0x70,0xF8,0xBD,0x70,0x47,0x70,0x47,0x70,0x47, //0x01f0~0x01ff .*...x.p..pGpGpG
0x63,0x68,0x70,0x5F,0x63,0x66,0x67,0x5F,0x6D,0x61,0x72,0x6B,0x00,0x00,0x00,0x48, //0x0200~0x020f chp_cfg_mark...H
-0x38,0x31,0x2D,0x4B,0x37,0x2D,0x59,0x44,0x54,0x2D,0x31,0x37,0x47,0x46,0x31,0x36, //0x0210~0x021f 81-K7-YDT-17GF16
-0x33,0x38,0x00,0x06,0x03,0x06,0x0C,0x07,0x07,0x08,0x04,0x04,0x00,0xA9,0x00,0x47, //0x0220~0x022f 38.............G
+0x38,0x31,0x2D,0x49,0x37,0x2D,0x48,0x43,0x2D,0x49,0x37,0x31,0x33,0x32,0x41,0x31, //0x0210~0x021f 81-I7-HC-I7132A1
+0x00,0x00,0x00,0x06,0x03,0x06,0x0C,0x07,0x07,0x08,0x04,0x02,0x00,0xA9,0x00,0x47, //0x0220~0x022f ...............G
0x00,0x69,0x64,0x3A,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, //0x0230~0x023f .id:ffffffffffff
0x00,0x00,0x00,0x00,0x00,0x46,0x65,0x62,0x20,0x32,0x33,0x20,0x32,0x30,0x32,0x33, //0x0240~0x024f .....Feb.23.2023
0x00,0x31,0x36,0x3A,0x30,0x30,0x3A,0x33,0x37,0x00,0x00,0x00,0x00,0x61,0x64,0x64, //0x0250~0x025f .16:00:37....add
-0x3A,0x01,0x01,0x2D,0x04,0x06,0x02,0x01,0x01,0x01,0x00,0x01,0x01,0x02,0x00,0x00, //0x0260~0x026f :..-............
+0x3A,0x01,0x01,0x2D,0x01,0x06,0x02,0x01,0x01,0x01,0x00,0x01,0x01,0x02,0x00,0x00, //0x0260~0x026f :..-............
0xC8,0x00,0x00,0x01,0x00,0x03,0x01,0xC8,0x00,0x02,0x00,0xF0,0x00,0x18,0x01,0x90, //0x0270~0x027f ................
-0x01,0x5E,0x01,0x3C,0x00,0xE0,0x01,0x05,0x07,0x0A,0x04,0x04,0x02,0x02,0x03,0x55, //0x0280~0x028f .^.<...........U
-0x46,0x4F,0x00,0x08,0x0C,0x28,0x19,0x21,0x03,0x22,0x00,0x80,0x00,0x10,0x1E,0x00, //0x0290~0x029f FO...(.!."......
+0x01,0x5E,0x01,0x3C,0x00,0xE0,0x01,0x05,0x07,0x0A,0x06,0x04,0x02,0x02,0x03,0x55, //0x0280~0x028f .^.<...........U
+0x46,0x4F,0x00,0x08,0x0C,0x28,0x19,0x21,0x02,0x20,0x00,0x80,0x00,0x10,0x1E,0x00, //0x0290~0x029f FO...(.!........
0x10,0x78,0x08,0x08,0x02,0x02,0x96,0x05,0x14,0xA0,0x00,0x01,0x00,0x0A,0x03,0x01, //0x02a0~0x02af .x..............
-0x04,0x2C,0x01,0x05,0x58,0x02,0x64,0x00,0x02,0x0F,0x0F,0x00,0x01,0x1A,0xA0,0x00, //0x02b0~0x02bf .,..X.d.........
+0x05,0x2C,0x01,0x05,0x7C,0x01,0x64,0x00,0x02,0x0F,0x0F,0x00,0x01,0x16,0xA0,0x01, //0x02b0~0x02bf .,..|.d.........
0x40,0x1F,0x00,0x50,0x72,0x6F,0x56,0x65,0x72,0x4B,0x65,0x79,0x00,0x00,0x01,0xFF, //0x02c0~0x02cf @..ProVerKey....
-0xFE,0x0A,0x00,0x00,0x04,0x05,0x04,0x05,0x0F,0x0F,0xD0,0x07,0x46,0x00,0x00,0x0F, //0x02d0~0x02df ............F...
-0x02,0x34,0x00,0x34,0x00,0xDC,0x00,0xDC,0x00,0xB8,0x01,0xB8,0x01,0x00,0x00,0x3C, //0x02e0~0x02ef .4.4...........<
-0x3C,0x3D,0x3C,0x5A,0x00,0xBE,0x00,0xA4,0x01,0x00,0x00,0x00,0xA0,0x0F,0x3C,0x00, //0x02f0~0x02ff <=<Z..........<.
-0x78,0x00,0x78,0x00,0xB4,0x00,0xB4,0x00,0xF0,0x00,0x0A,0x00,0xA0,0x0F,0xC8,0x00, //0x0300~0x030f x.x.............
-0xA0,0x0F,0x2C,0x01,0xA0,0x0F,0x90,0x01,0xA0,0x0F,0x0E,0x0C,0x0A,0x0A,0x0A,0x0A, //0x0310~0x031f ..,.............
-0x0A,0x0A,0x0A,0x0A,0x23,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x1C,0x1B,0x1A,0x19,0x18, //0x0320~0x032f ....#"!.........
+0xFE,0x0C,0x00,0x00,0x04,0x05,0x04,0x05,0x0F,0x00,0xD0,0x07,0x39,0x01,0x02,0x01, //0x02d0~0x02df ............9...
+0x01,0x2D,0x00,0x2D,0x00,0xDB,0x00,0xDB,0x00,0xB6,0x01,0xB6,0x01,0x00,0x00,0x34, //0x02e0~0x02ef .-.-...........4
+0x3C,0x34,0x3C,0x3F,0x00,0xB6,0x00,0xA4,0x01,0x01,0x00,0x00,0xA0,0x0F,0x3C,0x00, //0x02f0~0x02ff <4<?..........<.
+0x78,0x00,0x78,0x00,0xB4,0x00,0xB4,0x00,0xF0,0x00,0xC8,0x00,0xF4,0x01,0xC8,0x00, //0x0300~0x030f x.x.............
+0xA0,0x0F,0x2C,0x01,0xA0,0x0F,0x90,0x01,0xA0,0x0F,0x03,0x05,0x0A,0x0A,0x0A,0x0A, //0x0310~0x031f ..,.............
+0x0A,0x0A,0x0E,0x12,0x23,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x1C,0x1B,0x1A,0x19,0x18, //0x0320~0x032f ....#"!.........
0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0F,0x0E,0x0D,0x0C,0x0B,0x0A,0x09,0x08, //0x0330~0x033f ................
0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x0340~0x034f ................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x0350~0x035f ................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, //0x0360~0x036f ................
-0x0A,0x0A,0x04,0x02,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8, //0x0370~0x037f ................
+0x0A,0x0A,0x0A,0x06,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8, //0x0370~0x037f ................
0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8, //0x0380~0x038f ................
0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x0390~0x039f ................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x03a0~0x03af ................
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x14,0x00,0xF6,0xFF,0x00, //0x03b0~0x03bf ................
-0x01,0x03,0x02,0x05,0x04,0x07,0x06,0x0B,0x0D,0x64,0x64,0x64,0x64,0x64,0x64,0x64, //0x03c0~0x03cf .........ddddddd
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFB,0xFF,0x0F,0x00,0x00, //0x03b0~0x03bf ................
+0x09,0x02,0x0A,0x03,0x0B,0x04,0x0D,0x05,0x08,0x06,0x07,0x64,0x64,0x64,0x64,0x64, //0x03c0~0x03cf ...........ddddd
0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x08,0x32,0x32,0x32,0x32, //0x03d0~0x03df ddddddddddd.2222
0x00,0x00,0x64,0x00,0x82,0x00,0xA0,0x00,0x78,0x00,0x64,0x03,0x96,0x00,0x01,0x00, //0x03e0~0x03ef ..d.....x.d.....
-0x16,0x1E,0x00,0x00,0x00,0x06,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE8, //0x03f0~0x03ff ................
-0x03,0x64,0x00,0x64,0x00,0x58,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x0400~0x040f .d.d.X..........
+0x16,0x1E,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE8, //0x03f0~0x03ff ................
+0x03,0x64,0x00,0xC8,0x00,0x58,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x0400~0x040f .d...X..........
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x0410~0x041f ................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x0420~0x042f ................
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0x0430~0x043f ................
0x0B,0x0D,0x00,0x00 //0x0000~0xffffffff
};
-const unsigned char bin_pj_info_arr[][20] = {"H81-K7-YDT-17GF1638"};
+const unsigned char bin_pj_info_arr[][20] = {"H81-I7-HC-I7132A1"};
const unsigned char bin_pjid_arr[] = {0};
const unsigned char bin_fwid_arr[] = {4};
-const unsigned char bin_arg_id_arr[] = {4};
-const unsigned short checksum_arr[] = {0x2427};
-const unsigned short checksum_1k_arr[] = {0x6c0a};
+const unsigned char bin_arg_id_arr[] = {2};
+const unsigned short checksum_arr[] = {0x22f4};
+const unsigned short checksum_1k_arr[] = {0x6ad7};
const unsigned short bin_argstr_id_arr[] = {0x0047};
#define FW_SIZE 0x6594
static lcd_context g_lcd_ctx;
const static struct spi_write_t spi_init_watch[] = {
+#if DRV_PROJECT_Z5_I7
+ { SPI_WRITE_CMD, 0x11, 0 },
+ { SPI_WRITE_DELAY,120, 0 },
+
+ { SPI_WRITE_CMD, 0xE7, 1 },//2通道
+ { SPI_WRITE_DATA,0x10, 0 },
+
+ { SPI_WRITE_CMD, 0x36,1 },
+ { SPI_WRITE_DATA , 0x00,0 },
+
+ { SPI_WRITE_CMD, 0x3A,1 },
+ { SPI_WRITE_DATA , 0x05,0 },
+
+ { SPI_WRITE_CMD, 0xB2,5 },
+ { SPI_WRITE_DATA , 0x0B,0 },
+ { SPI_WRITE_DATA , 0x0B,0 },
+ { SPI_WRITE_DATA , 0x00,0 },
+ { SPI_WRITE_DATA , 0x33,0 },
+ { SPI_WRITE_DATA , 0x33,0 },
+
+ { SPI_WRITE_CMD, 0xB7,1 },
+ { SPI_WRITE_DATA , 0x11,0 },
+
+ { SPI_WRITE_CMD, 0xBB,1 },
+ { SPI_WRITE_DATA , 0x2F,0 },
+
+ { SPI_WRITE_CMD, 0xC0,1 },
+ { SPI_WRITE_DATA , 0x2C,0 },
+
+ { SPI_WRITE_CMD, 0xC2,1 },
+ { SPI_WRITE_DATA , 0x01,0 },
+
+ { SPI_WRITE_CMD, 0xC3,1 },
+ { SPI_WRITE_DATA , 0x0D,0 },
+
+ { SPI_WRITE_CMD, 0xC4,1 },
+ { SPI_WRITE_DATA , 0x20,0 }, //VDV, 0x20:0v
+
+ { SPI_WRITE_CMD, 0xC6,1 },
+ { SPI_WRITE_DATA , 0x13,0 }, //0x13:60Hz
+
+ { SPI_WRITE_CMD, 0xD0,2 },
+ { SPI_WRITE_DATA , 0xA7,0 },
+ { SPI_WRITE_DATA , 0xA1,0 },
+
+ { SPI_WRITE_CMD, 0xD0,2 },
+ { SPI_WRITE_DATA , 0xA4,0 },
+ { SPI_WRITE_DATA , 0xA1,0 },
+
+ { SPI_WRITE_CMD, 0xD6,1 },
+ { SPI_WRITE_DATA , 0xA1,0 }, //sleep in后,gate输出为GND
+
+ { SPI_WRITE_CMD, 0xE0,14 },
+ { SPI_WRITE_DATA , 0xF0,0 },
+ { SPI_WRITE_DATA , 0x04,0 },
+ { SPI_WRITE_DATA , 0x07,0 },
+ { SPI_WRITE_DATA , 0x09,0 },
+ { SPI_WRITE_DATA , 0x07,0 },
+ { SPI_WRITE_DATA , 0x13,0 },
+ { SPI_WRITE_DATA , 0x25,0 },
+ { SPI_WRITE_DATA , 0x33,0 },
+ { SPI_WRITE_DATA , 0x3C,0 },
+ { SPI_WRITE_DATA , 0x34,0 },
+ { SPI_WRITE_DATA , 0x10,0 },
+ { SPI_WRITE_DATA , 0x10,0 },
+ { SPI_WRITE_DATA , 0x29,0 },
+ { SPI_WRITE_DATA , 0x32,0 },
+
+ { SPI_WRITE_CMD, 0xE1,14 },
+ { SPI_WRITE_DATA , 0xF0,0 },
+ { SPI_WRITE_DATA , 0x05,0 },
+ { SPI_WRITE_DATA , 0x08,0 },
+ { SPI_WRITE_DATA , 0x0A,0 },
+ { SPI_WRITE_DATA , 0x09,0 },
+ { SPI_WRITE_DATA , 0x05,0 },
+ { SPI_WRITE_DATA , 0x25,0 },
+ { SPI_WRITE_DATA , 0x32,0 },
+ { SPI_WRITE_DATA , 0x3B,0 },
+ { SPI_WRITE_DATA , 0x3B,0 },
+ { SPI_WRITE_DATA , 0x17,0 },
+ { SPI_WRITE_DATA , 0x18,0 },
+ { SPI_WRITE_DATA , 0x2E,0 },
+ { SPI_WRITE_DATA , 0x37,0 },
+
+ { SPI_WRITE_CMD, 0xE4,3 },
+ { SPI_WRITE_DATA , 0x25,0 }, //使用240根gate (N+1)*8
+ { SPI_WRITE_DATA , 0x00,0 }, //设定gate起点位置
+ { SPI_WRITE_DATA , 0x00,0 }, //当gate没有用完时,bit4(TMG)设为0
+
+
+ { SPI_WRITE_CMD, 0x35,1 },
+ { SPI_WRITE_DATA , 0x00,0 },
+
+
+
+ { SPI_WRITE_CMD, 0x21,0 },
+
+ { SPI_WRITE_CMD, 0x29,0 },
+
+ // { SPI_WRITE_CMD, 0x2A,4 }, //Column Address Set
+ // { SPI_WRITE_DATA , 0x00,0 },
+ // { SPI_WRITE_DATA , 0x00,0 }, //0
+ // { SPI_WRITE_DATA , 0x00,0 },
+ // { SPI_WRITE_DATA , 0xEF,0 }, //239
+
+ // { SPI_WRITE_CMD, 0x2B,4 }, //Row Address Set
+ // { SPI_WRITE_DATA , 0x00,0 },
+ // { SPI_WRITE_DATA , 0x14,0 }, //0
+ // { SPI_WRITE_DATA , 0x01,0 },
+ // { SPI_WRITE_DATA , 0x2B,0 },
+
+ { SPI_WRITE_CMD, 0x2C,0 },
+
+#else
{ SPI_WRITE_CMD, 0x11, 0 },
{ SPI_WRITE_DELAY,120, 0 },
{ SPI_WRITE_CMD, 0x3a, 1 },
{ SPI_WRITE_DATA,0x05, 0 },
-#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12
+#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12 || DRV_PROJECT_Z5_I7
{ SPI_WRITE_CMD, 0xE7, 1 },//2通道
{ SPI_WRITE_DATA,0x11, 0 },
#endif
{ SPI_WRITE_DATA,0x00, 0 },
{ SPI_WRITE_CMD, 0x29, 0 },
+#endif
};
const static struct spi_write_t spi_display_on_cmds[] = {
const static struct spi_info lcd_st7789v2_spi_info_watch = {
#if DRV_PROJECT_Z5_K6
4,//4线
-#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12
+#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12 || DRV_PROJECT_Z5_I7
+ 3,//3线
+#else
3,//3线
#endif
1,
#if DRV_PROJECT_Z5_K6
1,//1通道
-#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12
+#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12 ||DRV_PROJECT_Z5_I7
+ 2,//2通道
+#else
2,//2通道
#endif
SPI_FORMAT_RGB565,
static void st7789v2_panel_invalid(uint32_t start_x,
uint32_t start_y, uint32_t end_x, uint32_t end_y)
{
-#ifdef DRV_PROJECT_Z5_K7
+#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_I7
start_y += 20;
end_y += 20;
#endif
__attribute__ ((unused)) static int panel_detect_readid(void)
{
unsigned id;
+ cplog_printf("panel_detect_readid\n");
if (st7789v2_spi_read_id(&id) < 0) {
- printf("panel read id failed\n");
+ cplog_printf("panel read id failed\n");
goto err;
}
if (match_id(id, st7789v2_id_table) == 0) {
- printf("unknown panel id = 0x%x\n", id);
+ cplog_printf("unknown panel id = 0x%x\n", id);
goto err;
}
- printf("Found LCD panel ST7789V2-SPI, id: 0x%x\n", id);
- printf("panel detect by readid ok\n");
+ cplog_printf("Found LCD panel ST7789V2-SPI, id: 0x%x\n", id);
+ cplog_printf("panel detect by readid ok\n");
return 0;
err:
- printf("panel detect by readid failed\n");
+ cplog_printf("panel detect by readid failed\n");
+#if DRV_PROJECT_Z5_I7
+ return 0;
+#else
return -1;
+#endif
}
static uint32_t rgb666_2_spi(uint8_t r, uint8_t g, uint8_t b)
MFP_EOC
};
#endif
-#if DRV_PROJECT_Z5_K7 || USE_LCD_PANEL_GC9A01_SPI_WATCH
+#if DRV_PROJECT_Z5_K7 || USE_LCD_PANEL_GC9A01_SPI_WATCH|| DRV_PROJECT_Z5_I7
static uint32_t lcd_poc_mfp_spi_3_2_cfgs[] = {
MFP_REG(GPIO_20) | MFP_AF2 | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_DRIVE_MEDIUM | MFP_LPM_EDGE_NONE, /* SPI_DCLK */
MFP_REG(GPIO_21) | MFP_AF3 | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_DRIVE_MEDIUM | MFP_LPM_EDGE_NONE, /* SPI_CS1 */
.mfp = (uint32_t *)lcd_poc_mfp_spi_4_1_cfgs,
.clk = 312000, /* 104000 */
};
-#elif DRV_PROJECT_Z5_K7
+#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_I7
static struct lcd_info_t st7789v2_lcd_spi_3_2_info =
{
.mfp = (uint32_t *)lcd_poc_mfp_spi_3_2_cfgs,
#if USE_LCD_PANEL_ST7789V2_SPI_WATCH
#if DRV_PROJECT_Z5_K6
&st7789v2_lcd_spi_4_1_info,
-#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12
+#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12 || DRV_PROJECT_Z5_I7
&st7789v2_lcd_spi_3_2_info,
#endif
#endif
{
return "/otatest/update.json";
}
+// #ifdef __cplusplus
+// extern "C" {
+
+// #endif
+// #ifdef __cplusplus
+// }
+// #endif
+static int sATPInd = TEL_AT_CMD_ATP_5;
+//#include "framework/hal/hwtest/hwtest/hwtest.h"
+char AT_read_data[200] = {0};
+int AT_read_data_len = 0;
+void at_delay(uint32_t ms)
+{
+ uos_sleep(ms/5);
+ //DelayInUs(ms*1000);
+}
+static int HandleATitem32CARDIDCallback(TelAtParserID chnlId, const char* response, int size)
+{
+ // MATRspParseRet ret;
+ // MATReturnPara resp_return;
+ cplog_printf("HandleATResponseCallback!!!!!!!!!!!!!! \n");
+ cplog_printf("SIMCardTest1: size:%d response = %s\n", size,response);
+ //ASSERT(chnlId == sATPInd);
+ if(AT_read_data_len + size>sizeof(AT_read_data))
+ {
+ size = sizeof(AT_read_data)-AT_read_data_len;
+ }
+ memcpy(&AT_read_data[AT_read_data_len],response,size);
+ AT_read_data_len += size;
+ cplog_printf("SIMCardTest2: size:%d response = %s\n", size,response);
+
+ return 0;
+}
+//#include "hop/telephony/atcmdsrv/inc/teldef.h"
+//SendATCMDWaitResp(AT_channel, at_str, 150, "+EPIN",1,"+CME ERROR", resp_str, sizeof(resp_str));
+int item32_CARDID_write(char * data)
+{
+ int err=0;
+ char read_cmddata[201]={0};
+ char cmdString[201] = {0};
+ char *cmd_str ;
+
+ at_delay(100);
+ cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+ MATSetConfIndCB(sATPInd, HandleATitem32CARDIDCallback);
+ AT_read_data_len = 0;
+ memset(AT_read_data,0,sizeof(AT_read_data));
+ cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+ ATRecv(sATPInd, (void*)"AT+CFUN=0\r\n", strlen(cmd_str));
+ cplog_printf("item32_CARDID_write1.2:sATPInd:%d \n",sATPInd);
+ int t_count = 70;
+ while (t_count--)
+ {
+ at_delay(5);
+ if(strstr(AT_read_data,"ok"))
+ {
+ cplog_printf("AT_read_data:%s",AT_read_data);
+ break;
+ }
+
+ }
+ cplog_printf("item32_CARDID_write2:sATPInd:%d \n",sATPInd);
+
+ //cmd_str = "AT*PROD=1\r\n";
+
+ AT_read_data_len = 0;
+ memset(AT_read_data,0,sizeof(AT_read_data));
+ cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+ ATRecv(sATPInd, (void*)"AT*PROD=1\r\n", strlen(cmd_str));
+ t_count = 70;
+ while (t_count--)
+ {
+ at_delay(5);
+ if(strstr(AT_read_data,"ok"))
+ break;
+ }
+
+ AT_read_data_len = 0;
+ memset(AT_read_data,0,sizeof(AT_read_data));
+ cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+ ATRecv(sATPInd, (void*)"AT+CFUN=?\r\n", strlen(cmd_str));
+ t_count = 70;
+ while (t_count--)
+ {
+ at_delay(5);
+ if(strstr(AT_read_data,"ok"))
+ break;
+ }
+
+ snprintf(cmdString,200,"AT*MRD_ITEM32=W,CARDID,0101,12NOV2010,%s\r\n",data);
+ cplog_printf("item32_CARDID_write3:cmdString:%s \n",cmdString);
+ AT_read_data_len = 0;
+ memset(AT_read_data,0,sizeof(AT_read_data));
+ cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+ ATRecv(sATPInd, (void*)cmdString, strlen(cmdString));
+ t_count = 70;
+ while (t_count--)
+ {
+ at_delay(5);
+ if(strstr(AT_read_data,"ok"))
+ break;
+ }
+ cplog_printf("t_count:%d",t_count);
+
+
+ cplog_printf("item32_CARDID_write4:sATPInd:%d \n",sATPInd);
+ //cmd_str = "AT*PROD=0\r\n";
+ AT_read_data_len = 0;
+ memset(AT_read_data,0,sizeof(AT_read_data));
+ cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+ ATRecv(sATPInd, (void*)"AT*PROD=0\r\n", strlen(cmd_str));
+ t_count = 70;
+ while (t_count--)
+ {
+ at_delay(5);
+ if(strstr(AT_read_data,"ok"))
+ break;
+ }
+
+
+ cplog_printf("item32_CARDID_write5:sATPInd:%d \n",sATPInd);
+ //cmd_str = "AT+CFUN=1\r\n";
+ AT_read_data_len = 0;
+ memset(AT_read_data,0,sizeof(AT_read_data));
+ cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+ ATRecv(sATPInd, (void*)"AT+CFUN=1\r\n", strlen(cmd_str));
+ cplog_printf("item32_CARDID_write6:sATPInd:%d \n",sATPInd);
+ t_count = 70;
+ while (t_count--)
+ {
+ at_delay(5);
+ if(strstr(AT_read_data,"ok"))
+ break;
+ }
+
+
+error:
+
+ return err;
+}
+int tem32_CARDID_read(char * data,int data_MAX_len)
+{
+ int err=0;
+
+ char *cmd_str = "AT*MRD_ITEM32=R, CARDID\r\n";
+ cplog_printf("tem32_CARDID_read1:sATPInd:%d \n",sATPInd);
+ AT_read_data_len = 0;
+ memset(AT_read_data,0,sizeof(AT_read_data));
+
+ cplog_printf("tem32_CARDID_read1.1:sATPInd:%d \n",sATPInd);
+ MATSetConfIndCB(sATPInd, HandleATitem32CARDIDCallback);
+ cplog_printf("tem32_CARDID_read1.2:sATPInd:%d \n",sATPInd);
+ ATRecv(sATPInd, (void*)cmd_str, strlen(cmd_str));
+
+ int t_count = 100;
+ while (t_count--)
+ {
+ at_delay(5);
+ if(strstr(AT_read_data,"ok"))
+ break;
+ }
+
+ cplog_printf("tem32_CARDID_read1:err:%d str:%s\n",err,AT_read_data);
+ if(AT_read_data == 0 )
+ goto error;
+ char *data_tmp=AT_read_data;
+ int count_flag = 0;
+ while(*data_tmp)
+ {
+ if(*data_tmp == ',')
+ {
+ count_flag++;
+ if(count_flag>=3)
+ {
+ strncpy(data,data_tmp+1,data_MAX_len);
+ }
+ }
+
+ data_tmp++;
+ }
+error:
+
+ return err;
+}
#include "factory_mode.c"
#endif