2024-12-06 11:22:05 +08:00

1589 lines
43 KiB
C

// For SWTR
#include "RTE.h"
#include <stddef.h> // Defines NULL
#include <stdbool.h> // Defines true
#include <stdlib.h> // Defines EXIT_FAILURE
#include "../OsekCom/OsekCom.h"
#include "../Speaker/Speaker.h"
#include "TouchPanel/TouchPanel.h"
// For SWTL
#include "forceSnsr.h"
#include "forceSnsr_Cfg.h"
#include "forcedetect.h"
#include "TouchPanel.h"
// #include "TouchPanel_Cfg.h"
#include "Std_Types.h"
#include "device.h"
#include "touch/touch.h"
#include "math.h"
#include "stdlib.h"
#include <stddef.h> // Defines NULL
#include <stdbool.h> // Defines true
#include <stdlib.h> // Defines EXIT_FAILURE
#include "definitions.h" // SYS function prototypes
#include "OsekCom/OsekCom.h"
#include "Speaker/Speaker.h"
#include "TouchPanel/TouchPanel.h"
#include "forceSnsr/forcedetect.h"
#include "TLE9263/TLE926x_Main.h"
#include "DiagnosticR/UDS/UDS_Services_Common.h"
#include "plib_systick.h"
#include "FunctionState.h"
#include "SysDiagDetect.h"
// #include "Global.h"
extern uint8 CurrentPosition;
uint16 Fr08_send_flag;
uint8_t Two_Finger_Y_count = 0;
uint8_t Two_Finger_X_count = 0;
uint8_t X_count = 0;
uint8_t Y_count = 0;
uint8_t touch_reset2times_flag = 0;
uint16_t Touch_Sensor_Sts00;
uint16_t Touch_Sensor_Sts01;
uint16_t Touch_Sensor_Sts02;
uint16_t Touch_Sensor_Sts03;
uint16_t Touch_Sensor_Sts04;
uint16_t Touch_Sensor_Sts05;
uint16_t Touch_Sensor_Sts06;
uint16_t Touch_Sensor_Sts07;
uint16_t Touch_Sensor_Sts08;
uint16_t Touch_Sensor_Sts09;
uint16_t Touch_Sensor_Sts10;
uint16_t Touch_Sensor_Sts11;
uint16_t Touch_Sensor_Sts12;
uint16_t Touch_Sensor_Sts13;
uint16_t Touch_Sensor_Sts14;
uint8_t Allow_Touch_flag = 0,Allow_Touch_counter=0;
uint16_t Touch_Sensor_Ref00;
uint16_t Touch_Sensor_Ref01;
uint16_t Touch_Sensor_Ref02;
uint16_t Touch_Sensor_Ref03;
uint16_t Touch_Sensor_Ref04;
uint16_t Touch_Sensor_Ref05;
uint16_t Touch_Sensor_Ref06;
uint16_t Touch_Sensor_Ref07;
uint16_t Touch_Sensor_Ref08;
uint16_t Touch_Sensor_Ref09;
uint16_t Touch_Sensor_Ref10;
uint16_t Touch_Sensor_Ref11;
uint16_t Touch_Sensor_Ref12;
uint16_t Touch_Sensor_Ref13;
uint16_t Touch_Sensor_Ref14;
uint16_t Touch_Sensor_CC00;
uint16_t Touch_Sensor_CC01;
uint16_t Touch_Sensor_CC02;
uint16_t Touch_Sensor_CC03;
uint16_t Touch_Sensor_CC04;
uint16_t Touch_Sensor_CC05;
uint16_t Touch_Sensor_CC06;
uint16_t Touch_Sensor_CC07;
uint16_t Touch_Sensor_CC08;
uint16_t Touch_Sensor_CC09;
uint16_t Touch_Sensor_CC10;
uint16_t Touch_Sensor_CC11;
uint16_t Touch_Sensor_CC12;
uint16_t Touch_Sensor_CC13;
uint16_t Touch_Sensor_CC14;
uint16_t Touch_Sensor_delta00;
uint16_t Touch_Sensor_delta01;
uint16_t Touch_Sensor_delta02;
uint16_t Touch_Sensor_delta03;
uint16_t Touch_Sensor_delta04;
uint16_t Touch_Sensor_delta05;
uint16_t Touch_Sensor_delta06;
uint16_t Touch_Sensor_delta07;
uint16_t Touch_Sensor_delta08;
uint16_t Touch_Sensor_delta09;
uint16_t Touch_Sensor_delta10;
uint16_t Touch_Sensor_delta11;
uint16_t Touch_Sensor_delta12;
uint16_t Touch_Sensor_delta13;
uint16_t Touch_Sensor_delta14;
// volatile uint8_t TouchBoard_RC;
// volatile uint8_t TouchBoard_Sts;
// volatile uint8_t TouchBoard_X;
// volatile uint8_t TouchBoard_Y;
uint8_t RTE_Get_TouchBoard_CRC(void)
{
return 0;
}
// Input Sensor
// uint16_t RTE_Get_Power_AD_SNS(void);
// uint8_t RTE_Get_Pressure_Sensor_xxxx(void);//IIC DATA?
// Not active,Touch,Touch and Press,invalid from sensor
uint8_t RTE_Get_SldVolCtrlSts(void) // 0 slip idle 1 decrease ,2 increase , 3 decrease double , 4 increase double ,5 decrease third, 6 increase third
{
return 0;
}
uint8_t RTE_Get_TouchBoard_Up_Sts(void)
{
/* y:a7, x: e6 */
/* y:8d, x: eb */
/* y:75, x: ed */
/* y:6a, x: eb */
/* y:75, x: eb */
Buttons_SignalType Signal = BUTTON_RELEASE;
if (CurrentPosition == 4)
{
Signal = TouchPanel_BtnSignalRead(BTN_UP);
}
if (Allow_Touch_flag == 0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_Down_Sts(void)
{
/* x:26, y: 96 */
/* x:20, y: 80 */
/* x:20, y: 80 */
Buttons_SignalType Signal = BUTTON_RELEASE;
if (CurrentPosition == 5)
{
Signal = TouchPanel_BtnSignalRead(BTN_DOWN);
}
if (Allow_Touch_flag == 0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_Left_Sts(void)
{
/* x:95, y: ec */
/* x:97, y: e9 */
Buttons_SignalType Signal = BUTTON_RELEASE;
if (CurrentPosition == 6)
{
Signal = TouchPanel_BtnSignalRead(BTN_LEFT);
}
if (Allow_Touch_flag == 0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_Right_Sts(void)
{
/* x:98, y: 22 */
/* x:9d, y: 27 */
/* x:94, y: 25 */
Buttons_SignalType Signal = BUTTON_RELEASE;
if (CurrentPosition == 7)
{
Signal = TouchPanel_BtnSignalRead(BTN_RIGHT);
}
if (Allow_Touch_flag == 0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_Center_Sts(void)
{
Buttons_SignalType Signal = BUTTON_RELEASE;
if (CurrentPosition == 8)
{
Signal = TouchPanel_BtnSignalRead(BTN_CONFIRM);
}
if (Allow_Touch_flag == 0)
{
Signal = 0;
}
return Signal;
}
uint8_t g_VOICE_Touch_And_Below_1N = 0;
uint8_t RTE_Get_TouchBoard_VOICE1_Sts(void) // TJP1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
static uint8_t Voice_Zero_Count = 0;
if (CurrentPosition == 1)
{
Signal = k_voice_touch_Sts;
}
if (Signal != 0) // PANEL_PRESS_LEVEL0 == Press_Level &&
{
g_VOICE_Touch_And_Below_1N = 0x01;
Voice_Zero_Count = 0;
}
else
{
Voice_Zero_Count++;
if (Voice_Zero_Count > 6)
{
g_VOICE_Touch_And_Below_1N = 0x00;
Voice_Zero_Count = 7;
}
}
if (Allow_Touch_flag == 0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_VOICE2_Sts(void) // TJP2
{
Buttons_SignalType Signal = BUTTON_RELEASE;
// Signal = TouchPanel_BtnSignalRead(BTN_VOICE2);
return Signal;
}
uint8_t g_MENU_Touch_And_Below_1N = 0;
uint8_t RTE_Get_TouchBoard_MENU1_Sts(void) // Resume1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
static uint8_t Menu_Zero_Count = 0;
if (CurrentPosition == 3)
{
Signal = k_menu_touch_Sts; // TouchPanel_BtnSignalRead(BTN_MENU1);
}
if (Signal != 0) // PANEL_PRESS_LEVEL0 == Press_Level &&
{
g_MENU_Touch_And_Below_1N = 0x01;
Menu_Zero_Count = 0;
}
else
{
Menu_Zero_Count++;
if (Menu_Zero_Count > 6)
{
g_MENU_Touch_And_Below_1N = 0x00;
Menu_Zero_Count = 7;
}
}
if (Allow_Touch_flag == 0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_MENU2_Sts(void) // Resume2
{
Buttons_SignalType Signal = BUTTON_RELEASE;
// Signal = TouchPanel_BtnSignalRead(BTN_MENU2);
return Signal;
}
uint8_t g_VOL_Touch_And_Below_1N = 0;
uint8_t RTE_Get_TouchBoard_VOL1_Sts(void) // Cancel1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
static uint8_t VOL_Zero_Count = 0;
if (CurrentPosition == 2)
{
// PanelPress_LevelType Press_Level;
Signal = k_vol_touch_Sts; // TouchPanel_BtnSignalRead(BTN_VOL1);
// Press_Level = TouchPanel_PressLevelRead();
}
if (Signal != 0) // PANEL_PRESS_LEVEL0 == Press_Level &&
{
g_VOL_Touch_And_Below_1N = 0x01;
VOL_Zero_Count = 0;
}
else
{
VOL_Zero_Count++;
if (VOL_Zero_Count > 6)
{
g_VOL_Touch_And_Below_1N = 0x00;
VOL_Zero_Count = 7;
}
}
if (Allow_Touch_flag == 0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_VOL2_Sts(void) // Cancel2
{
Buttons_SignalType Signal = BUTTON_RELEASE;
// Signal = TouchPanel_BtnSignalRead(BTN_VOL2);
return Signal;
}
// touch borad left/right slide: 0:idle, 1:short slide left 2:short slide right 3:long slide left 4:long slide right
uint8_t RTE_Get_TouchBoard_Left_Right_Slide_Sts(void)
{
uint8_t retval = SIG_SWPLERISTSRI_SWPLERIREQSTS_IDLE;
return retval;
}
// touch borad Up/Down slide: 0:idle, 1:short slide up 2:short slide down 3:long slide up 4:long slide down
uint8_t RTE_Get_TouchBoard_Up_Down_Slide_Sts(void)
{
uint8_t retval = SIG_SWPUPDWNSTSRI_SWPUPDWNREQSTS_IDLE;
return retval;
}
// uint8_t RTE_Get_INTB_PRSS_SNS(void);
// uint8_t RTE_Get_X1_SNS(void);
// uint8_t RTE_Get_X2_SNS(void);
// uint8_t RTE_Get_X3_SNS(void);
// uint8_t RTE_Get_X4_SNS(void);
// uint8_t RTE_Get_X5_SNS(void);
#define X_Length 6
#define Y_Length 6
#define Initial_Movement_Hysteresis 10
#define Next_Movement_Hysteresis 5
uint8_t X_Buf[X_Length];
uint8_t Y_Buf[Y_Length];
uint8_t X_CNT = 0;
uint8_t Y_CNT = 0;
uint8_t Stable_CNT_X = 0;
uint8_t Stable_CNT_Y = 0;
uint8_t X_Update_Flg = 1;
uint8_t Y_Update_Flg = 1;
uint8_t X_Update = 0;
uint8_t Y_Update = 0;
uint8_t rtn_X = 0;
uint8_t rtn_Y = 0;
uint8_t RTE_Get_X_SNS(void)
{
#if 1
uint8_t i;
uint8_t j;
uint8 x_pos;
uint8 temp;
// uint8 rtn=0;
GetSurface_Position(&x_pos, NULL_PTR);
X_Buf[X_CNT++] = x_pos;
if (X_CNT == X_Length)
{
X_CNT = 0;
}
for (j = 0; j < X_Length - 1; j++)
{
for (i = 0; i < X_Length - 1 - j; i++)
{
if (X_Buf[i] > X_Buf[i + 1])
{
temp = X_Buf[i];
X_Buf[i] = X_Buf[i + 1];
X_Buf[i + 1] = temp;
}
}
}
if (X_Buf[X_Length - 1] - X_Buf[0] < Initial_Movement_Hysteresis)
{
Stable_CNT_X++;
if (X_Update_Flg == 1)
{
X_Update = (X_Buf[0] + X_Buf[X_Length - 1]) / 2;
}
if (Stable_CNT_X > 10)
{
Stable_CNT_X = 10;
X_Update_Flg = 0;
rtn_X = X_Update;
if ((X_Buf[0] + X_Buf[X_Length - 1]) / 2 - X_Update > 0)
{
if ((X_Buf[0] + X_Buf[X_Length - 1]) / 2 - X_Update > Next_Movement_Hysteresis)
{
Stable_CNT_X = 0;
X_Update_Flg = 1;
}
}
else
{
if (X_Update - (X_Buf[0] + X_Buf[X_Length - 1]) / 2 > Next_Movement_Hysteresis)
{
Stable_CNT_X = 0;
X_Update_Flg = 1;
}
}
}
}
else
{
Stable_CNT_X = 0;
X_Update_Flg = 1;
rtn_X = (X_Buf[X_Length / 2] + X_Buf[X_Length / 2 - 1]) / 2;
}
if(Allow_Touch_flag==0)
{
rtn_X = 0;
}
if (x_pos == 0)
{
rtn_X = 0;
}
return rtn_X;
#endif
}
uint8_t RTE_Get_Y_SNS(void)
{
#if 1
uint8_t i;
uint8_t j;
uint8 y_pos;
uint8 temp;
GetSurface_Position(NULL_PTR, &y_pos);
Y_Buf[Y_CNT++] = y_pos;
if (Y_CNT == Y_Length)
{
Y_CNT = 0;
}
for (j = 0; j < Y_Length - 1; j++)
{
for (i = 0; i < Y_Length - 1 - j; i++)
{
if (Y_Buf[i] > Y_Buf[i + 1])
{
temp = Y_Buf[i];
Y_Buf[i] = Y_Buf[i + 1];
Y_Buf[i + 1] = temp;
}
}
}
if (Y_Buf[Y_Length - 1] - Y_Buf[0] < Initial_Movement_Hysteresis)
{
Stable_CNT_Y++;
if (Y_Update_Flg == 1)
{
Y_Update = (Y_Buf[0] + Y_Buf[Y_Length - 1]) / 2;
}
if (Stable_CNT_Y > 10)
{
Stable_CNT_Y = 10;
Y_Update_Flg = 0;
rtn_Y = Y_Update;
if ((Y_Buf[0] + Y_Buf[Y_Length - 1]) / 2 - Y_Update > 0)
{
if ((Y_Buf[0] + Y_Buf[Y_Length - 1]) / 2 - Y_Update > Next_Movement_Hysteresis)
{
Stable_CNT_Y = 0;
Y_Update_Flg = 1;
}
}
else
{
if (Y_Update - (Y_Buf[0] + Y_Buf[Y_Length - 1]) / 2 > Next_Movement_Hysteresis)
{
Stable_CNT_Y = 0;
Y_Update_Flg = 1;
}
}
}
}
else
{
Stable_CNT_Y = 0;
Y_Update_Flg = 1;
rtn_Y = (Y_Buf[Y_Length / 2] + Y_Buf[Y_Length / 2 - 1]) / 2;
}
if(Allow_Touch_flag==0)
{
rtn_Y = 0;
}
if (y_pos == 0)
{
rtn_Y = 0;
}
return rtn_Y;
#endif
}
uint8_t g_XY_Touch_And_Below_1N = 0;
uint8_t RTE_Get_TouchBoard_XY_Sts(void) // Not active,Touch,Touch and Press,invalid from sensor
{
// PanelPress_LevelType Press_Level;
Buttons_SignalType XY_Sts = BUTTON_RELEASE;
XY_Sts = TouchSurface_XY_StsRead();
// Press_Level = TouchPanel_PressLevelRead();
if (TouchSurface_is_TouchActive() == TRUE) // PANEL_PRESS_LEVEL0 == Press_Level &&
{
g_XY_Touch_And_Below_1N = 0x01;
}
else
{
g_XY_Touch_And_Below_1N = 0x00;
}
if(Allow_Touch_flag==0)
{
XY_Sts = 0;
}
return XY_Sts;
}
//统计所有触发的通道数量
uint8_t GetActiveChNum (uint16_t chdata[],uint16_t thdata[],uint8_t num)
{
uint8_t i,count;
count = 0;
for (i = 0; i < num; i++)
{
if (chdata[i] > thdata[i])
{
count++;
}
}
return count;
}
//统计连续触发的通道数量
uint8_t GetContinuousChNum(uint16_t chdata[],uint16_t thdata[],uint8_t num)
{
uint8_t i,count,index;
count = 0;
index = 0;
for (i = 0; i < num; i++)
{
if (chdata[i] > thdata[i])
{
//找到第一个触发的通道
index = i;
break;
}
}
if (i == num)
{
//没有触发的通道
return count;
}
for (i = index; i < num; i++)
{
if (chdata[i] <= thdata[i])
{
//找到第一个触发的通道之后第一个不触发的通道
break;
}
}
count = i - index;
return count;
}
#if 1
uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
{
uint8_t ret_val = 0;
uint16_t Two_Finger_Y_data[5] = {};
uint16_t Two_Finger_X_data[5] = {};
uint16_t th_x[5], th_y[5];
uint8_t i, m;
Two_Finger_X_data[0] = Touch_Sensor_delta09;
Two_Finger_X_data[1] = Touch_Sensor_delta08;
Two_Finger_X_data[2] = Touch_Sensor_delta07;
Two_Finger_X_data[3] = Touch_Sensor_delta06;
Two_Finger_X_data[4] = Touch_Sensor_delta05;
Two_Finger_Y_data[0] = Touch_Sensor_delta14;
Two_Finger_Y_data[1] = Touch_Sensor_delta13;
Two_Finger_Y_data[2] = Touch_Sensor_delta12;
Two_Finger_Y_data[3] = Touch_Sensor_delta11;
Two_Finger_Y_data[4] = Touch_Sensor_delta10;
th_x[0] = qtlib_key_configs_set1[9].channel_threshold;
th_x[1] = qtlib_key_configs_set1[8].channel_threshold;
th_x[2] = qtlib_key_configs_set1[7].channel_threshold;
th_x[3] = qtlib_key_configs_set1[6].channel_threshold;
th_x[4] = qtlib_key_configs_set1[5].channel_threshold;
th_y[0] = qtlib_key_configs_set1[14].channel_threshold;
th_y[1] = qtlib_key_configs_set1[13].channel_threshold;
th_y[2] = qtlib_key_configs_set1[12].channel_threshold;
th_y[3] = qtlib_key_configs_set1[11].channel_threshold;
th_y[4] = qtlib_key_configs_set1[10].channel_threshold;
Two_Finger_Y_count = GetActiveChNum(Two_Finger_Y_data,th_y,5U);
Y_count = GetContinuousChNum(Two_Finger_Y_data,th_y,5U);
/*
Two_Finger_Y_count = 0;
for (i = 0; i < 5; i++)
{
if (Two_Finger_Y_data[i] > th_y[i])
{
Two_Finger_Y_count++;
}
}
i = 0;
Y_count = 0;
while (Two_Finger_Y_data[i] <= th_y[i++] && i < 5)
;
i--;
for (; i < 5; i++)
{
if (Two_Finger_Y_data[i] <= th_y[i])
break;
else
Y_count++;
}
*/
Two_Finger_X_count = GetActiveChNum(Two_Finger_X_data,th_x,5U);
X_count = GetContinuousChNum(Two_Finger_X_data,th_x,5U);
/*
Two_Finger_X_count = 0;
for (m = 0; m < 5; m++)
{
if (Two_Finger_X_data[m] > th_x[m])
{
Two_Finger_X_count++;
}
}
m = 0;
X_count = 0;
while (Two_Finger_X_data[m] <= th_x[m++] && m < 5)
;
m--;
for (; m < 5; m++)
{
if (Two_Finger_X_data[m] <= th_x[m])
break;
else
X_count++;
}
*/
// 触发的通道数量 //连续触发的通道数量
if ((Two_Finger_Y_count > 4 && Two_Finger_X_data[0]>th_x[0]) || Y_count != Two_Finger_Y_count || Two_Finger_X_count > 4 || X_count != Two_Finger_X_count)
{
//满足防误触
Allow_Touch_counter++;
if (Allow_Touch_counter >= 15)//60ms
{
Allow_Touch_counter = 15;
Allow_Touch_flag = 0;
}
}
else
{
Allow_Touch_counter = 0;
}
if(Allow_Touch_flag == 1)
{
if (g_XY_Touch_And_Below_1N == TRUE || g_VOICE_Touch_And_Below_1N == TRUE ||
g_MENU_Touch_And_Below_1N == TRUE || g_VOL_Touch_And_Below_1N == TRUE)
{
ret_val = 0x01;
}
}
return ret_val;
}
#endif
uint8_t RTE_Get_Pad_XY_trig(void)
{
Buttons_SignalType XY_Sts = BUTTON_RELEASE;
XY_Sts = TouchSurface_is_TouchActive();
if(Allow_Touch_flag==0)
{
XY_Sts = 0;
}
return XY_Sts;
}
uint8_t RTE_Get_Voice_XY_trig(void)
{
Buttons_SignalType Signal;
Signal = k_voice_touch_Sts;
if(Allow_Touch_flag==0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_Menu_XY_trig(void)
{
Buttons_SignalType Signal;
Signal = k_menu_touch_Sts; // TouchButton_is_TouchActive(BTN_MENU1);
if(Allow_Touch_flag==0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_Vol_XY_trig(void)
{
Buttons_SignalType Signal;
Signal = k_vol_touch_Sts; // TouchButton_is_TouchActive(BTN_VOL1);
if(Allow_Touch_flag==0)
{
Signal = 0;
}
return Signal;
}
uint8_t RTE_Get_ACT_FAULT_OUT_SNS(void)
{
return 0;
}
uint8_t RTE_Get_ACT_LD_OUT_SNS(void)
{
return 0;
}
// Input CAN
uint8_t rtn_data = 0;
// LED on off control
uint8_t RTE_Get_CAN_ActvnOfSteerWhlIllmn(void)
{
// uint8_t temp = 0;
rtn_data = 0;
(void)ReceiveMessage(SIG_ACTVNOFSTEERWHLILLMN, &rtn_data);
return rtn_data;
}
// LED Day/Night Mode switch
extern uint8_t Msg30_timeout_flag;
uint8_t RTE_Get_CAN_TwliBriSts(void)
{
// uint8_t temp = 0;
rtn_data = 0;
(void)ReceiveMessage(SIG_TWLIBRISTS, &rtn_data);
if (Msg30_timeout_flag == 1)
{
rtn_data = 0;
}
return rtn_data;
}
uint8_t RTE_Get_CAN_IntrBriSts(void)
{
// uint8_t temp = 0;
rtn_data = 0;
(void)ReceiveMessage(SIG_INTRBRISTS, &rtn_data);
return rtn_data;
}
uint8_t RTE_Get_CAN_SteerWhlTouchBdLeFaildFb(void)
{
// uint8_t temp = 0;
rtn_data = 0;
//(void)ReceiveMessage(SIG_INTRBRISTS, &rtn_data);
return rtn_data;
}
uint8_t RTE_Get_CAN_SwtOfKeyTone(void)
{
// uint8_t temp = 0;
rtn_data = 0;
(void)ReceiveMessage(SIG_SWTOFKEYTONE, &rtn_data);
return rtn_data;
}
// Vibration control
uint8_t RTE_Get_CAN_VibrationFbToSwtp(void)
{
// uint8_t temp = 0;
rtn_data = 0;
//(void)ReceiveMessage(SIG_SWTOFKEYTONE, &rtn_data);
return rtn_data;
}
uint8_t RTE_Get_CAN_IhuPrivateDHUCanFr01_Frame_Timeout(void) // 0x030 frame
{
bool result = false;
// if (ReadFlagRxErrorSig(SIG_) == COM_TRUE)
//{
// result = true;
// }
return result;
}
// Output Control
void RTE_Set_illumination_BL_PWM(uint32_t Percent)
{
/* to set PWM for LED ,PWM from 0 to 100*/
uint32_t temp = 0;
static uint32_t local_percent = 0xffffffff;
// uint8_t LED_Delay = 0;
// LED_Delay = SYSTICK_Get1_5_S_Flag();
// if(LED_Delay==1)
// {
if (Fuction_State == Function_State_A)
{
if (local_percent != Percent)
{
local_percent = Percent;
if (Percent == 100000 || Percent == 0) // Day mode
{
temp = (7999 / 100) * Percent / 1000;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else // Night mode
{
if (Percent == 625)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 729)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 937)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 1146)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 1354)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 1563)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 1875)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 2292)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 2813)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 3333)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 4063)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 4896)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 5938)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 7188)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 8646)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
else if (Percent == 10417)
{
temp = (7999 / 100) * Percent / 1000;
temp /= 2;
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
}
}
}
}
// }
}
// void RTE_Set_Power_AD_Ctrl(uint8_t Value);
// ACT control??
uint8_t trigger_ACT = 0;
void RTE_Set_ACT_Vibration(uint8_t Sts)
{
if (Sts == 1)
{
if (trigger_ACT == 0)
{
trigger_ACT = 1;
// speeker_Tig_Once(50, SA51024_STRENGTH_LEVEL3);
}
}
else
{
trigger_ACT = 0;
}
}
// void RTE_Set_Gain0(uint8_t Value);
// void RTE_Set_Gain1(uint8_t Value);
// void RTE_Set_SDZ(uint8_t Value);
// void RTE_Set_INP(uint8_t Value);
// Output CAN
void RTE_Set_CAN_RiMFctActSgCe(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_RIMFCTACTSGCE, &Value);
}
void RTE_Set_CAN_RiMFctActSgDn(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_RIMFCTACTSGDN, &Value);
}
void RTE_Set_CAN_RiMFctActSgLe(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_RIMFCTACTSGLE, &Value);
}
void RTE_Set_CAN_RiMFctActSgRi(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_RIMFCTACTSGRI, &Value);
}
void RTE_Set_CAN_RiMFctActSgUp(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_RIMFCTACTSGUP, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdVoice(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_key != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_STEERWHLTOUCHBDVOICE, &Value);
}
void RTE_Set_CAN_SwpLeRiStsRi(uint8_t Value)
{
InitMessage(SIG_SWPLERISTSRI, &Value);
}
void RTE_Set_CAN_SwpUpDwnStsRi(uint8_t Value)
{
InitMessage(SIG_SWPUPDWNSTSRI, &Value);
}
void RTE_Set_CAN_SldVolCtrlSts(uint8_t Value)
{
InitMessage(SIG_SLDVOLCTRLSTS, &Value);
}
void RTE_Set_CAN_DiagcFailrTouchPanSWTRCmnFltSts(uint8_t Value)
{
// InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRCMNFLTSTS, &Value);
}
void RTE_Set_CAN_DiagcFailrTouchPanSWTRTouchdFltSts(uint8_t Value)
{
// InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRTOUCHDFLTSTS, &Value);
}
void RTE_Set_CAN_DiagcFailrTouchPanSWTRVibrationFltSts(uint8_t Value)
{
// InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRVIBRATIONFLTSTS, &Value);
}
void RTE_Set_CAN_DiagcFailrTouchPanSWTRSnsrFltSts(uint8_t Value)
{
// InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRSNSRFLTSTS, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdMenu(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_key != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_STEERWHLTOUCHBDMENU, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdDn(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_key != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_STEERWHLTOUCHBDDN, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdRiChks(uint8_t Value)
{
InitMessage(SIG_STEERWHLTOUCHBDRICHKS, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdRiCntr(uint8_t Value)
{
InitMessage(SIG_STEERWHLTOUCHBDRICNTR, &Value);
// TouchBoard_RC=Value;
}
uint8_t g_last_SteerWhlTouchBdSts = BUTTON_RELEASE;
void RTE_Set_CAN_SteerWhlTouchBdRiSteerWhlTouchBdSts(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_STEERWHLTOUCHBDRISTEERWHLTOUCHBDSTS, &Value);
// TouchBoard_Sts=Value;
}
void RTE_Set_CAN_SteerWhlTouchBdRiTouchPosnX(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDRITOUCHPOSNX, &Value);
// TouchBoard_X=Value;
}
void RTE_Set_CAN_SteerWhlTouchBdRiTouchPosnY(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDRITOUCHPOSNY, &Value);
// TouchBoard_Y=Value;
}
uint8_t Pre_309_req;
uint8_t Remain_frame;
uint8_t Remain_cnt;
uint8_t Remain_X = 0;
uint8_t Remain_Y = 0;
uint8_t Frame_0x309_RC = 15;
void RTE_Set_SEND_CAN_0x309_immediately(uint8_t Value) // called immediately in 10ms task when touch,or touch and press in XY area
{
uint8_t Current_309_req;
Current_309_req = Value;
if (Value == 1)
{
if (Frame_0x309_RC > 14)
{
Frame_0x309_RC = 0;
}
else
{
Frame_0x309_RC++;
}
InitMessage(SIG_STEERWHLTOUCHBDRICNTR, &Frame_0x309_RC);
// Send a 0x309 frame
OsekComTxReqFrmSwtrPrivateDHUCanFr01();
}
if (Value == 0 && Pre_309_req == 1)
{
Remain_frame = 1;
}
Pre_309_req = Current_309_req;
if (Remain_frame == 1)
{
InitMessage(SIG_STEERWHLTOUCHBDRITOUCHPOSNX, &Remain_X);
InitMessage(SIG_STEERWHLTOUCHBDRITOUCHPOSNY, &Remain_Y);
InitMessage(SIG_STEERWHLTOUCHBDRISTEERWHLTOUCHBDSTS, &Remain_Y);
if (Remain_cnt < 2)
{
if (Frame_0x309_RC > 14)
{
Frame_0x309_RC = 0;
}
else
{
Frame_0x309_RC++;
}
InitMessage(SIG_STEERWHLTOUCHBDRICNTR, &Frame_0x309_RC);
OsekComTxReqFrmSwtrPrivateDHUCanFr01();
Remain_cnt++;
}
else
{
Remain_frame = 0;
Remain_cnt = 0;
}
}
}
void RTE_Set_SEND_CAN_0x307_25ms(uint8_t Value) // when touch,or touch and press in 3 button area,0x305 is sent every 25ms
{
if (Value == 1)
{
// Send a 0x307 frame
OsekComTxReqFrmSwtrPrivateDHUCanFr02();
}
}
void RTE_Set_SEND_CAN_0x307_1000ms(uint8_t Value) // when 3 button area is not active,0x305 is Sent every 1000ms
{
if (Value == 1)
{
// Send a 0x307 frame
OsekComTxReqFrmSwtrPrivateDHUCanFr02();
}
}
uint8_t UbInitValue = 1;
void RTE_Set_All_UB(void)
{
InitMessage(SIG_DIAGCFAILRTOUCHPANSWTR_UB, &UbInitValue);
InitMessage(SIG_RIMFCTACTSGCE_UB, &UbInitValue);
InitMessage(SIG_RIMFCTACTSGDN_UB, &UbInitValue);
InitMessage(SIG_RIMFCTACTSGLE_UB, &UbInitValue);
InitMessage(SIG_RIMFCTACTSGRI_UB, &UbInitValue);
InitMessage(SIG_RIMFCTACTSGUP_UB, &UbInitValue);
InitMessage(SIG_SLDVOLCTRLSTS_UB, &UbInitValue);
InitMessage(SIG_STEERWHLTOUCHBDDN_UB, &UbInitValue);
InitMessage(SIG_STEERWHLTOUCHBDMENU_UB, &UbInitValue);
InitMessage(SIG_STEERWHLTOUCHBDRI_UB, &UbInitValue);
InitMessage(SIG_STEERWHLTOUCHBDVOICE_UB, &UbInitValue);
InitMessage(SIG_SWPLERISTSRI_UB, &UbInitValue);
InitMessage(SIG_SWPUPDWNSTSRI_UB, &UbInitValue);
InitMessage(SIG_SWTRPARTNOCMPL_UB, &UbInitValue);
InitMessage(SIG_SWTRSERNO_UB, &UbInitValue);
}
const uint16_t max_on_time_arr[16] = {
// 0 1 2 3 4 5 6 7
20,20,20,20,20,50,50,50,
50,50,50,50,50,50,50,50,
};
const uint16_t low_baseline_reset_arr[16] = {
// 0 1 2 3 4 5 6 7
56,51,64,54,56,59,63,60,
60,53,58,56,54,57,55,40,
};
#if 1
void RTE_Set_All_Test_Value(void) // 2ms
{
#if 1
uint16_t Press_baseline;
uint16_t Press_signal, Press_preload;
uint8_t i,frccdata[8]={0};
static uint32_t Press_reset_counter[16], Press_repeat_counter[16], baseline_error_counter, baseline_error_repeat_counter;
static uint32_t low_baseline_reset_counter[16];
Press_baseline = Get_forcedetect_basline_value();
Press_signal = Get_forcedetect_force_value();
Press_preload = Get_forcedetect_preload_value();
// uint16 temp = CurrentPosition;
InitMessage(SIG_SWTRPRESSBASELINE, &Press_baseline); // Press_baseline
if (Press_signal < 4000)
{
InitMessage(SIG_SWTRPRESSSIGNAL, &Press_signal); // Press_signal-Convert to N: TouchPanel_PressNValue = ((float32)Press_signal / (float32)0xF2);
}
// InitMessage(SIG_SWTRPRESSSIGNAL, &Fr08_send_flag);
#endif
for (i = 0; i < 15; i++)
{
if (get_sensor_node_signal(i) > (get_sensor_node_reference(i) + qtlib_key_configs_set1[i].channel_threshold))
{
Press_reset_counter[i]++;
if (Press_reset_counter[i] >= (500 * max_on_time_arr[i])) //
{
if (Press_repeat_counter[i] == 0)
{
Press_repeat_counter[i] = 55000;
Press_reset_counter[i] = 0;
calibrate_node(i);
}
else
{
touch_reset2times_flag = 1;
}
}
}
else
{
Press_reset_counter[i] = 0;
}
if (Press_repeat_counter[i] > 0)
{
Press_repeat_counter[i]--;
}
if (get_sensor_node_signal(i) + low_baseline_reset_arr[i] < get_sensor_node_reference(i))
{
low_baseline_reset_counter[i]++;
if (low_baseline_reset_counter[i] > 250)
{
low_baseline_reset_counter[i] = 0;
calibrate_node(i);
}
}
else
{
low_baseline_reset_counter[i] = 0;
}
}
for (i = 0; i < 15; i++)
{
if (get_sensor_node_reference(i) == 0)
{
baseline_error_counter++;
if (baseline_error_counter > 25000) // 50s
{
if (baseline_error_repeat_counter != 0)
{
touch_reset2times_flag = 1;
}
else
{
baseline_error_repeat_counter = 55000; // 110S
ADC0_Initialize();
ADC0_Enable();
}
}
break;
}
}
if (i == 15)
{
baseline_error_counter = 0;
}
if (baseline_error_repeat_counter > 0)
{
baseline_error_repeat_counter--;
}
Touch_Sensor_Sts00 = get_sensor_node_signal(0U);
Touch_Sensor_Sts01 = get_sensor_node_signal(1U);
Touch_Sensor_Sts02 = get_sensor_node_signal(2U);
Touch_Sensor_Sts03 = get_sensor_node_signal(3U);
Touch_Sensor_Sts04 = get_sensor_node_signal(4U);
Touch_Sensor_Sts05 = get_sensor_node_signal(5U);
Touch_Sensor_Sts06 = get_sensor_node_signal(6U);
Touch_Sensor_Sts07 = get_sensor_node_signal(7U);
Touch_Sensor_Sts08 = get_sensor_node_signal(8U);
Touch_Sensor_Sts09 = get_sensor_node_signal(9U);
Touch_Sensor_Sts10 = get_sensor_node_signal(10U);
Touch_Sensor_Sts11 = get_sensor_node_signal(11U);
Touch_Sensor_Sts12 = get_sensor_node_signal(12U);
Touch_Sensor_Sts13 = get_sensor_node_signal(13U);
Touch_Sensor_Sts14 = get_sensor_node_signal(14U);
// get_sensor_state
Touch_Sensor_Ref00 = get_sensor_node_reference(0U);
Touch_Sensor_Ref01 = get_sensor_node_reference(1U);
Touch_Sensor_Ref02 = get_sensor_node_reference(2U);
Touch_Sensor_Ref03 = get_sensor_node_reference(3U);
Touch_Sensor_Ref04 = get_sensor_node_reference(4U);
Touch_Sensor_Ref05 = get_sensor_node_reference(5U);
Touch_Sensor_Ref06 = get_sensor_node_reference(6U);
Touch_Sensor_Ref07 = get_sensor_node_reference(7U);
Touch_Sensor_Ref08 = get_sensor_node_reference(8U);
Touch_Sensor_Ref09 = get_sensor_node_reference(9U);
Touch_Sensor_Ref10 = get_sensor_node_reference(10U);
Touch_Sensor_Ref11 = get_sensor_node_reference(11U);
Touch_Sensor_Ref12 = get_sensor_node_reference(12U);
Touch_Sensor_Ref13 = get_sensor_node_reference(13U);
Touch_Sensor_Ref14 = get_sensor_node_reference(14U);
Touch_Sensor_CC00 = get_sensor_cc_val(0U);
Touch_Sensor_CC01 = get_sensor_cc_val(1U);
Touch_Sensor_CC02 = get_sensor_cc_val(2U);
Touch_Sensor_CC03 = get_sensor_cc_val(3U);
Touch_Sensor_CC04 = get_sensor_cc_val(4U);
Touch_Sensor_CC05 = get_sensor_cc_val(5U);
Touch_Sensor_CC06 = get_sensor_cc_val(6U);
Touch_Sensor_CC07 = get_sensor_cc_val(7U);
Touch_Sensor_CC08 = get_sensor_cc_val(8U);
Touch_Sensor_CC09 = get_sensor_cc_val(9U);
Touch_Sensor_CC10 = get_sensor_cc_val(10U);
Touch_Sensor_CC11 = get_sensor_cc_val(11U);
Touch_Sensor_CC12 = get_sensor_cc_val(12U);
Touch_Sensor_CC13 = get_sensor_cc_val(13U);
Touch_Sensor_CC14 = get_sensor_cc_val(14U);
frccdata[0] = (uint8_t)Touch_Sensor_CC00;
frccdata[1] = Touch_Sensor_CC00>>8;
frccdata[2] = (uint8_t)Touch_Sensor_CC01;
frccdata[3] = Touch_Sensor_CC01>>8;
frccdata[4] = (uint8_t)Touch_Sensor_CC02;
frccdata[5] = Touch_Sensor_CC02>>8;
frccdata[6] = (uint8_t)Touch_Sensor_CC03;
frccdata[7] = Touch_Sensor_CC03>>8;
OsekComSetFR09data(frccdata);
frccdata[0] = (uint8_t)Touch_Sensor_CC04;
frccdata[1] = Touch_Sensor_CC04>>8;
frccdata[2] = (uint8_t)Touch_Sensor_CC05;
frccdata[3] = Touch_Sensor_CC05>>8;
frccdata[4] = (uint8_t)Touch_Sensor_CC06;
frccdata[5] = Touch_Sensor_CC06>>8;
frccdata[6] = (uint8_t)Touch_Sensor_CC07;
frccdata[7] = Touch_Sensor_CC07>>8;
OsekComSetFR0Adata(frccdata);
frccdata[0] = (uint8_t)Touch_Sensor_CC08;
frccdata[1] = Touch_Sensor_CC08>>8;
frccdata[2] = (uint8_t)Touch_Sensor_CC09;
frccdata[3] = Touch_Sensor_CC09>>8;
frccdata[4] = (uint8_t)Touch_Sensor_CC10;
frccdata[5] = Touch_Sensor_CC10>>8;
frccdata[6] = (uint8_t)Touch_Sensor_CC11;
frccdata[7] = Touch_Sensor_CC11>>8;
OsekComSetFR0Bdata(frccdata);
frccdata[0] = (uint8_t)Touch_Sensor_CC12;
frccdata[1] = Touch_Sensor_CC12>>8;
frccdata[2] = (uint8_t)Touch_Sensor_CC13;
frccdata[3] = Touch_Sensor_CC13>>8;
frccdata[4] = (uint8_t)Touch_Sensor_CC14;
frccdata[5] = Touch_Sensor_CC14>>8;
OsekComSetFR0Cdata(frccdata);
Touch_Sensor_delta00 = Touch_Sensor_Sts00 > Touch_Sensor_Ref00 ? Touch_Sensor_Sts00 - Touch_Sensor_Ref00 : 0;
Touch_Sensor_delta01 = Touch_Sensor_Sts01 > Touch_Sensor_Ref01 ? Touch_Sensor_Sts01 - Touch_Sensor_Ref01 : 0;
Touch_Sensor_delta02 = Touch_Sensor_Sts02 > Touch_Sensor_Ref02 ? Touch_Sensor_Sts02 - Touch_Sensor_Ref02 : 0;
Touch_Sensor_delta03 = Touch_Sensor_Sts03 > Touch_Sensor_Ref03 ? Touch_Sensor_Sts03 - Touch_Sensor_Ref03 : 0;
Touch_Sensor_delta04 = Touch_Sensor_Sts04 > Touch_Sensor_Ref04 ? Touch_Sensor_Sts04 - Touch_Sensor_Ref04 : 0;
Touch_Sensor_delta05 = Touch_Sensor_Sts05 > Touch_Sensor_Ref05 ? Touch_Sensor_Sts05 - Touch_Sensor_Ref05 : 0;
Touch_Sensor_delta06 = Touch_Sensor_Sts06 > Touch_Sensor_Ref06 ? Touch_Sensor_Sts06 - Touch_Sensor_Ref06 : 0;
Touch_Sensor_delta07 = Touch_Sensor_Sts07 > Touch_Sensor_Ref07 ? Touch_Sensor_Sts07 - Touch_Sensor_Ref07 : 0;
Touch_Sensor_delta08 = Touch_Sensor_Sts08 > Touch_Sensor_Ref08 ? Touch_Sensor_Sts08 - Touch_Sensor_Ref08 : 0;
Touch_Sensor_delta09 = Touch_Sensor_Sts09 > Touch_Sensor_Ref09 ? Touch_Sensor_Sts09 - Touch_Sensor_Ref09 : 0;
Touch_Sensor_delta10 = Touch_Sensor_Sts10 > Touch_Sensor_Ref10 ? Touch_Sensor_Sts10 - Touch_Sensor_Ref10 : 0;
Touch_Sensor_delta11 = Touch_Sensor_Sts11 > Touch_Sensor_Ref11 ? Touch_Sensor_Sts11 - Touch_Sensor_Ref11 : 0;
Touch_Sensor_delta12 = Touch_Sensor_Sts12 > Touch_Sensor_Ref12 ? Touch_Sensor_Sts12 - Touch_Sensor_Ref12 : 0;
Touch_Sensor_delta13 = Touch_Sensor_Sts13 > Touch_Sensor_Ref13 ? Touch_Sensor_Sts13 - Touch_Sensor_Ref13 : 0;
Touch_Sensor_delta14 = Touch_Sensor_Sts14 > Touch_Sensor_Ref14 ? Touch_Sensor_Sts14 - Touch_Sensor_Ref14 : 0;
// Touch_Sensor_Sts13=g_XY_Touch_And_Below_1N;
InitMessage(SIG_SWTRSENSOR1_SIGNAL, &Touch_Sensor_Sts00);
InitMessage(SIG_SWTRSENSOR2_SIGNAL, &Touch_Sensor_Sts01);
InitMessage(SIG_SWTRSENSOR3_SIGNAL, &Touch_Sensor_Sts02);
InitMessage(SIG_SWTRSENSOR4_SIGNAL, &Touch_Sensor_Sts03);
InitMessage(SIG_SWTRSENSOR5_SIGNAL, &Touch_Sensor_Sts04);
InitMessage(SIG_SWTRSENSOR6_SIGNAL, &Touch_Sensor_Sts05);
InitMessage(SIG_SWTRSENSOR7_SIGNAL, &Touch_Sensor_Sts06);
InitMessage(SIG_SWTRSENSOR8_SIGNAL, &Touch_Sensor_Sts07);
InitMessage(SIG_SWTRSENSOR9_SIGNAL, &Touch_Sensor_Sts08);
InitMessage(SIG_SWTRSENSOR10_SIGNAL, &Touch_Sensor_Sts09);
InitMessage(SIG_SWTRSENSOR11_SIGNAL, &Touch_Sensor_Sts10);
InitMessage(SIG_SWTRSENSOR12_SIGNAL, &Touch_Sensor_Sts11);
InitMessage(SIG_SWTRSENSOR13_SIGNAL, &Touch_Sensor_Sts12);
InitMessage(SIG_SWTRSENSOR14_SIGNAL, &Touch_Sensor_Sts13);
InitMessage(SIG_SWTRSENSOR15_SIGNAL, &Touch_Sensor_Sts14);
InitMessage(SIG_SWTRSENSOR1_BASELINE, &Touch_Sensor_Ref00);
InitMessage(SIG_SWTRSENSOR2_BASELINE, &Touch_Sensor_Ref01);
InitMessage(SIG_SWTRSENSOR3_BASELINE, &Touch_Sensor_Ref02);
InitMessage(SIG_SWTRSENSOR4_BASELINE, &Touch_Sensor_Ref03);
InitMessage(SIG_SWTRSENSOR5_BASELINE, &Touch_Sensor_Ref04);
InitMessage(SIG_SWTRSENSOR6_BASELINE, &Touch_Sensor_Ref05);
InitMessage(SIG_SWTRSENSOR7_BASELINE, &Touch_Sensor_Ref06);
InitMessage(SIG_SWTRSENSOR8_BASELINE, &Touch_Sensor_Ref07);
InitMessage(SIG_SWTRSENSOR9_BASELINE, &Touch_Sensor_Ref08);
InitMessage(SIG_SWTRSENSOR10_BASELINE, &Touch_Sensor_Ref09);
InitMessage(SIG_SWTRSENSOR11_BASELINE, &Touch_Sensor_Ref10);
InitMessage(SIG_SWTRSENSOR12_BASELINE, &Touch_Sensor_Ref11);
InitMessage(SIG_SWTRSENSOR13_BASELINE, &Touch_Sensor_Ref12);
InitMessage(SIG_SWTRSENSOR14_BASELINE, &Touch_Sensor_Ref13);
InitMessage(SIG_SWTRSENSOR15_BASELINE, &Touch_Sensor_Ref14);
g16_DiagTouchPressSenRes[0][0] = Touch_Sensor_Ref00;
g16_DiagTouchPressSenRes[0][1] = Touch_Sensor_Ref01;
g16_DiagTouchPressSenRes[0][2] = Touch_Sensor_Ref02;
g16_DiagTouchPressSenRes[0][3] = Touch_Sensor_Ref03;
g16_DiagTouchPressSenRes[0][4] = Touch_Sensor_Ref04;
g16_DiagTouchPressSenRes[0][5] = Touch_Sensor_Ref05;
g16_DiagTouchPressSenRes[0][6] = Touch_Sensor_Ref06;
g16_DiagTouchPressSenRes[0][7] = Touch_Sensor_Ref07;
g16_DiagTouchPressSenRes[0][8] = Touch_Sensor_Ref08;
g16_DiagTouchPressSenRes[0][9] = Touch_Sensor_Ref09;
g16_DiagTouchPressSenRes[0][10] = Touch_Sensor_Ref10;
g16_DiagTouchPressSenRes[0][11] = Touch_Sensor_Ref11;
g16_DiagTouchPressSenRes[0][12] = Touch_Sensor_Ref12;
g16_DiagTouchPressSenRes[0][13] = Touch_Sensor_Ref13;
g16_DiagTouchPressSenRes[0][14] = Touch_Sensor_Ref14;
g16_DiagTouchPressSenRes[1][0] = Touch_Sensor_Sts00;
g16_DiagTouchPressSenRes[1][1] = Touch_Sensor_Sts01;
g16_DiagTouchPressSenRes[1][2] = Touch_Sensor_Sts02;
g16_DiagTouchPressSenRes[1][3] = Touch_Sensor_Sts03;
g16_DiagTouchPressSenRes[1][4] = Touch_Sensor_Sts04;
g16_DiagTouchPressSenRes[1][5] = Touch_Sensor_Sts05;
g16_DiagTouchPressSenRes[1][6] = Touch_Sensor_Sts06;
g16_DiagTouchPressSenRes[1][7] = Touch_Sensor_Sts07;
g16_DiagTouchPressSenRes[1][8] = Touch_Sensor_Sts08;
g16_DiagTouchPressSenRes[1][9] = Touch_Sensor_Sts09;
g16_DiagTouchPressSenRes[1][10] = Touch_Sensor_Sts10;
g16_DiagTouchPressSenRes[1][11] = Touch_Sensor_Sts11;
g16_DiagTouchPressSenRes[1][12] = Touch_Sensor_Sts12;
g16_DiagTouchPressSenRes[1][13] = Touch_Sensor_Sts13;
g16_DiagTouchPressSenRes[1][14] = Touch_Sensor_Sts14;
g16_DiagTouchPressSenRes[2][0] = Press_baseline;
g16_DiagTouchPressSenRes[2][1] = Press_signal;
g16_DiagTouchPressSenRes[2][2] = Press_preload;
uint16_t contact_size = get_scroller_contact_size(0);
InitMessage(SIG_SWTRSENSOR16_SIGNAL, &contact_size);
uint16_t position = get_scroller_position(0);
InitMessage(SIG_SWTRSENSOR16_BASELINE, &position);
}
#endif