880 lines
24 KiB
C

/* ----------------------------------------------------------------------------
* Implements
*/
#include "UDS_Services_Common.h"
/* ----------------------------------------------------------------------------
* Uses
*/
#include "ModelsInterfaces/CommonMacros.h"
//#include "Platform_Types.h"
#include "DiagnosticR/ProjectCfg.h"
#include "Std_Types.h"
#include "DiagnosticR/Comp_ISO_15765_3/Iso15765_3.h"
#include "UDS_Services_Common.h"
#include "UDS_CoreServices_CB.h"
//#include "ficoNVM.h"
//#include "GearShiftStrategy_If.h"
//#include "DriveModeSwitch_If.h"
//#include "PaddleStatus_If.h"
#include "smartee.h"
/* ----------------------------------------------------------------------------
* Private defines
*/
#define DLC_DID_ECU_SN 24U
#define DLC_DID_CD_VIN 17U
#define DLC_DID_CD_MANFAC_SN 16U
#define DLC_DID_CD_APP_DATAID 3U
#define DLC_DID_CD_MANUF_ECUHWNUM 11U
#define DLC_DID_DTC_SETTING 12U
#define DLC_DID_MTOC 17U
#define DLC_DID_SHEILD_AUTOPARK 1U
#define DLC_DID_TRANSPORTATION_MODE 1U
#define DLC_DID_REPROGRAMMING_COUNTER 2U
#define DLC_DID_REPROGRAMMING_DATE 4U
#define DLC_DID_APPSW_FINGER_PRINT 26U
#define DLC_DID_ECUMANUFACTURE_DATE 6U
#define DLC_DID_ECUINSTALLATION_DATE 6U
#define DLC_DID_DCID 3U
#define DLC_GAC_DIAG_SPEC_VERSION 3U
#define DLC_GAC_HW_VERSION 16U
#define DLC_GAC_ECU_SW_VERSION 16U
#define DLC_GAC_SPARE_NUMBER 14U
#define DLC_SYSTEM_SUPPLIER_ID 6U
#define DLC_GAC_KIT_PART_NUMBER 14U
#define DLC_SYSTEM_NAME 20U
#define DLC_UDS_PROTOL_VERSION 2U
#define DLC_BOOT_SW_VERSION 6U
#define DLC_REPAIR_SHOP_CODE 16U
#define DLC_BOOT_SW_ID 3U
/* ----------------------------------------------------------------------------
* Private types
*/
typedef struct{
UI_8 gac_diagnostic_version[DLC_GAC_DIAG_SPEC_VERSION];
UI_8 gac_hardware_version[DLC_GAC_HW_VERSION];
UI_8 gac_spare_number[DLC_GAC_SPARE_NUMBER];
UI_8 system_supplier_id[DLC_SYSTEM_SUPPLIER_ID];
UI_8 gac_kit_assembly_part_number[DLC_GAC_KIT_PART_NUMBER];
UI_8 system_name[DLC_SYSTEM_NAME];
UI_8 uds_protol_version[DLC_UDS_PROTOL_VERSION];
UI_8 boot_version[DLC_BOOT_SW_VERSION];
}t_logical_did;
/* ----------------------------------------------------------------------------
* Private macros
*/
/* ----------------------------------------------------------------------------
* Forward declarations
*/
/* ----------------------------------------------------------------------------
* Private variables
*/
const UI_8 NVM_DID_CD_VIN[DLC_DID_CD_VIN] = GAC_VIN_DEFAULT_VALUE;
const UI_8 NVM_Reprogramming_Date_App[DLC_DID_REPROGRAMMING_DATE] = {0x20,0x24,0x09,0x18};
const UI_8 NVM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID] = {'2','4','0','9','1','8'};
const UI_8 NVM_Repair_Shop_Code[DLC_REPAIR_SHOP_CODE] = GAC_ECU_REPAIR_SHOP_CODE;
const UI_8 NVM_DID_CD_HW_VERSION[DLC_GAC_HW_VERSION] = {'H','W','0','6',0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
static uint8 RAM_DID_CD_VIN[DLC_DID_CD_VIN];
static uint8 RAM_DID_CD_REPROGRAMMING_DATE[DLC_DID_REPROGRAMMING_DATE];
static uint8 RAM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID];
static uint8 RAM_DID_REPAIR_SHOP_CODE[DLC_REPAIR_SHOP_CODE];
static uint8 RAM_DID_CD_HW_VERSION[DLC_GAC_HW_VERSION];
#if 0
#pragma ghs startdata
#pragma ghs section rodata=".nvm_sn"
const UI_8 NVM_DID_CD_ECU_SN[DLC_DID_ECU_SN] = GAC_ECU_SN_DEFAULT_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_sheild_auto_park"
const UI_8 NVM_DID_CD_SHEILD_AutoPark[DLC_DID_SHEILD_AUTOPARK] = {0x0};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_vin"
const UI_8 NVM_DID_CD_VIN[DLC_DID_CD_VIN] = GAC_VIN_DEFAULT_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_manfac_sn"
const UI_8 NVM_DID_CD_MANFAC_SN[DLC_DID_CD_MANFAC_SN] = GAC_MANFAC_SN_DEFAULT_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
//<0610
#pragma ghs startdata
#pragma ghs section rodata=".nvm_boot_id"
const UI_8 NVM_DID_CD_BOOT_ID[DLC_BOOT_SW_ID] = GAC_BOOT_ID_DEFAULT_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_ecusw_version"
const UI_8 NVM_DID_CD_ECUSW_VERSION[DLC_GAC_ECU_SW_VERSION] = GAC_ECUSW_VERSION_DEFAULT_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
//0610>
#pragma ghs startdata
#pragma ghs section rodata=".nvm_app_dataid"
const UI_8 NVM_DID_CD_APP_DATAID[DLC_DID_CD_APP_DATAID] = GAC_APP_DATAID_DEFAULT_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_vehiclemanuf_ecuhwnum_sn"
const UI_8 NVM_DID_CD_MANUF_ECUHWNUM[DLC_DID_CD_MANUF_ECUHWNUM] = GAC_MANUF_ECUHWNUM_DEFAULT_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_dtc_setting"
const UI_8 NVM_DID_CD_DTC_SETTING[DLC_DID_DTC_SETTING] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_transportation_mode"
const UI_8 NVM_DID_CD_TRANSPORTATION_MODEG[DLC_DID_TRANSPORTATION_MODE]= {0x0};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_mtoc"
const UI_8 NVM_DID_CD_MTOC[DLC_DID_MTOC]= GAC_MTOC_DEFAULT_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_faa_flag"
const UI_8 NVM_Faa_Flag = 0x0;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_reprogramming_counter"
const UI_8 NVM_Reprogramming_Counter[DLC_DID_REPROGRAMMING_COUNTER] = {0x0};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_reprogramming_attempt_counter"
const UI_8 NVM_Reprogramming_Attempt_Counter[DLC_DID_REPROGRAMMING_COUNTER] = {0x0};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_reprogramming_date"
const UI_8 NVM_Reprogramming_Date[DLC_DID_REPROGRAMMING_DATE] = {3,1,0,5,2,1};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_reprogramming_date_app"
const UI_8 NVM_Reprogramming_Date_App[DLC_DID_REPROGRAMMING_DATE] = {3,1,0,5,2,1};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_ecumanufacture_date"
const UI_8 NVM_Ecumanufacture_Date[DLC_DID_ECUMANUFACTURE_DATE] = {3,1,0,5,2,1};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_ecuinstallation_date"
const UI_8 NVM_Ecuinstallation_Date[DLC_DID_ECUINSTALLATION_DATE] = {3,1,0,5,2,1};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_bootsw_version"
const UI_8 NVM_DID_CD_BOOTSW_VERSION[DLC_BOOT_SW_VERSION] = {'0','A','0','0','0','1'};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_hw_version"
const UI_8 NVM_DID_CD_HW_VERSION[DLC_GAC_HW_VERSION] = {0x41,0x30,0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_supplier_id"
const UI_8 NVM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID] = GAC_APP_SUPPLIER_ID;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_app_finger_print"
const UI_8 NVM_App_SW_Finger_Print[DLC_DID_APPSW_FINGER_PRINT] = GAC_APP_SW_FINGER_INFO;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_app_finger_print_app"
const UI_8 NVM_App_SW_Finger_Print_App[DLC_DID_APPSW_FINGER_PRINT] = GAC_APP_SW_FINGER_INFO;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_manufactory_mode"
const UI_8 NVM_Manufactory_Mode = 0xFF;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_logical_did"
const t_logical_did nvm_logical_id;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_dcid"
const uint8 nvm_dcid[DLC_DID_DCID] = GAC_DCID_VALUE;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_drive_mode"
const UI_8 NVM_Drive_Mode = 0x0;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_paddle_active"
const UI_8 NVM_Paddle_Configure = 0xAA;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_drive_mode_storage"
const UI_8 NVM_Drive_Storage = 0x39;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_repair_shop_code"
const UI_8 NVM_Repair_Shop_Code[DLC_REPAIR_SHOP_CODE] = GAC_ECU_REPAIR_SHOP_CODE;
#pragma ghs section data=default
#pragma ghs enddata
#pragma ghs startdata
#pragma ghs section rodata=".nvm_last_position"
const UI_8 NVM_Last_Pos_Req = 1;
#pragma ghs section data=default
#pragma ghs enddata
static uint8 RAM_DID_ECU_SN[DLC_DID_ECU_SN];
static uint8 RAM_DID_CD_VIN[DLC_DID_CD_VIN];
static uint8 RAM_DID_CD_MANFAC_SN[DLC_DID_CD_MANFAC_SN];
static uint8 RAM_DID_CD_APP_DATAID[DLC_DID_CD_APP_DATAID];
static uint8 RAM_DID_CD_MANUF_ECUHWNUM[DLC_DID_CD_MANUF_ECUHWNUM];
static uint8 RAM_DID_CD_DTC_SETTING[DLC_DID_DTC_SETTING];
static uint8 RAM_DID_CD_TRANSPORTATION_MODEG[DLC_DID_TRANSPORTATION_MODE];
static uint8 RAM_DID_CD_MTOC[DLC_DID_MTOC];
static uint8 RAM_DID_CD_REPROGRAMMING_COUNTER[DLC_DID_REPROGRAMMING_COUNTER];
static uint8 RAM_DID_CD_REPROGRAMMING_ATTEMPT_COUNTER[DLC_DID_REPROGRAMMING_COUNTER];
static uint8 RAM_DID_CD_ECUMANUFACTURE_DATE[DLC_DID_ECUMANUFACTURE_DATE];
static uint8 RAM_DID_CD_ECUINSTALLATION_DATE[DLC_DID_ECUINSTALLATION_DATE];
//<0610
static uint8 RAM_DID_CD_BOOT_ID[DLC_BOOT_SW_ID];
static uint8 RAM_DID_CD_ECUSW_VERSION[DLC_GAC_ECU_SW_VERSION];
static uint8 RAM_DID_CD_BOOTSW_VERSION[DLC_BOOT_SW_VERSION];
//0610>
static uint8 RAM_DID_CD_APPSW_FINGER_PRINT[DLC_DID_APPSW_FINGER_PRINT];
static uint8 RAM_DRIVE_MODE;
static uint8 RAM_PADDLE_CONFIGURE;
static uint8 RAM_EOL_CONFIGURE;
static t_logical_did RAM_LOGICAL_DID;
static uint8 RAM_DCID[DLC_DID_DCID];
static uint8 RAM_LAST_POSITION = 0;
static uint8 RAM_ATP = 0;
static uint8 RAM_FAA_FLAG = 0;
static uint8 RAM_Manufactory_Mode = 0;
#endif
/* ----------------------------------------------------------------------------
* Public variables
*/
/* ----------------------------------------------------------------------------
* Public functions
*/
void UDS_DID_initNVM(void)
{
memcpy(RAM_DID_CD_VIN, NVM_DID_CD_VIN, DLC_DID_CD_VIN);
memcpy(RAM_DID_CD_REPROGRAMMING_DATE, NVM_Reprogramming_Date_App,DLC_DID_REPROGRAMMING_DATE);
memcpy(RAM_DID_CD_SUPPLIER_ID, NVM_DID_CD_SUPPLIER_ID,DLC_SYSTEM_SUPPLIER_ID);
memcpy(RAM_DID_REPAIR_SHOP_CODE,NVM_Repair_Shop_Code,sizeof(NVM_Repair_Shop_Code));
memcpy(RAM_DID_CD_HW_VERSION, NVM_DID_CD_HW_VERSION,DLC_GAC_HW_VERSION);
}
//static void onWriteFinished(BOOL ret)
//{
/* Do Nothing */
//}
t_UDS_ERR Get_DID_ECU_SN(uint8 *data)
{
//memcpy(data, RAM_DID_ECU_SN, sizeof(RAM_DID_ECU_SN));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Set_DID_ECU_SN(uint8 *data)
{
//memcpy(RAM_DID_ECU_SN, data, sizeof(RAM_DID_ECU_SN));
//ficoNVM_Write_Serial_Number(RAM_DID_ECU_SN, onWriteFinished);
return TRUE;
}
t_UDS_ERR Get_DID_CD_SYSID_VIN(uint8 *data)
{
//memcpy(data, RAM_DID_CD_VIN, sizeof(RAM_DID_CD_VIN));
SmartEE_Read(0x500, data, 17);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Set_DID_CD_VIN(uint8 *data)
{
//memcpy(RAM_DID_CD_VIN, data, sizeof(RAM_DID_CD_VIN));
//ficoNVM_Write_VIN(RAM_DID_CD_VIN, onWriteFinished);
SmartEE_Write(0x500, data, 17);
return TRUE;
}
t_UDS_ERR Get_DID_TouchSen1_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][0],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen2_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][1],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen3_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][2],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen4_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][3],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen5_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][4],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen6_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][5],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen7_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][6],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen8_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][7],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen9_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][8],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen10_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][9],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen11_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][10],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen12_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][11],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen13_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][12],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen14_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][13],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen15_BaseLine(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[0][14],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen1_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][0],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen2_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][1],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen3_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][2],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen4_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][3],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen5_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][4],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen6_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][5],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen7_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][6],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen8_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][7],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen9_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][8],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen10_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][9],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen11_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][10],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen12_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][11],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen13_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][12],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen14_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][13],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_TouchSen15_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[1][14],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_PressSen_Baseline(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[2][0],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_PressSen_Signal(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[2][1],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Pre_Value(uint8 *data)
{
memcpy(data,&g16_DiagTouchPressSenRes[2][2],2);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_ResetSource(uint8 *data)
{
uint8_t reset_source_buf[20];
SmartEE_Read(0x400,reset_source_buf,20);
memcpy(data,reset_source_buf,20);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Reprogramming_Date(uint8 *data)
{
//memcpy(data, RAM_DID_CD_REPROGRAMMING_DATE, sizeof(RAM_DID_CD_REPROGRAMMING_DATE));
SmartEE_Read(0x517, data, 4);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Set_DID_Reprogramming_Date(uint8 *data)
{
//memcpy(RAM_DID_CD_REPROGRAMMING_DATE, data, sizeof(RAM_DID_CD_REPROGRAMMING_DATE));
//ficoNVM_Write_REPROGRAME_DATE(RAM_DID_CD_REPROGRAMMING_DATE, onWriteFinished);
SmartEE_Write(0x517, data, 4);
return TRUE;
}
t_UDS_ERR Set_DID_CD_APP_SW_FINGERPRINT(uint8 *data)
{
//memcpy(RAM_DID_CD_APPSW_FINGER_PRINT, data, sizeof(RAM_DID_CD_APPSW_FINGER_PRINT));
//ficoNVM_Write_App_FigrPriApp(RAM_DID_CD_APPSW_FINGER_PRINT, onWriteFinished);
return TRUE;
}
t_UDS_ERR Get_DID_CD_SYSID_MANFAC_SN(uint8 *data)
{
//memcpy(data, RAM_DID_CD_MANFAC_SN, sizeof(RAM_DID_CD_MANFAC_SN));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Set_DID_CD_MANFAC_SN(uint8 *data)
{
//memcpy(RAM_DID_CD_MANFAC_SN, data, sizeof(RAM_DID_CD_MANFAC_SN));
//ficoNVM_Write_MANFAC_SN(RAM_DID_CD_MANFAC_SN, onWriteFinished);
return TRUE;
}
t_UDS_ERR Get_DID_CD_SYSID_APP_DATAID(uint8 *data)
{
//memcpy(data, RAM_DID_CD_APP_DATAID, sizeof(RAM_DID_CD_APP_DATAID));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Set_DID_CD_APP_DATAID(uint8 *data)
{
//memcpy(RAM_DID_CD_APP_DATAID, data, sizeof(RAM_DID_CD_APP_DATAID));
//ficoNVM_Write_APP_DATAID(RAM_DID_CD_APP_DATAID, onWriteFinished);
return TRUE;
}
t_UDS_ERR Get_DID_CD_SYSID_MANUF_ECUHWNUM(uint8 *data)
{
//memcpy(data, RAM_DID_CD_MANUF_ECUHWNUM, sizeof(RAM_DID_CD_MANUF_ECUHWNUM));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Set_DID_CD_MANUF_ECUHWNUM(uint8 *data)
{
//memcpy(RAM_DID_CD_MANUF_ECUHWNUM, data, sizeof(RAM_DID_CD_MANUF_ECUHWNUM));
//ficoNVM_Write_MANUF_ECUHWNUM(RAM_DID_CD_MANUF_ECUHWNUM, onWriteFinished);
return TRUE;
}
t_UDS_ERR Get_DID_Dtc_Setting(uint8 *data)
{
//memcpy(data, RAM_DID_CD_DTC_SETTING, sizeof(RAM_DID_CD_DTC_SETTING));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Set_DID_Dtc_Setting(uint8 *data)
{
//memcpy(RAM_DID_CD_DTC_SETTING, data, sizeof(RAM_DID_CD_DTC_SETTING));
//ficoNVM_Write_Dtc_Setting_Flag(RAM_DID_CD_DTC_SETTING, onWriteFinished);
return TRUE;
}
t_UDS_ERR Set_DID_Shield_Atp(uint8 *data)
{
if(data[0] <= 1)
{
// shield_atp = data[0];
// ficoNVM_Write_Shield_ATP_Flag(&shield_atp, onWriteFinished);
}else{
return FALSE;
}
return TRUE;
}
t_UDS_ERR Set_DID_Repair_Shop_Code(uint8 *data)
{
//memcpy(RAM_DID_REPAIR_SHOP_CODE,data,sizeof(RAM_DID_REPAIR_SHOP_CODE));
//ficoNVM_Write_Repair_Shop_Code_Flag(RAM_DID_REPAIR_SHOP_CODE, onWriteFinished);
SmartEE_Write(0x51B, data, 16);
return TRUE;
}
t_UDS_ERR Get_DID_Reprogramming_Counter(uint8 *data)
{
//memcpy(data, RAM_DID_CD_REPROGRAMMING_COUNTER, sizeof(RAM_DID_CD_REPROGRAMMING_COUNTER));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Reprogramming_Attempt_Counter(uint8 *data)
{
//memcpy(data, RAM_DID_CD_REPROGRAMMING_ATTEMPT_COUNTER, sizeof(RAM_DID_CD_REPROGRAMMING_ATTEMPT_COUNTER));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_EcuManufacture_Date(uint8 *data)
{
//memcpy(data, RAM_DID_CD_ECUMANUFACTURE_DATE, sizeof(RAM_DID_CD_ECUMANUFACTURE_DATE));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_EcuInstallation_Date(uint8 *data)
{
//memcpy(data, RAM_DID_CD_ECUINSTALLATION_DATE, sizeof(RAM_DID_CD_ECUINSTALLATION_DATE));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_App_Sw_Finger_Print(uint8 *data)
{
//memcpy(data, RAM_DID_CD_APPSW_FINGER_PRINT, sizeof(RAM_DID_CD_APPSW_FINGER_PRINT));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Gac_Hw_Version(uint8 *data)
{
memcpy(data, RAM_DID_CD_HW_VERSION,DLC_GAC_HW_VERSION);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Gac_Ecusw_Version(uint8 *data)
{
UI_8 sw_num[DLC_GAC_ECU_SW_VERSION] = GAC_ECUSW_VERSION_DEFAULT_VALUE;
memcpy(data,sw_num,DLC_GAC_ECU_SW_VERSION);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Gac_Spare_Number(uint8 *data)
{
data[0] = 'A';
data[1] = 'B';
data[2] = 'C';
data[3] = 'D';
data[4] = 'E';
data[5] = 'F';
data[6] = '0';
data[7] = '1';
data[8] = '2';
data[9] = '3';
data[10] = '4';
data[11] = '5';
data[12] = '6';
data[13] = '7';
data[14] = '8';
data[15] = '9';
data[16] = 'A';
data[17] = 'B';
data[18] = 'C';
data[19] = 'D';
data[20] = 'E';
// memcpy(data, RAM_LOGICAL_DID.gac_spare_number,DLC_GAC_SPARE_NUMBER);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_System_Supplier_Id(uint8 *data)
{
memcpy(data, RAM_DID_CD_SUPPLIER_ID,DLC_SYSTEM_SUPPLIER_ID);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Gac_Kit_Part_Number(uint8 *data)
{
data[0] = 'A';
data[1] = 'K';
data[2] = 'C';
data[3] = 'G';
data[4] = '-';
data[5] = '0';
data[6] = '0';
data[7] = '7';
data[8] = 'X';
data[9] = '-';
data[10] = 'A';
data[11] = '1';
data[12] = ' ';
data[13] = ' ';
// memcpy(data, RAM_LOGICAL_DID.gac_kit_assembly_part_number,DLC_GAC_KIT_PART_NUMBER);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_System_Name(uint8 *data)
{
//memcpy(data, RAM_LOGICAL_DID.system_name,DLC_SYSTEM_NAME);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Uds_Protol_Version(uint8 *data)
{
//memcpy(data, RAM_LOGICAL_DID.uds_protol_version,DLC_UDS_PROTOL_VERSION);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Boot_Version(uint8 *data)
{
//memcpy(data, RAM_DID_CD_BOOTSW_VERSION,DLC_BOOT_SW_VERSION);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Boot_ID(uint8 *data)
{
//memcpy(data, RAM_DID_CD_BOOT_ID,sizeof(RAM_DID_CD_BOOT_ID));
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_DCID(uint8 *data)
{
//memcpy(data, RAM_DCID,DLC_DID_DCID);
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_Shield_Atp(uint8 *data)
{
// data[0] = shield_atp;
return ISO15765_3_POSITIVE_RESPONSE;
}
t_UDS_ERR Get_DID_GAC_Repair_Shop_Id(uint8 *data)
{
//memcpy(data, RAM_DID_REPAIR_SHOP_CODE,DLC_REPAIR_SHOP_CODE);
SmartEE_Read(0x51B, data, 16);
return ISO15765_3_POSITIVE_RESPONSE;
}
//t_UDS_ERR Set_DID_CD_Drive_Mode_Configure(uint8 *data)
//{
// EOL_config = *((st_eol_config *)data);
// paddle_active = EOL_config.paddle_config;
//
// ficoNVM_Write_Drive_Mode_Configure((uint8*)(&EOL_config), onFinishedDriveConfig);
//
// return TRUE;
//}
//uint8 GetLastPosition(void)
//{
//return RAM_LAST_POSITION;
//}
//uint8* GetNvmDtcSetting(void)
//{
//return RAM_DID_CD_DTC_SETTING;
//}
/* ----------------------------------------------------------------------------
* Private functions
*/