* @Author: penglei 1624952103@qq.com\r
* @Date: 2024-06-17 14:31:08\r
* @LastEditors: penglei 1624952103@qq.com\r
- * @LastEditTime: 2025-07-01 16:30:09\r
+ * @LastEditTime: 2025-07-16 17:17:45\r
* @FilePath: /FD230/code/sdk/application/wearable/service/factorytest_service/factorytest_protocol.c\r
* @Description: \r
* \r
#ifdef ENABLE_HP4570\r
#include "hp4570.h"\r
#endif\r
-#ifdef PPG_VC9202\r
-#include "vc9202_user.h"\r
-#endif\r
+\r
#ifdef SUPPORT_GNSS\r
#include "gnss_ctl.h"\r
#include "NMEA0183.h"\r
#include "gyro_hal.h"\r
#endif\r
\r
+#include "touch_screen_drv.h"\r
+#include "rotary_encoder_drv.h"\r
\r
#pragma pack(1)\r
typedef struct factorytest_cmd_header_t\r
// /*********************TP 老化测试*****************************/\r
//读TP ID\r
uint16_t tp_id;\r
-#ifdef TPTYPE_FT6X46\r
- touch_getid(&tp_id);\r
-#endif\r
- if(tp_id != 0x6456)\r
+ touch_get_chip_id(&tp_id);\r
+ if(tp_id != TP_CHIP_ID)\r
{\r
aging_t.tp_error++;\r
aging_t.fail_num++;\r
\r
/*********************表冠 老化测试*****************************/\r
//读crown ID\r
- uint8_t crown_id = 0;\r
-#ifdef ROTARYENCODER_HX3507\r
- crown_read_id(&crown_id);\r
-#endif\r
- if(crown_id != 0x30)\r
+ uint16_t crown_id = 0;\r
+ rotary_get_chip_id(&crown_id);\r
+ if(crown_id != ROTARY_CHIP_ID)\r
{\r
aging_t.crown_error++;\r
aging_t.fail_num++;\r
\r
#ifdef SUPPORT_PPG_SERVICE\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_LEAKLIGHT_TEST);\r
- LOS_Msleep(1000);\r
+ LOS_Msleep(2000);\r
ppg_get_leaklight_data(&green,&red,&ir);\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
#endif\r
mmc5603_getid(&mmc_id);\r
if(mmc_id != 0x10)\r
send_data[1] |= 2 << 4;\r
-#ifdef TPTYPE_FT6X46\r
- touch_getid(&tp_id);\r
-#endif\r
+\r
+ touch_get_chip_id(&tp_id);\r
+\r
PRINT("touch_getid : %2X \r\n",tp_id);\r
- if(tp_id != 0x6456)\r
+ if(tp_id != TP_CHIP_ID)\r
send_data[1] |= 1 << 4;\r
#ifdef SUPPORT_PPG_SERVICE\r
id = ppg_get_chip_id();\r
//获取TP_ID\r
uint16_t id = 0;\r
uint8_t tp_id[3];\r
-#ifdef TPTYPE_FT6X46\r
- touch_getid(&id);\r
-#endif\r
+\r
+ touch_get_chip_id(&id);\r
+\r
tp_id[0] = 0;\r
tp_id[1] = id >> 8;\r
tp_id[2] = id;\r
1);\r
} else if(testitem == 0x03)\r
{\r
- //打开心率检测\r
+ //获取绿灯数据\r
+ uint8_t databuf[4] = {0};\r
+#ifdef BOARD_FD230\r
#ifdef PPG_HX3695\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST);\r
- LOS_Msleep(500);\r
+ LOS_Msleep(2000);\r
FT_RESULTS_t ft_result = hx3695_factroy_test(SINGLE_CHECK_TEST);\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
- uint8_t databuf[4] = {0};\r
\r
databuf[0] = (uint8_t)((ft_result.gr_data_final & 0xFF000000) >> 24);\r
databuf[1] = (uint8_t)((ft_result.gr_data_final & 0x00FF0000) >> 16);\r
databuf[2] = (uint8_t)((ft_result.gr_data_final & 0x0000FF00) >> 8);\r
databuf[3] = (uint8_t)((ft_result.gr_data_final & 0x000000FF) >> 0);\r
\r
- PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
+ PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
\r
factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
databuf,\r
4);\r
#endif\r
+#elif defined BOARD_N9\r
+ int32_t data = 0;\r
+#ifdef SUPPORT_PPG_SERVICE\r
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_PPG_TEST);\r
+ LOS_Msleep(2000);\r
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
+ data = ppg_get_factory_data();\r
+#endif\r
+ PRINT("%d\r\n",data);\r
+\r
+\r
+ databuf[0] = (uint8_t)((data & 0xFF000000) >> 24);\r
+ databuf[1] = (uint8_t)((data & 0x00FF0000) >> 16);\r
+ databuf[2] = (uint8_t)((data & 0x0000FF00) >> 8);\r
+ databuf[3] = (uint8_t)((data & 0x000000FF) >> 0);\r
+#endif\r
+\r
+ PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
+\r
+ factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+ BLE_TEST_CMD_SOFT_TEST_SUB_MODE_HRS,\r
+ 0x03,\r
+ databuf,\r
+ 4);\r
+\r
} else if(testitem == 0x04)\r
{\r
- //打开血氧检测\r
+ uint8_t databuf[4] = {0};\r
+#ifdef BOARD_FD230\r
#ifdef PPG_HX3695\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SINGLE_CHECK_MODE_TEST);\r
LOS_Msleep(500);\r
FT_RESULTS_t ft_result = hx3695_factroy_test(SINGLE_CHECK_TEST);\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
- uint8_t databuf[4] = {0};\r
\r
databuf[0] = (uint8_t)((ft_result.red_data_final & 0xFF000000) >> 24);\r
databuf[1] = (uint8_t)((ft_result.red_data_final & 0x00FF0000) >> 16);\r
databuf[2] = (uint8_t)((ft_result.red_data_final & 0x0000FF00) >> 8);\r
databuf[3] = (uint8_t)((ft_result.red_data_final & 0x000000FF) >> 0);\r
+#endif\r
+#elif defined BOARD_N9\r
+ //获取红灯数据\r
+ int32_t data = 0;\r
+#ifdef SUPPORT_PPG_SERVICE\r
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_SPO2_TEST);\r
+ LOS_Msleep(2000);\r
+ send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
+ data = ppg_get_factory_data();\r
+#endif\r
+ PRINT("%d\r\n",data);\r
+\r
\r
+ databuf[0] = (uint8_t)((data & 0xFF000000) >> 24);\r
+ databuf[1] = (uint8_t)((data & 0x00FF0000) >> 16);\r
+ databuf[2] = (uint8_t)((data & 0x0000FF00) >> 8);\r
+ databuf[3] = (uint8_t)((data & 0x000000FF) >> 0);\r
+#endif\r
PRINT("%2X %2X %2X %2X \r\n",databuf[0],databuf[1],databuf[2],databuf[3]);\r
\r
factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
0x04,\r
databuf,\r
4);\r
-#endif\r
+\r
} else if(testitem == 0x05)\r
{\r
#ifdef PPG_HX3695\r
//灰卡测试\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_GRAYCARD_TEST);\r
- LOS_Msleep(1000);\r
+ LOS_Msleep(2000);\r
uint8_t databuf[12] = {0};\r
FT_RESULTS_t ft_result = hx3695_factroy_test(GRAY_CARD_TEST);\r
databuf[0] = (uint8_t)((ft_result.gr_data_final & 0xFF000000) >> 24);\r
\r
#ifdef SUPPORT_PPG_SERVICE\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_DO_LEAKLIGHT_TEST);\r
- LOS_Msleep(1000);\r
+ LOS_Msleep(2000);\r
ppg_get_leaklight_data(&green,&red,&ir);\r
send_ppg_cmd_msg(PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST);\r
#endif\r
float fAzimuth,fPitch,fRoll;\r
\r
do_mag_service_check_msg(MAG_SERVICE_CMD_START_CHECK);\r
- LOS_Msleep(500);\r
+ LOS_Msleep(1000);\r
mmc5603_getdata(&fAzimuth,&fPitch,&fRoll);\r
do_mag_service_check_msg(MAG_SERVICE_CMD_STOP_CHECK);\r
- \r
+#ifdef BOARD_FD230 \r
+ \r
uint8_t databuf[6] = {0};\r
\r
databuf[0] = (uint8_t)(((uint32_t)fAzimuth & 0xFF00) >> 8);\r
0x02,\r
databuf,\r
6);\r
+\r
+#elif defined BOARD_N9\r
+ uint8_t databuf[2] = {0};\r
+\r
+ databuf[0] = (uint8_t)(((uint32_t)fAzimuth & 0xFF00) >> 8);\r
+ databuf[1] = (uint8_t)((uint32_t)fAzimuth & 0x00FF);\r
+\r
+ PRINT("%2X %2X\r\n",databuf[0],databuf[1]);\r
+\r
+ factorytest_protocol_replymsg(BLE_TEST_CMD_MODE_SOFT_TEST,\r
+ BLE_TEST_CMD_SOFT_TEST_SUB_MODE_COMPASS,\r
+ 0x02,\r
+ databuf,\r
+ 2);\r
+#endif\r
}\r
\r
break;\r
gnss_start();\r
LOS_Msleep(100);\r
do{\r
- gps_data_t *gps_data = getGPSGlobaldata();\r
+ gps_data_t *gps_data = getPGPSGlobaldata();\r
if(gps_data == NULL)\r
{\r
PRINT("gps_data == NULL \n");\r
// #define MAX_CNT 16 * 5 * 60
#define MAX_CNT 16 * 5 * 50
+static char *rx_buffer = NULL;
static unsigned long g_app_queue= 0xFFFFFFFF;
memcpy(&server_addr.sin_addr.s_addr, &ip_sem.ip.u_addr.ip4, 4);
// 创建套接字
-
listen_socket = lwip_socket(AF_INET, SOCK_STREAM, 0);
if(listen_socket < 0)
{
PRINT("Error bp Check MSG 0x send failed! err=0x%x! \r\n", ret);
}
- if(send_data.data != NULL)
- free(send_data.data);
+ // if(send_data.data != NULL)
+ // free(send_data.data);
}
// unsigned char buf[14100] = {0}; // 算法库计算过程中所需要的缓存
lwip_close(g_listen_sock);
g_listen_sock = -1;
}
+ if (rx_buffer != NULL)
+ {
+ free(rx_buffer);
+ rx_buffer = NULL;
+ }
+
}
int bp_tcp_init(void)
if(mail.cmd == BP_TCP_SERVICE_CMD_SEND_DATA)
{
tcp_data_handler((int *)mail.data,mail.len);
+ if(mail.data != NULL)
+ {
+ free(mail.data);
+ }
}
else if(mail.cmd == BP_TCP_SERVICE_CMD_SERVER_INIT)
{
void bp_tcp_server_recv_task(void *pvParameters)
{
- char *rx_buffer = (char *)malloc(2048);
- if(rx_buffer == NULL)
- {
- printf("rx_buffer malloc failed\n");
- return;
- }
-
while (1)
{
if(!uapi_dev_runtime_get_bp_status_flag())
// printf("tcp_sign_up\n");
+ if(rx_buffer == NULL)
+ {
+ char *rx_buffer = (char *)malloc(2048);
+ if(rx_buffer == NULL)
+ {
+ printf("rx_buffer malloc failed\n");
+ do_bp_tcp_server_send_data(BP_TCP_SERVICE_CMD_SERVER_DEINIT,NULL,0);
+ return;
+ }
+
+ }
+
+
// 接收数据
memset(rx_buffer, 0, 2048);
int len = recv(g_listen_sock, rx_buffer, 2048 - 1, 0);
* @Author: penglei 1624952103@qq.com
* @Date: 2024-03-13 15:08:38
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-07-15 12:13:23
+ * @LastEditTime: 2025-07-16 15:34:10
* @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/hx3695/hx3695_hal.c
* @Description:
*
void ppg_get_leaklight_data(uint32_t *ch0,uint32_t *ch1,uint32_t *ch2)
{
#ifdef PPG_HX3695
- hx3695_get_factory_data(ch0,ch1,ch2);
+ hx3695_get_leaklight_data(ch0,ch1,ch2);
#elif defined PPG_VC9202
vc9202_get_leaklight_data(ch0,ch1,ch2);
#elif defined PPG_PAH8009
#endif
}
-uint32_t ppg_get_factory_data(void)
+int32_t ppg_get_factory_data(void)
{
- uint32_t data = 0;
+ int32_t data = 0;
#ifdef PPG_PAH8009
data = pah8009_get_factory_data();
#elif defined PPG_HX3695
-
+ data = hx3695_get_factory_data();
#endif
return data;
}
* @Author: penglei 1624952103@qq.com
* @Date: 2024-06-07 11:18:26
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-07-09 16:12:34
+ * @LastEditTime: 2025-07-16 15:35:58
* @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/ppg/ppg_hal.h
* @Description:
*
void ppg_power_off(void);
void ppg_int_handler(void);
void ppg_get_leaklight_data(uint32_t *ch0,uint32_t *ch1,uint32_t *ch2);
-uint32_t ppg_get_factory_data(void);
+int32_t ppg_get_factory_data(void);
#ifdef __cplusplus
#if __cplusplus
static int32_t cali_data_cnt = 0;\r
#endif\r
\r
+static int32_t factory_data = 0;\r
+\r
// us 延时函数, 客户需填写\r
void hx3695_delay_us(uint32_t us)\r
{\r
gsen_fifo_y_send[ii] = gsensordata[ii].y * 4096 / 10;\r
gsen_fifo_z_send[ii] = gsensordata[ii].z * 4096 / 10;\r
}\r
-\r
+ factory_data = PPG_buf[ii];\r
// gsensor_get_n_data(8,gsensordata); \r
// for(ii=0; ii<*count; ii++)\r
// {\r
// gsen_fifo_y_send[ii] = gsensordata[ii].y * 2048;\r
// gsen_fifo_z_send[ii] = gsensordata[ii].z * 2048;\r
// }\r
- //("hxdata:%d/%d %d %d %d %d %d %d\r\n",\r
- //1+ii,*count,red_buf[ii],ir_buf[ii],green_buf[ii],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii]);\r
- //printf("FFF==>spo2 red_buf : %d, %d, %d, %d \n", 1+ii, *count, red_buf[ii], ir_buf[0]);\r
+ // printf("hxdata:%d/%d %d %d %d %d %d %d\r\n",1+ii,*count,red_buf[ii],ir_buf[ii],green_buf[ii],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii]);\r
+ // printf("FFF==>spo2 red_buf : %d, %d, %d, %d \n", 1+ii, *count, red_buf[ii], ir_buf[0]);\r
+ \r
+ factory_data = red_buf[ii];\r
}\r
\r
+\r
+\r
// ft_ppg_iir = spo2_s_dat.red_data[0];\r
// hx3695_factory_test_process(NULL, APP_FACTORY_TEST_SPO2_START, &ft_ppg_iir);\r
\r
}\r
}\r
\r
+int32_t hx3695_get_factory_data(void)\r
+{\r
+ int32_t data = factory_data;\r
+ factory_data = 0;\r
+ return data;\r
+}\r
+\r
#endif //CHIP_HX3695
\ No newline at end of file
void hx3695_unwearstatus_update(void);\r
void hx3695_set_hrs_ble_swtich(uint8_t cmd);\r
uint8_t hx3695_get_hrs_ble_swtich(void);\r
+int32_t hx3695_get_factory_data(void);\r
#include "hx3695_hal.h"\r
\r
#endif\r
return ft_result;\r
}\r
\r
-void hx3695_get_factory_data(uint32_t *green,uint32_t *red,uint32_t *ir)\r
+void hx3695_get_leaklight_data(uint32_t *green,uint32_t *red,uint32_t *ir)\r
{\r
*green = factory_green;\r
*red = factory_red;\r
void hx3695_lab_test(uint32_t test_mode);\r
void hx3695_lab_test_read(void);\r
\r
-void hx3695_get_factory_data(uint32_t *green,uint32_t *red,uint32_t *ir);\r
+void hx3695_get_leaklight_data(uint32_t *green,uint32_t *red,uint32_t *ir);\r
\r
#endif // _HX3695_FACTORY_TEST_H_\r
\r
uint8_t Stress_ReadyFlag = 0;\r
uint8_t Weak_Flag = 0;\r
\r
-static uint32_t factory_data = 0;\r
+static int32_t factory_data = 0;\r
static uint8_t work_mode = 0;\r
\r
\r
return product_id;\r
}\r
\r
-uint32_t pah8009_get_factory_data(void)\r
+int32_t pah8009_get_factory_data(void)\r
{\r
- uint32_t data = factory_data;\r
+ int32_t data = factory_data;\r
factory_data = 0;\r
return data;\r
}\r
\r
uint16_t pah8009_get_chip_id(void);\r
void pah8009_control(char *mode,uint8_t enable);\r
-uint32_t pah8009_get_factory_data(void);\r
+int32_t pah8009_get_factory_data(void);\r
void pah8009_int_handler(void);\r
\r
/**\r
return resulttemp;
}
-void crown_read_id(uint8_t *id)
+void crown_read_id(uint16_t *id)
{
uapi_gpio_set_dir(PIN_TYHX_SDIO,GPIO_DIRECTION_OUTPUT);
// uapi_pin_set_pull(PIN_TYHX_SDIO, (pin_pull_t)HAL_PIO_PULL_UP);
+/*
+ * @Author: penglei 1624952103@qq.com
+ * @Date: 2025-01-08 18:26:42
+ * @LastEditors: penglei 1624952103@qq.com
+ * @LastEditTime: 2025-07-16 16:07:38
+ * @FilePath: /FD230/code/sdk/drivers/peripheral/rotary_encoder/hx3507/hx3507.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
/**
* Copyright (c) 2014 - 2023, 南京天易合芯电子有限公司
*
//把角度结果上报的函数
int16_t get_crown_result(void);
-void crown_read_id(uint8_t *id);
+void crown_read_id(uint16_t *id);
#endif //_TYHX_CROWN_CUSTOM_H_
{
return int_mode;
}
+
+
+void mixo_get_chip_id(uint16_t *id)
+{
+ mixo_ots_enter_suspend_mode(0);
+ uint8_t chip_id[2] = {0};
+ mixo_ots_reg_read(0x00, &chip_id[0]); // Read chip-id high byte
+ mixo_ots_reg_read(0x01, &chip_id[1]); // Read chip-id low byte
+ *id = (chip_id[0] & 0XFF) << 8 | (chip_id[1] & 0XFF);
+}
\ No newline at end of file
* @Author: penglei 1624952103@qq.com
* @Date: 2025-01-04 10:53:54
* @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2025-05-14 17:13:14
+ * @LastEditTime: 2025-07-16 16:07:09
* @FilePath: /sdk615/code/sdk/zhihui/drivers/rotary_encoder/mixo/mixo_ots_driver.h
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
void mixo_ots_timer_callback(void);
void mixo_clean_result(void);
uint8_t mixo_get_check_mode(void);
+void mixo_get_chip_id(uint16_t *id);
#endif //_MXS_DRIVER_H_
// uapi_i2c_master_init(TOUCH_I2C_BUS, 400000, I2C_SPEED_MODE_FS); /* 400000: 400KHz */
re_err("rotary_encoder_restart ----------succ!!!\n");
+}
+
+void rotary_get_chip_id(uint16_t *id)
+{
+#ifdef ROTARYENCODER_HX3507
+ crown_read_id(id);
+#elif defined ROTARYENCODER_MIXO
+ mixo_get_chip_id(id);
+#endif
}
\ No newline at end of file
#include "soc_osal.h"
#include "rotary_encoder_queue1.h"
+#ifdef ROTARYENCODER_HX3507
+#define ROTARY_CHIP_ID 0x30
+#elif defined ROTARYENCODER_MIXO
+#define ROTARY_CHIP_ID 0x585b
+#else
+#define ROTARY_CHIP_ID 0
+#endif
+
struct re_driver_data {
osal_task *task_handle;
osal_event event;
ext_errno rotary_encoder_module_init(void);
ext_errno rotary_encoder_module_deinit(void);
ext_errno encoder_info_process(void);
+void rotary_get_chip_id(uint16_t *id);
#endif
\ No newline at end of file
\r
void cst86xx_get_chip_id(uint16_t *chip_id)\r
{\r
- *chip_id = g_cst86xx_drv.chip_id;\r
+ cst86xx_resume();\r
+ cst86xx_tp_i2c_data_read(CST86XX_HW_ID, chip_id, 1);\r
+ // cst86xx_set_sleep_mode();\r
+ cst86xx_suspend();\r
}\r
\r
#ifdef __cplusplus\r
/*get chip id*/
ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID, &chip_id[0], 1);
if (ret != EXT_ERR_SUCCESS) {
- tp_err("222222222get ic information, error1");
+ tp_err("get ic information, error1");
return EXT_ERR_TP_ZTW523_POWERUP_READ_CHIPID;
}
ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID2, &chip_id[1], 1);
if (ret != EXT_ERR_SUCCESS) {
- tp_err("3333333get ic information, error2");
+ tp_err("get ic information, error2");
return EXT_ERR_TP_ZTW523_POWERUP_READ_CHIPID;
}
- // tp_print("11111111111111get ic information, chip id = 0x%02x%02x", chip_id[0], chip_id[1]);
+ // tp_print("get ic information, chip id = 0x%02x%02x", chip_id[0], chip_id[1]);
if ((FTS_CHIP_IDH == chip_id[0]) && (FTS_CHIP_IDL == chip_id[1])) {
tp_warning("get ic information, chip id = 0x%02x%02x", chip_id[0], chip_id[1]);
return EXT_ERR_SUCCESS;
return EXT_ERR_SUCCESS;
}
+
+
+
+void ft6x46_get_chip_id(uint16_t *id)
+{
+ ft6x46_resume();
+
+ ext_errno ret;
+ uint8_t chip_id[2] = { 0 };
+ /*get chip id*/
+ ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID, &chip_id[0], 1);
+ if (ret != EXT_ERR_SUCCESS) {
+ PRINT("get ic information error1");
+ } else {
+ ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID2, &chip_id[1], 1);
+ if (ret != EXT_ERR_SUCCESS) {
+ PRINT("get ic information error2");
+ } else
+ {
+ // PRINT("TOUCH CHIP ID = 0x%02x%02x \r\n", chip_id[0], chip_id[1]);
+ *id = (chip_id[0] & 0XFF) << 8 | (chip_id[1] & 0XFF);
+ //sprintf(id,"0x%02x%02x", chip_id[0], chip_id[1]);
+ }
+ }
+ ft6x46_suspend();
+}
+
#ifdef __cplusplus
#if __cplusplus
}
ext_errno ft6x46_suspend(void);
ext_errno ft6x46_irq_callback(uint8_t *data_buf, uint8_t data_len);
ext_errno ft6x46_host_init_sample(void);
+void ft6x46_get_chip_id(uint16_t *id);
#ifdef __cplusplus
#if __cplusplus
}
ztw523_resume();
#endif
uapi_gpio_enable_interrupt(TOUCH_INT_GPIO); // open tp_int gpio interrupt
+}
+
+void touch_get_chip_id(uint16_t *id)
+{
+#ifdef TPTYPE_CST86XX
+ cst86xx_get_chip_id(id);
+#elif defined TPTYPE_FT6X46
+ ft6x46_get_chip_id(id);
+#endif
+
}
\ No newline at end of file
+/*
+ * @Author: penglei 1624952103@qq.com
+ * @Date: 2024-12-07 15:32:08
+ * @LastEditors: penglei 1624952103@qq.com
+ * @LastEditTime: 2025-07-16 12:24:50
+ * @FilePath: /FD230/code/sdk/drivers/peripheral/touch/touch_screen_drv.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
/*
* Copyright (c) @CompanyNameMagicTag 2021-2022. All rights reserved.
* Description: header of touch screen driver.
uint32_t (*priv_operator)(struct ts_driver_data *udd);
};
+#ifdef TPTYPE_FT6X46
+#define TP_CHIP_ID 0x6456
+#elif defined TPTYPE_CST86XX
+#define TP_CHIP_ID 0xb7
+#else
+#define TP_CHIP_ID 0
+#endif
+
ext_errno touch_screen_module_init(void);
ext_errno touch_screen_module_deinit(void);
ext_errno touch_info_process(void);
+void touch_get_chip_id(uint16_t *id);
#endif
\ No newline at end of file
}
-void touch_getid(uint16_t *id)
-{
- ext_errno ret;
- uint8_t chip_id[2] = { 0 };
- /*get chip id*/
- ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID, &chip_id[0], 1);
- if (ret != EXT_ERR_SUCCESS) {
- PRINT("get ic information error1");
- } else {
- ret = tp_ft6x46_i2c_data_read(FTS_REG_CHIP_ID2, &chip_id[1], 1);
- if (ret != EXT_ERR_SUCCESS) {
- PRINT("get ic information error2");
- } else
- {
- PRINT("TOUCH CHIP ID = 0x%02x%02x \r\n", chip_id[0], chip_id[1]);
- *id = (chip_id[0] & 0XFF) << 8 | (chip_id[1] & 0XFF);
- //sprintf(id,"0x%02x%02x", chip_id[0], chip_id[1]);
- }
- }
-}
-
void touch_getstate(void)
{
int32_t state;
}
//创建指定路径文件夹
-void uapi_create_folder(char *dir_path)
+int uapi_create_folder(char *dir_path)
{
if(dir_path == NULL)
- return;
+ return -1;
char *path_copy = strdup(dir_path);
char *token;
if (token == NULL)
{
free(path_copy);
- return;
+ return -1;
}
char current_path[256] = "";
{
PRINT("mkdir %s failed\n", current_path);
free(path_copy);
- return;
+ return -1;
}
}
{
PRINT("mkdir %s failed\n", current_path);
free(path_copy);
- return;
+ return -1;
}
}
}
free(path_copy);
PRINT("mkdir %s succed\n", dir_path);
+ return 0;
}
//获取小睡数据长度(协议用)
//获取lcd id
void lcd_getid(uint32_t *id);
-//获取TP ID
-void touch_getid(uint16_t *id);
void get_tp_info(int16_t *x,int16_t *y);
//获取触摸屏状态
void uapi_save_sleep_flag(uint8_t *data,uint16_t len);
void start_save_file_thread(void);
-void uapi_create_folder(char *dir_path);
+int uapi_create_folder(char *dir_path);
uint32_t uapi_get_file_size(char *filepath);
/**
* 资源文件校验码保存在文件 /user/fileschecksum.txt 中