/*
CanZE
Take a closer look at your ZE car
Copyright (C) 2015 - The CanZE Team
http://canze.fisch.lu
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or any
later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package lu.fisch.canze.actors;
/**
* Created by jeroen on 4-12-16.
*/
public class EcuDiagPEB {
void load () {
String fieldDef1 =
""
+"77e,0,7,1,0,0,,14ffff,54,ff\n" // Reset DTC
+"77e,0,23,1,0,0,,1902ff,5902ff,ff\n" // Query DTC
+"77e,28,51,1,0,0,km,223008,623008,ff,DistanceTotalizer\n" //
+"77e,24,39,1,0,0,V,223009,623009,ff,BatteryVoltage\n" //
+"77e,24,39,1,0,0,V,22300A,62300A,ff,Batt_voltage_mes\n" //
+"77e,31,31,1,0,0,,22300B,62300B,ff,APCStatus,0:Ignition is OFF;1:Ignition is ON\n" //
+"77e,31,31,1,0,0,,22300C,62300C,ff,Volt_APCPEB_veh_status,0:Ignition is OFF;1:Ignition is ON\n" //
+"77e,24,39,1,0,0,V,22300D,62300D,ff,Onboard Power Supply\n" //
+"77e,24,39,1,0,0,V,22300E,62300E,ff,DCHighVoltage\n" //
+"77e,30,31,1,0,0,,22300F,62300F,ff,DCDCState,0:Starting mode or Power off;1:Standby(ready to power = preload);2:Power On ;3:Unavailable value\n" //
+"77e,31,31,1,0,0,,223010,623010,ff,DCDCActivation,0:DCDC Off;1:DCDC On\n" //
+"77e,24,39,1,0,0,V,223011,623011,ff,DCDCVoltageRegulation\n" //
+"77e,24,39,1,0,0,V,223012,623012,ff,DCDCLowVoltage\n" //
+"77e,24,39,1,0,0,A,223013,623013,ff,DCDCCurrentOutput\n" //
+"77e,24,39,1,0,0,A,223015,623015,ff,DCDCCurrentInput\n" //
+"77e,24,31,1,0,0,%,223019,623019,ff,DCDCTemp\n" //
+"77e,29,31,1,0,0,,22301A,62301A,ff,DCDCDefault,0:No failure;1:Downgraded mode;2:SW temporary Shutdown;3:SW definitive Shutdown\n" //
+"77e,31,31,1,0,0,,22301B,62301B,ff,PEBDCDCServLampRequest,0:No security barrier lost;1:Security barrier lost\n" //
+"77e,31,31,1,0,0,,22301C,62301C,ff,InverterActivation,0:Inverter Off;1:Inverter On\n" //
+"77e,24,39,1,0,0,A,22301D,62301D,ff,PowerTrainCurrent\n" //
+"77e,24,39,1,0,0,,22301E,62301E,ff,Current Ph U\n" //
+"77e,24,39,1,0,0,,22301F,62301F,ff,Current Ph V\n" //
+"77e,24,39,1,0,0,,223021,623021,ff,Current Ph W\n" //
+"77e,24,39,1,0,0,A,223022,623022,ff,Current Excit Pos\n" //
+"77e,24,39,1,0,0,A,223023,623023,ff,Current Excit Neg\n" //
+"77e,24,39,1,0,0,Nm,223024,623024,ff,ElecTorqueRequest\n" //
+"77e,24,39,1,0,0,Nm,223025,623025,ff,PEBTorque\n" //
+"77e,24,39,1,0,0,Nm,223026,623026,ff,ElecMachineMaxMotorTorque\n" //
+"77e,24,39,1,0,0,Nm,223027,623027,ff,ElecMachineMaxGenTorque\n" //
+"77e,24,39,1,0,0,rpm,223028,623028,ff,ElecMachineSpeed\n" //
+"77e,24,31,1,0,0,%,223029,623029,ff,InverterTemp\n" //
+"77e,24,31,1,0,0,%,22302A,62302A,ff,ElecMachineTemp\n" //
+"77e,24,39,1,0,0,°C,22302B,62302B,ff,InverterTempOrder\n" //
+"77e,24,39,1,0,0,°C,223036,623036,ff,Excitation temperature\n" //
+"77e,24,39,1,0,0,°C,22302C,62302C,ff,Stator temperature\n" //
+"77e,24,39,1,0,0,°C,223035,623035,ff,Rotor temperature\n" //
+"77e,31,31,1,0,0,,22302D,62302D,ff,B_PebDischarge_sch_req,0:Discharge not requested;1:Discharge requested\n" //
+"77e,24,31,1,0,0,,22302E,62302E,ff,PEBActiveDischarge,0:Active Discharge Not In Progress;1:Active Discharge In Progress;255:Unavailable Value\n" //
+"77e,31,31,1,0,0,,22302F,62302F,ff,ElecMAchineWorkingMode,0:Motor mode;1:Generator mode\n" //
+"77e,30,31,1,0,0,,223030,623030,ff,ElecMachineDefault,0:No default;1:Downgraded mode;2:Temporary fault;3:Permanent fault\n" //
+"77e,31,31,1,0,0,,223031,623031,ff,PEBMotorServLampRequest,0:No security barrier lost;1:Security barrier lost\n" //
+"77e,31,31,1,0,0,,223032,623032,ff,PEBMotorStopLampRequest,0:No security barrier lost;1:Security barrier lost\n" //
+"77e,24,39,1,0,0,V,223034,623034,ff,Rotor PositionSensor Supply\n" //
+"77e,24,63,1,0,0,,22F180,62F180,ff,bootSoftwareIdentification\n" //
+"77e,31,31,1,0,0,,223001,623001,ff,VerlogStatus,0:Vehicle Not Locked;1:Vehicle Locked\n" //
+"77e,24,47,1,0,0,,223002,623002,ff,Error angle\n" //
+"77e,31,31,1,0,0,,223003,623003,ff,PEBExcitationInterlockState,0:Interlock Open;1:Interlock Closed\n" //
+"77e,31,31,1,0,0,,223007,623007,ff,InterlockBatt,0:Interlock Open;1:Interlock Closed\n" //
+"77e,31,31,1,0,0,,222070,622070,ff,Immobilizer - diagnosis availability,0:unavailable;1:available\n" //
+"77e,24,31,1,0,0,-,222071,622071,ff,Immobilizer - Byte 1 used to allow diagnosis\n" //
+"77e,24,31,1,0,0,-,222072,622072,ff,Immobilizer - Byte 2 used to allow diagnosis\n" //
+"77e,24,31,1,0,0,-,222073,622073,ff,Immobilizer - Byte 3 used to allow diagnosis\n" //
+"77e,31,31,1,0,0,,222074,622074,ff,Immobilizer - engine not running due to ECM,0:no;1:yes\n" //
+"77e,31,31,1,0,0,,222075,622075,ff,Immobilizer - engine not running due to BCM in secure mode,0:no;1:yes\n" //
+"77e,31,31,1,0,0,,222076,622076,ff,Immobilizer - engine not running due to no BCM authorization,0:no;1:yes\n" //
+"77e,31,31,1,0,0,,222077,622077,ff,Immobilizer - engine not running due to a CAN network problem with the BCM,0:no;1:yes\n" //
+"77e,31,31,1,0,0,,223004,623004,ff,PEBSpiderBoxInterlockState,0:Interlock Open;1:Interlock Closed\n" //
+"77e,31,31,1,0,0,,223006,623006,ff,Interlock EM,0:Interlock Open;1:Interlock Closed\n" //
+"77e,24,39,1,0,0,,223016,623016,ff,DCDC_PEB_Driver_board_mes\n" //
+"77e,24,39,1,0,0,,223018,623018,ff,DCDCTempOrder\n" //
+"77e,192,199,1,0,0,,2180,6180,ff,ApprovalNumber.BasicPartList\n" //
+"77e,160,175,1,0,0,,2180,6180,ff,CalibrationNumber\n" //
+"77e,56,63,1,0,0,,2180,6180,ff,DiagnosticIdentificationCode\n" //
+"77e,144,159,1,0,0,,2180,6180,ff,EditionNumber\n" //
+"77e,184,191,1,0,0,,2180,6180,ff,HardwareNumber.BasicPartList,1:291A5\n" //
+"77e,88,127,1,0,0,,2180,6180,2ff,HardwareNumber.LowerPart\n" //
+"77e,200,207,1,0,0,,2180,6180,ff,ManufacturerIdentificationCode,136:5DIGITS R2;255:Renault R3;0:Renault R1;128:Nissan N1;129:Nissan N2;130:Nissan N3\n" //
+"77e,176,183,1,0,0,,2180,6180,ff,PartNumber.BasicPartList,1:291A5\n" //
+"77e,16,55,1,0,0,,2180,6180,2ff,PartNumber.LowerPart\n" //
+"77e,128,143,1,0,0,,2180,6180,ff,SoftwareNumber\n" //
+"77e,64,87,1,0,0,,2180,6180,2ff,SupplierNumber.ITG\n" //
+"77e,16,39,1,0,0,,2184,6184,2ff,REF SUPPLIER\n" //
+"77e,40,119,1,0,0,,2184,6184,2ff,REFHW (to be coded on 10 bytes)\n" //
+"77e,120,175,1,0,0,,2184,6184,2ff,DATE(YEAR + Day Number)\n" //
+"77e,152,167,1,0,0,,2181,6181,ff,Vin CRC\n" //
+"77e,16,151,1,0,0,,2181,6181,2ff,Vin In Ascii\n" //
+"77e,24,103,1,0,0,,22F18E,62F18E,2ff,VehicleManufacturerKitAssemblyPartNumber\n" //
+"77e,24,39,1,0,0,°C,223017,623017,ff,DCDC Trafo Temp\n" //
+"77e,16,103,1,0,0,,21B7,61B7,ff,Configuration of Electrical Vehicle Networks\n" //
+"77e,16,103,1,0,0,,21B8,61B8,ff,List of Electrical Vehicle ECUs with After-sales diagnostic\n" //
+"77e,24,47,1,0,0,,223037,623037,ff,R20 Rotor resistor value\n" //
+"77e,31,31,1,0,0,,223039,623039,ff,Effective Charge feedback to EVC,0:Not in charge;1:In charge\n" //
+"77e,31,31,1,0,0,,22303A,62303A,ff,Distribution type from JB,0:Default;1:Simultaneous\n" //
+"77e,24,39,1,0,0,,22303C,62303C,ff,CPLD DCDC\n" //
+"77e,24,39,1,0,0,,22303D,62303D,ff,CPLD INVERTER\n" //
+"77e,30,31,1,0,0,,22303B,62303B,ff,Failure class of the charge,0:No default;1:Downgraded mode;2:SW temporary shutdown;3:SW definitive shutdown\n" //
+"77e,24,103,1,0,0,,223040,623040,ff,Raw debug data encoding the cause of SPT fail\n" //
+"77e,24,39,1,0,0,,22303F,62303F,ff,ID of last detected FAM raising the DTC\n" //
+"77e,24,39,1,0,0,,22303E,62303E,ff,ID of first detected FAM raising the DTC\n" //
+"77e,24,31,1,0,0,,223038,623038,ff,Charge request from EVC to PEB,0:No charge requested;1:Charge Requested\n" //
;
String dtcDef =
""
+"1000,PEB Ctrl Board\n" //
+"1001,PEB Ctrl Board ADC\n" //
+"1002,PEB Ctrl Board ATIC81\n" //
+"1003,PEB Ctrl Board microprocessor\n" //
+"1004,Internal voltage sensor on HV side\n" //
+"1006,Interlock electrical circuit\n" //
+"1007,PEB HV DC link discharge failure\n" //
+"1009,14V supply wire (KL30)\n" //
+"100A,DCDC internal Power module Temp sensor\n" //
+"100B,DCDC internal Driver Board Temp sensor\n" //
+"100C,DCDC current sensor LV side\n" //
+"100D,DCDC Sigma delta voltage sensor 14V side\n" //
+"100E,DCDC internal MOS+drivers\n" //
+"100F,DCDC internal FPGA_CPLD component\n" //
+"1010,14V_DCDC wire\n" //
+"1011,HV_DCDC wire\n" //
+"1012,DCDC Temp\n" //
+"1013,INV internal temp sensor\n" //
+"1014,INV phase U internal current sensor\n" //
+"1015,INV phase V internal current sensor\n" //
+"1016,INV phase W internal current sensor\n" //
+"1018,INV internal FPGA_CPLD component\n" //
+"1019,HV_Inverter wire\n" //
+"101A,INV_EM Iphase\n" //
+"101B,INV_EM Phase U wire\n" //
+"101C,INV_EM Phase V wire\n" //
+"101D,INV_EM Phase W wire\n" //
+"101E,INV+EXCIT Temp\n" //
+"101F,EXCIT Temp sensor\n" //
+"1020,EXCIT +current sensor\n" //
+"1021,EXCIT -current sensor\n" //
+"1023,EM Iexcit signal\n" //
+"1024,APC by wire\n" //
+"1025,EM_SIN signal\n" //
+"1026,EM_COS signal\n" //
+"1027,EM_SIN_COS signals\n" //
+"1028,EM position sensor Supply signal\n" //
+"1029,Excitation current sensors\n" //
+"102A,EM_TEMP signal\n" //
+"102B,EMR Interlock electrical circuit\n" //
+"102C,EM Temp\n" //
+"102E,Spiderbox Interlock electrical circuit\n" //
+"102F,Excitation Interlock electrical circuit\n" //
+"1031,Switch power test procedure\n" //
+"1032,Software parametrization\n" //
+"1033,DCDC Trafo temp sensor\n" //
+"1034,DCDC Power Supply\n" //
+"1036,Program flow\n" //
+"1037,DCDC Failure Class C\n" //
+"1038,Inverter+ Excitation Failure Class C\n" //
+"1039,PEB Failure Class C\n" //
+"103A,Inverter Power Supply\n" //
+"103E,DCDC ADC voltage sensor 14V side\n" //
+"1040,DCDC voltage sensors 14V side\n" //
+"1041,Writing of rotor resistance\n" //
+"1042,Writing of the position sensor\n" //
+"1043,OV flags Data Received by CAN\n" //
+"1044,Torque request deviation\n" //
+"D000,CAN communication\n" //
+"D001,Communication with EVC\n" //
+"D002,Torque request from EVC\n" //
+"D004,Communication with LBC\n" //
+"D003,14V Data from USM\n" //
+"1045,Incoherent requests from EVC\n" //
+"D005,Communication in charge mode\n" //
+"1046,EM positive overspeed\n" //
+"1047,EM negative overspeed\n" //
+"1048,Wrong direction of the wheels\n" //
+"1049,PWM signal\n" //
+"1050,CPLD reprogramming\n" //
+"1052,PEB Failure Class B with safety alert\n" //
;
String testDef =
""
+"00,Device and failure type ODB codding\n" //
+"01,General Electrical Failure\n" //
+"02,General signal failure\n" //
+"03,FM / PWM Failures\n" //
+"04,System Internal Failures\n" //
+"05,System Programming Failures\n" //
+"06,Algorithm Based Failures\n" //
+"07,Mechanical Failures\n" //
+"08,Bus Signal / Message Failures\n" //
+"09,Component Failures\n" //
+"11,circuit short to ground\n" //
+"12,circuit short to battery\n" //
+"13,circuit open\n" //
+"14,circuit short to ground or open\n" //
+"15,circuit short to battery or open\n" //
+"16,circuit voltage below threshold\n" //
+"17,circuit voltage above threshold\n" //
+"18,circuit current below threshold\n" //
+"19,circuit current above threshold\n" //
+"1A,circuit resistance below threshold\n" //
+"1B,circuit resistance above threshold\n" //
+"1C,circuit voltage out of range\n" //
+"1D,circuit current out of range\n" //
+"1E,circuit resistance out of range\n" //
+"1F,circuit intermittent\n" //
+"21,signal amplitude < minimum\n" //
+"22,signal amplitude > maximum\n" //
+"23,signal stuck low\n" //
+"24,signal stuck high\n" //
+"25,signal shape / waveform failure\n" //
+"26,signal rate of change below threshold\n" //
+"27,signal rate of change above threshold\n" //
+"28,signal bias level / zero adjustment failure\n" //
+"29,signal signal invalid\n" //
+"2F,signal erratic\n" //
+"31,no signal\n" //
+"32,signal low time < minimum\n" //
+"33,signal low time > maximum\n" //
+"34,signal high time < minimum\n" //
+"35,signal high time > maximum\n" //
+"36,signal frequency too low\n" //
+"37,signal frequency too high\n" //
+"38,signal frequency incorrect\n" //
+"39,incorrect has too few pulses\n" //
+"3A,incorrect has too many pulses\n" //
+"41,general checksum failure\n" //
+"42,general memory failure\n" //
+"43,special memory failure\n" //
+"44,data memory failure\n" //
+"45,program memory failure\n" //
+"46,calibration / parameter memory failure\n" //
+"47,watchdog / safety µC failure\n" //
+"48,supervision software failure\n" //
+"49,internal electronic failure\n" //
+"4A,incorrect component installed\n" //
+"4B,over temperature\n" //
+"51,not programmed\n" //
+"52,not activated\n" //
+"53,deactivated\n" //
+"54,missing calibration\n" //
+"55,not configured\n" //
+"61,signal calculation failure\n" //
+"62,signal compare failure\n" //
+"63,circuit / component protection time-out\n" //
+"64,signal plausibility failure\n" //
+"65,signal has too few transitions / events\n" //
+"66,signal has too many transitions / events\n" //
+"67,signal incorrect after event\n" //
+"68,event information\n" //
+"71,actuator stuck\n" //
+"72,actuator stuck open\n" //
+"73,actuator stuck closed\n" //
+"74,actuator slipping\n" //
+"75,emergency position not reachable\n" //
+"76,wrong mounting position\n" //
+"77,commanded position not reachable\n" //
+"78,alignment or adjustment incorrect\n" //
+"79,mechanical linkage failure\n" //
+"7A,fluid leak or seal failure\n" //
+"7B,low fluid level\n" //
+"81,invalid serial data received\n" //
+"82,alive / sequence counter incorrect / not updated\n" //
+"83,value of signal protection calculation incorrect\n" //
+"84,signal below allowable range\n" //
+"85,signal above allowable range\n" //
+"86,signal invalid\n" //
+"87,missing message\n" //
+"88,bus off\n" //
+"8F,erratic\n" //
+"91,parametric\n" //
+"92,performance or incorrect operation\n" //
+"93,no operation\n" //
+"94,unexpected operation\n" //
+"95,incorrect assembly\n" //
+"96,component internal failure\n" //
+"97,Component or system operation obstructed/blocked\n" //
+"98,component or system over temperature\n" //
;
Frames.getInstance().load("77E,0,0,PEB\n");
Fields.getInstance().load(fieldDef1);
Dtcs.getInstance().load(dtcDef, testDef);
}
}