1647 lines
48 KiB
C

// For SWTL
#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"
#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 "P417_SWTL_App_ert_rtw/P417_SWTL_App.h"
#include "TouchPanel/TouchPanel.h"
#include "forceSnsr/forcedetect.h"
#include "TLE9263/TLE926x_Main.h"
#include "DiagnosticL/UDS/UDS_Services_Common.h"
#include "plib_systick.h"
#include "FunctionState.h"
#include "SysDiagDetect.h"
#include "touch_api_ptc.h"
// For SWTL
// #include "Global.h"
#ifndef uint8_t
#define uint8_t unsigned char
#endif
#ifndef uint16_t
#define uint16_t unsigned short
#endif
#ifndef uint32_t
#define uint32_t unsigned int
#endif
#define Cncl_Btn_E2EID ((uint16_t)(0x2136)) // in CAN ID 0x305
extern uint8 CurrentPosition;
uint8_t touch_reset2times_flag = 0;
uint8_t Two_Finger_Y_count = 0;
uint8_t Two_Finger_X_count = 0;
uint8_t X_count = 0;
uint8_t Y_count = 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;
uint16_t Touch_Sensor_Sts15;
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_Ref15;
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_CC15;
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; // TJP2/ADAS2
uint16_t Touch_Sensor_delta14; // Res2
uint16_t Touch_Sensor_delta15; // Cancel2
uint8_t RTE_Get_TouchBoard_CRC(void)
{
return 0;
}
volatile uint8_t Cancel_RC;
volatile uint8_t Cancel_Sts;
volatile uint8_t Cancel_Qf1;
uint8_t RTE_Get_RC(void)
{
return Cancel_RC;
}
// #define Cncl_Btn_E2EID ((uint16_t)(0x2136)) // in CAN ID 0x305
uint8_t RTE_Get_Cancel_CRC(void)
{
uint8_t Crc_Value = 0x00;
uint8_t i, j;
uint8_t Data[5];
Data[0] = (uint8_t)(Cncl_Btn_E2EID & 0x00FF); // E2E ID low byte
Data[1] = (uint8_t)((Cncl_Btn_E2EID & 0xFF00) >> 8); // E2E ID high byte
Data[2] = Cancel_RC;
Data[3] = Cancel_Qf1;
Data[4] = Cancel_Sts;
for (i = 0; i < 5; i++)
{
Crc_Value ^= Data[i];
for (j = 0; j < 8; j++)
{
if (Crc_Value & 0x80u)
{
Crc_Value <<= 1;
Crc_Value ^= 0x1du;
}
else
{
Crc_Value <<= 1;
}
}
}
Crc_Value ^= 0x00u;
return Crc_Value & 0xffu;
}
// 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_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 RTE_Get_TouchBoard_ADAS1_Sts(void) // TJP1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
if (CurrentPosition == 2)
{
Signal = TouchPanel_BtnSignalRead(BTN_ADAS1);
}
if (Allow_Touch_flag == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_ADAS2_Sts(void) // TJP2
{
Buttons_SignalType Signal = BUTTON_RELEASE;
// Signal = TouchPanel_BtnSignalRead(BTN_TJP2);
return Signal;
}
uint8_t RTE_Get_TouchBoard_Resu1_Sts(void) // Resume1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
if (CurrentPosition == 1)
{
Signal = TouchPanel_BtnSignalRead(BTN_RESUME1);
}
if (Allow_Touch_flag == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_Resu2_Sts(void) // Resume2
{
Buttons_SignalType Signal = BUTTON_RELEASE;
// Signal = TouchPanel_BtnSignalRead(BTN_RES2);
return Signal;
}
uint8_t RTE_Get_TouchBoard_Cncl1_Sts(void) // Cancel1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
if (CurrentPosition == 3)
{
Signal = TouchPanel_BtnSignalRead(BTN_CANCEL1);
}
if (Allow_Touch_flag == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_Cncl2_Sts(void) // Cancel2
{
Buttons_SignalType Signal = BUTTON_RELEASE;
// Signal = TouchPanel_BtnSignalRead(BTN_CANCEL2);
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_SWPLERISTSLE_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_SWPUPDWNSTSLE_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 Initial_Movement_Hysteresis 10
#define Next_Movement_Hysteresis 5
#define X_Length 6
#define Y_Length 6
uint8_t X_Buf[X_Length];
uint8_t Y_Buf[Y_Length];
uint8_t X_CNT;
uint8_t Y_CNT;
uint8_t Stable_CNT_X;
uint8_t Stable_CNT_Y;
uint8_t X_Update_Flg;
uint8_t Y_Update_Flg;
uint8_t X_Update;
uint8_t Y_Update;
uint8_t rtn_X;
uint8_t rtn_Y;
uint8_t RTE_Get_X_SNS(void)
{
#if 1
uint8_t i;
uint8_t j;
uint8 x_pos;
uint8 temp;
// uint8 rtn=0;
if (BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_RESUME1) ||
BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_CANCEL1) ||
BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_ADAS1))
{
x_pos = 0x00;
}
else
{
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 (x_pos == 0)
{
rtn_X = 0;
}
if (Allow_Touch_flag == 0)
{
rtn_X = 0;
}
return rtn_X;
#endif
}
// uint8_t RTE_Get_Y1_SNS(void);
// uint8_t RTE_Get_Y2_SNS(void);
// uint8_t RTE_Get_Y3_SNS(void);
// uint8_t RTE_Get_Y4_SNS(void);
// uint8_t RTE_Get_Y5_SNS(void);
uint8_t RTE_Get_Y_SNS(void)
{
#if 1
uint8_t i;
uint8_t j;
uint8 y_pos;
uint8 temp;
if (BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_RESUME1) ||
BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_CANCEL1) ||
BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_ADAS1))
{
y_pos = 0x00;
}
else
{
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 (y_pos == 0)
{
rtn_Y = 0;
}
if (Allow_Touch_flag == 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;
if (Allow_Touch_flag == 1)
{
// Allow_Touch_flag=1;
XY_Sts = TouchSurface_XY_StsRead();
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;
}
}
return XY_Sts;
}
uint8_t RTE_Get_ACT_FAULT_OUT_SNS(void)
{
return 0;
}
uint8_t RTE_Get_ACT_LD_OUT_SNS(void)
{
return 0;
}
uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
{
#if 1
uint8_t ret_val = 0;
// Buttons_SignalType XY_Sts = BUTTON_RELEASE;
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_delta03;
Two_Finger_X_data[1] = Touch_Sensor_delta04;
Two_Finger_X_data[2] = Touch_Sensor_delta05;
Two_Finger_X_data[3] = Touch_Sensor_delta06;
Two_Finger_X_data[4] = Touch_Sensor_delta07;
Two_Finger_Y_data[0] = Touch_Sensor_delta08;
Two_Finger_Y_data[1] = Touch_Sensor_delta09;
Two_Finger_Y_data[2] = Touch_Sensor_delta10;
Two_Finger_Y_data[3] = Touch_Sensor_delta11;
Two_Finger_Y_data[4] = Touch_Sensor_delta12;
th_x[0] = qtlib_key_configs_set1[3].channel_threshold;
th_x[1] = qtlib_key_configs_set1[4].channel_threshold;
th_x[2] = qtlib_key_configs_set1[5].channel_threshold;
th_x[3] = qtlib_key_configs_set1[6].channel_threshold;
th_x[4] = qtlib_key_configs_set1[7].channel_threshold;
th_y[0] = qtlib_key_configs_set1[8].channel_threshold;
th_y[1] = qtlib_key_configs_set1[9].channel_threshold;
th_y[2] = qtlib_key_configs_set1[10].channel_threshold;
th_y[3] = qtlib_key_configs_set1[11].channel_threshold;
th_y[4] = qtlib_key_configs_set1[12].channel_threshold;
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 = 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 && CurrentPosition >= 4)
{
ret_val = 0x01;
}
}
return ret_val;
#endif
}
// Input CANimage.png
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;
}
extern uint8_t Msg30_timeout_flag;
// LED Day/Night Mode switch
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)
{
// 100000 means 100%
/* 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;
// temp = Percent * 0xff / 100;
if (Percent == 100000 || Percent == 0) // Day mode
{
temp = 7999 * Percent / 1000 / 100; // TJP PWM
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 250 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else // Night mode
{
if (Percent == 625)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 480 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 729)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 540 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 937)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 540 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 1146)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 380 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 1354)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 380 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 1563)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 390 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 1875)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 330 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 2292)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 330 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 2813)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 310 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 3333)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 300 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 4063)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 290 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 4896)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 290 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 5938)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 260 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 7188)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 260 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 8646)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 260 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_t)temp);
}
else if (Percent == 10417)
{
Percent /= 2;
temp = 7999 * Percent / 1000 / 100; // TJP PWM
// IoHw_PWM3_Setter(PWM_CHANNEL_CHANNEL0, temp);
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)temp);
temp = 260 * Percent / 100000; // Res CANCEL PWM
TC0_Compare8bitMatch1Set((uint8_t)temp);
TC1_Compare8bitMatch0Set((uint8_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_LeMFctActSgCe(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_LEMFCTACTSGCE, &Value);
}
void RTE_Set_CAN_LeMFctActSgDn(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_LEMFCTACTSGDN, &Value);
}
void RTE_Set_CAN_LeMFctActSgLe(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_LEMFCTACTSGLE, &Value);
}
void RTE_Set_CAN_LeMFctActSgRi(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_LEMFCTACTSGRI, &Value);
}
void RTE_Set_CAN_LeMFctActSgUp(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_LEMFCTACTSGUP, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdADAS(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_key2 != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_STEERWHLTOUCHBDADAS, &Value);
}
void RTE_Set_CAN_SwpLeRiStsLe(uint8_t Value)
{
InitMessage(SIG_SWPLERISTSLE, &Value);
}
void RTE_Set_CAN_SwpUpDwnStsLe(uint8_t Value)
{
InitMessage(SIG_SWPUPDWNSTSLE, &Value);
}
void RTE_Set_CAN_DiagcFailrTouchPanSWTLCmnFltSts(uint8_t Value)
{
// InitMessage(SIG_DIAGCFAILRTOUCHPANSWTLCMNFLTSTS, &Value);
}
void RTE_Set_CAN_DiagcFailrTouchPanSWTLTouchdFltSts(uint8_t Value)
{
// InitMessage(SIG_DIAGCFAILRTOUCHPANSWTLTOUCHDFLTSTS, &Value);
}
void RTE_Set_CAN_DiagcFailrTouchPanSWTLVibrationFltSts(uint8_t Value)
{
// InitMessage(SIG_DIAGCFAILRTOUCHPANSWTLVIBRATIONFLTSTS, &Value);
}
void RTE_Set_CAN_DiagcFailrTouchPanSWTLSnsrFltSts(uint8_t Value)
{
// InitMessage(SIG_DIAGCFAILRTOUCHPANSWTLSNSRFLTSTS, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdCnclChks(uint8_t Value)
{
Value = RTE_Get_Cancel_CRC();
InitMessage(SIG_STEERWHLTOUCHBDCNCLCHKS, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdCnclCntr(uint8_t Value)
{
}
void RTE_Set_CAN_SteerWhlTouchBdCnclQf1(uint8_t Value)
{
if (Touch_Sensor_Fault_key3 != Touch_NoFault)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDCNCLQF1, &Value);
Cancel_Qf1 = Value;
}
void RTE_Set_CAN_SteerWhlTouchBdCnclSteerWhlTouchBdSts(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_key3 != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_STEERWHLTOUCHBDCNCLSTEERWHLTOUCHBDSTS, &Value);
Cancel_Sts = Value;
}
void RTE_Set_CAN_SteerWhlTouchBdCrsResuQf1(uint8_t Value)
{
if (Touch_Sensor_Fault_key1 != Touch_NoFault)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDCRSRESUQF1, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdCrsResuSteerWhlTouchBdSts(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_key1 != Touch_NoFault)
{
Value = 0x00;
}
InitMessage(SIG_STEERWHLTOUCHBDCRSRESUSTEERWHLTOUCHBDSTS, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdLeChks(uint8_t Value)
{
InitMessage(SIG_STEERWHLTOUCHBDLECHKS, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdLeCntr(uint8_t Value)
{
InitMessage(SIG_STEERWHLTOUCHBDLECNTR, &Value);
// TouchBoard_RC=Value;
}
uint8_t g_last_SteerWhlTouchBdSts = BUTTON_RELEASE;
uint8_t speeker_Tig_gap_cnt = 0; // kailong remove
void RTE_Set_CAN_SteerWhlTouchBdLeSteerWhlTouchBdSts(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
if (Touch_Sensor_Fault_pad != Touch_NoFault)
{
Value = 0x03;
}
InitMessage(SIG_STEERWHLTOUCHBDLESTEERWHLTOUCHBDSTS, &Value);
// TouchBoard_Sts=Value;
}
void RTE_Set_CAN_SteerWhlTouchBdLeTouchPosnX(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDLETOUCHPOSNX, &Value);
// TouchBoard_X=Value;
}
void RTE_Set_CAN_SteerWhlTouchBdLeTouchPosnY(uint8_t Value)
{
if (Get_forcedetect_allowed_send_flag() == 0)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDLETOUCHPOSNY, &Value);
// TouchBoard_Y=Value;
}
uint8_t Pre_300_req;
uint8_t Remain_frame;
uint8_t Remain_cnt;
uint8_t Remain_X = 0;
uint8_t Remain_Y = 0;
uint8_t Frame_0x300_RC = 15;
void RTE_Set_SEND_CAN_0x300_immediately(uint8_t Value) // called immediately in 10ms task when touch,or touch and press in XY area
{
uint8_t Current_300_req;
Current_300_req = Value;
if (Value == 1)
{
if (Frame_0x300_RC > 14)
{
Frame_0x300_RC = 0;
}
else
{
Frame_0x300_RC++;
}
InitMessage(SIG_STEERWHLTOUCHBDLECNTR, &Frame_0x300_RC);
// Send a 0x300 frame
OsekComTxReqFrmSwtlPrivateDHUCanFr01();
}
if (Value == 0 && Pre_300_req == 1)
{
Remain_frame = 1;
}
Pre_300_req = Current_300_req;
if (Remain_frame == 1)
{
InitMessage(SIG_STEERWHLTOUCHBDLETOUCHPOSNX, &Remain_X);
InitMessage(SIG_STEERWHLTOUCHBDLETOUCHPOSNY, &Remain_Y);
InitMessage(SIG_STEERWHLTOUCHBDLESTEERWHLTOUCHBDSTS, &Remain_Y);
if (Remain_cnt < 2)
{
if (Frame_0x300_RC > 14)
{
Frame_0x300_RC = 0;
}
else
{
Frame_0x300_RC++;
}
InitMessage(SIG_STEERWHLTOUCHBDLECNTR, &Frame_0x300_RC);
OsekComTxReqFrmSwtlPrivateDHUCanFr01();
Remain_cnt++;
}
else
{
Remain_frame = 0;
Remain_cnt = 0;
}
}
}
uint8_t Cancel_0x305_RC = 15;
void RTE_Set_SEND_CAN_0x305_25ms(uint8_t Value) // when touch,or touch and press in 3 button area,0x305 is sent every 25ms
{
uint8_t temp;
if (Value == 1)
{
if (Cancel_0x305_RC > 14)
{
Cancel_0x305_RC = 0;
}
else
{
Cancel_0x305_RC++;
}
InitMessage(SIG_STEERWHLTOUCHBDCNCLCNTR, &Cancel_0x305_RC);
Cancel_RC = Cancel_0x305_RC;
temp = RTE_Get_Cancel_CRC();
InitMessage(SIG_STEERWHLTOUCHBDCNCLCHKS, &temp);
// Send a 0x305 frame
OsekComTxReqFrmSwtlPrivateDHUCanFr02();
}
}
void RTE_Set_SEND_CAN_0x305_1000ms(uint8_t Value) // when 3 button area is not active,0x305 is Sent every 1000ms
{
uint8_t temp;
if (Value == 1)
{
if (Cancel_0x305_RC > 14)
{
Cancel_0x305_RC = 0;
}
else
{
Cancel_0x305_RC++;
}
InitMessage(SIG_STEERWHLTOUCHBDCNCLCNTR, &Cancel_0x305_RC);
Cancel_RC = Cancel_0x305_RC;
temp = RTE_Get_Cancel_CRC();
InitMessage(SIG_STEERWHLTOUCHBDCNCLCHKS, &temp);
// Send a 0x305 frame
OsekComTxReqFrmSwtlPrivateDHUCanFr02();
}
}
uint8_t UbInitValue = 1;
void RTE_Set_All_UB(void)
{
InitMessage(SIG_DIAGCFAILRTOUCHPANSWTL_UB, &UbInitValue);
InitMessage(SIG_LEMFCTACTSGCE_UB, &UbInitValue);
InitMessage(SIG_LEMFCTACTSGDN_UB, &UbInitValue);
InitMessage(SIG_LEMFCTACTSGLE_UB, &UbInitValue);
InitMessage(SIG_LEMFCTACTSGRI_UB, &UbInitValue);
InitMessage(SIG_LEMFCTACTSGUP_UB, &UbInitValue);
InitMessage(SIG_STEERWHLTOUCHBDADAS_UB, &UbInitValue);
InitMessage(SIG_STEERWHLTOUCHBDCNCL_UB, &UbInitValue);
InitMessage(SIG_STEERWHLTOUCHBDCRSRESU_UB, &UbInitValue);
InitMessage(SIG_STEERWHLTOUCHBDLE_UB, &UbInitValue);
InitMessage(SIG_SWPLERISTSLE_UB, &UbInitValue);
InitMessage(SIG_SWPUPDWNSTSLE_UB, &UbInitValue);
InitMessage(SIG_SWTLPARTNOCMPL_UB, &UbInitValue);
InitMessage(SIG_SWTLSERNO_UB, &UbInitValue);
}
const uint16_t max_on_time_arr[16] = {
// 0 1 2 3 4 5 6 7
20,20,20,50,50,50,50,50,
50,50,50,50,50,20,20,20,
};
const uint16_t low_baseline_reset_arr[16] = {
// 0 1 2 3 4 5 6 7
59,59,52,62,60,62,64,60,
56,59,57,59,59,54,58,52,
};
#if 1
void RTE_Set_All_Test_Value(void)
{
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();
// Press_baseline=Bat_AD_Val;
// Press_signal=LD_AD_Val;
// uint16_t temp = CurrentPosition;
InitMessage(SIG_SWTLPRESSBASELINE, &Press_baseline); // Press_baseline
InitMessage(SIG_SWTLPRESSSIGNAL, &Press_signal); // Press_signal-Convert to N: TouchPanel_PressNValue = ((float32)Press_signal / (float32)0xF2);
for (i = 0; i < 16; 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; // 110S
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 < 16; 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 == 16)
{
baseline_error_counter = 0;
}
if (baseline_error_repeat_counter > 0)
{
baseline_error_repeat_counter--;
}
// uint8_t Touch_Sensor_Sts13;
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);
Touch_Sensor_Sts15 = get_sensor_node_signal(15U);
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_Ref15 = get_sensor_node_reference(15U);
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);
Touch_Sensor_CC15 = get_sensor_cc_val(15U);
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;
frccdata[6] = (uint8_t)Touch_Sensor_CC15;
frccdata[7] = Touch_Sensor_CC15>>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_delta15 = Touch_Sensor_Sts15 > Touch_Sensor_Ref15 ? Touch_Sensor_Sts15 - Touch_Sensor_Ref15 : 0;
// Touch_Sensor_Sts13=g_XY_Touch_And_Below_1N;
InitMessage(SIG_SWTLSENSOR1_SIGNAL, &Touch_Sensor_Sts00);
InitMessage(SIG_SWTLSENSOR2_SINGAL, &Touch_Sensor_Sts01);
InitMessage(SIG_SWTLSENSOR3_SIGNAL, &Touch_Sensor_Sts02);
InitMessage(SIG_SWTLSENSOR4_SIGNAL, &Touch_Sensor_Sts03);
InitMessage(SIG_SWTLSENSOR5_SIGNAL, &Touch_Sensor_Sts04);
InitMessage(SIG_SWTLSENSOR6_SIGNAL, &Touch_Sensor_Sts05);
InitMessage(SIG_SWTLSENSOR7_SIGNAL, &Touch_Sensor_Sts06);
InitMessage(SIG_SWTLSENSOR8_SIGNAL, &Touch_Sensor_Sts07);
InitMessage(SIG_SWTLSENSOR9_SIGNAL, &Touch_Sensor_Sts08);
InitMessage(SIG_SWTLSENSOR10_SIGNAL, &Touch_Sensor_Sts09);
InitMessage(SIG_SWTLSENSOR11_SIGNAL, &Touch_Sensor_Sts10);
InitMessage(SIG_SWTLSENSOR12_SIGNAL, &Touch_Sensor_Sts11);
InitMessage(SIG_SWTLSENSOR13_SIGNAL, &Touch_Sensor_Sts12);
InitMessage(SIG_SWTLSENSOR14_SIGNAL, &Touch_Sensor_Sts13);
InitMessage(SIG_SWTLSENSOR15_SIGNAL, &Touch_Sensor_Sts14);
InitMessage(SIG_SWTLSENSOR16_SIGNAL, &Touch_Sensor_Sts15);
InitMessage(SIG_SWTLSENSOR1_BASELINE, &Touch_Sensor_Ref00);
InitMessage(SIG_SWTLSENSOR2_BASELINE, &Touch_Sensor_Ref01);
InitMessage(SIG_SWTLSENSOR3_BASELINE, &Touch_Sensor_Ref02);
InitMessage(SIG_SWTLSENSOR4_BASELINE, &Touch_Sensor_Ref03);
InitMessage(SIG_SWTLSENSOR5_BASELINE, &Touch_Sensor_Ref04);
InitMessage(SIG_SWTLSENSOR6_BASELINE, &Touch_Sensor_Ref05);
InitMessage(SIG_SWTLSENSOR7_BASELINE, &Touch_Sensor_Ref06);
InitMessage(SIG_SWTLSENSOR8_BASELINE, &Touch_Sensor_Ref07);
InitMessage(SIG_SWTLSENSOR9_BASELINE, &Touch_Sensor_Ref08);
InitMessage(SIG_SWTLSENSOR10_BASELINE, &Touch_Sensor_Ref09);
InitMessage(SIG_SWTLSENSOR11_BASELINE, &Touch_Sensor_Ref10);
InitMessage(SIG_SWTLSENSOR12_BASELINE, &Touch_Sensor_Ref11);
InitMessage(SIG_SWTLSENSOR13_BASELINE, &Touch_Sensor_Ref12);
InitMessage(SIG_SWTLSENSOR14_BASELINE, &Touch_Sensor_Ref13);
InitMessage(SIG_SWTLSENSOR15_BASELINE, &Touch_Sensor_Ref14);
InitMessage(SIG_SWTLSENSOR16_BASELINE, &Touch_Sensor_Ref15);
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[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[2][0] = Press_baseline;
g16_DiagTouchPressSenRes[2][1] = Press_signal;
g16_DiagTouchPressSenRes[2][2] = Press_preload;
}
#endif