all setup with memory settings

This commit is contained in:
Rémi Heredero 2023-08-30 15:37:53 +02:00
parent debececcfd
commit 7550d1907b
7 changed files with 684 additions and 168 deletions

View File

@ -17,9 +17,7 @@ typedef union {
uint8_t byte2;
uint8_t byte3;
} separate;
struct {
uint32_t bytes;
} full;
uint32_t full;
} BYTES_4;
void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
@ -32,67 +30,109 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
if(idMsg == 0x0) { // CONTROL_SETUP
// steeringMode eraseMemory - controlAliveTime
BYTES_4 tmpData;
tmpData.full.bytes = data;
tmpData.full = data;
if (tmpData.separate.byte1) {
MEM_reset();
}
CAR_CST.CONTROL_STEERING_MODE = tmpData.separate.byte0;
CAR_CST.CONTROL_ALIVE_TIME = tmpData.separate.byte3;
MEM_write_1_byte(MEMADD_CONTROL_STEERING_MODE, CAR_CST.CONTROL_STEERING_MODE);
MEM_write_1_byte(MEMADD_CONTROL_ALIVE_TIME, CAR_CST.CONTROL_ALIVE_TIME);
ALIVE_setAliveTime(ALcontroller(), CAR_CST.CONTROL_ALIVE_TIME);
KART_CST.CONTROL_STEERING_MODE = tmpData.separate.byte0;
KART_CST.CONTROL_ALIVE_TIME = tmpData.separate.byte3;
MEM_write_1_byte(MEMADD_CONTROL_STEERING_MODE, KART_CST.CONTROL_STEERING_MODE);
MEM_write_1_byte(MEMADD_CONTROL_ALIVE_TIME, KART_CST.CONTROL_ALIVE_TIME);
ALIVE_setAliveTime(ALcontroller(), KART_CST.CONTROL_ALIVE_TIME);
}
if(idMsg == 0x1) { // CONTROL_SPEED_FACTOR
// valHH valH valL valLL
KART_CST.CONTROL_SPEED_FACTOR = data;
MEM_write_4_byte(MEMADD_CONTROL_SPEED_FACTOR, KART_CST.CONTROL_SPEED_FACTOR);
}
if(idMsg == 0x2) { // CONTROL_POWER_FACTOR
// valHH valH valL valLL
KART_CST.CONTROL_POWER_FACTOR = data;
MEM_write_4_byte(MEMADD_CONTROL_POWER_FACTOR, KART_CST.CONTROL_POWER_FACTOR);
}
if(idMsg == 0x3) { // CONTROL_STEERING_FACTOR
// valHH valH valL valLL
KART_CST.CONTROL_STEERING_FACTOR = data;
MEM_write_4_byte(MEMADD_CONTROL_STEERING_FACTOR, KART_CST.CONTROL_STEERING_FACTOR);
}
if(idMsg == 0x4) { // CONTROL_SECURITY_PARAM
// maxSpeedFw maxSpeedBw - -
BYTES_4 tmpData;
tmpData.full = data;
KART_CST.CONTROL_MAX_SPEED_FW = tmpData.separate.byte0;
KART_CST.CONTROL_MAX_SPEED_BW = tmpData.separate.byte1;
MEM_write_1_byte(MEMADD_CONTROL_MAX_SPEED_FW, KART_CST.CONTROL_MAX_SPEED_FW);
MEM_write_1_byte(MEMADD_CONTROL_MAX_SPEED_BW, KART_CST.CONTROL_MAX_SPEED_BW);
}
if(idMsg == 0x5) { // CONTROL_SETUP_PARAM
// displayAliveTime steeringAliveTime - -
BYTES_4 tmpData;
tmpData.full = data;
KART_CST.DISPLAY_ALIVE_TIME = tmpData.separate.byte0;
KART_CST.STEERING_ALIVE_TIME = tmpData.separate.byte1;
MEM_write_1_byte(MEMADD_DISPLAY_ALIVE_TIME, KART_CST.DISPLAY_ALIVE_TIME);
MEM_write_1_byte(MEMADD_STEERING_ALIVE_TIME, KART_CST.STEERING_ALIVE_TIME);
// TODO set alive times
// TODO send params
}
if(idMsg == 0x6) { // CONTROL_SETUP_PARAM_JOY
// joystickMode joystickParam1 joystickParam2 joystickAliveTime
BYTES_4 tmpData;
tmpData.full.bytes = data;
CAR_CST.JOYSTICK_MODE = tmpData.separate.byte0;
CAR_CST.JOYSTICK_PARAM1 = tmpData.separate.byte1;
CAR_CST.JOYSTICK_PARAM2 = tmpData.separate.byte2;
CAR_CST.JOYSTICK_ALIVE_TIME = tmpData.separate.byte3;
MEM_write_1_byte(MEMADD_JOYSTICK_MODE, CAR_CST.JOYSTICK_MODE);
MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, CAR_CST.JOYSTICK_PARAM1);
MEM_write_1_byte(MEMADD_JOYSTICK_PARAM2, CAR_CST.JOYSTICK_PARAM2);
MEM_write_1_byte(MEMADD_JOYSTICK_ALIVE_TIME, CAR_CST.JOYSTICK_ALIVE_TIME);
tmpData.full = data;
KART_CST.JOYSTICK_MODE = tmpData.separate.byte0;
KART_CST.JOYSTICK_PARAM1 = tmpData.separate.byte1;
KART_CST.JOYSTICK_PARAM2 = tmpData.separate.byte2;
KART_CST.JOYSTICK_ALIVE_TIME = tmpData.separate.byte3;
MEM_write_1_byte(MEMADD_JOYSTICK_MODE, KART_CST.JOYSTICK_MODE);
MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, KART_CST.JOYSTICK_PARAM1);
MEM_write_1_byte(MEMADD_JOYSTICK_PARAM2, KART_CST.JOYSTICK_PARAM2);
MEM_write_1_byte(MEMADD_JOYSTICK_ALIVE_TIME, KART_CST.JOYSTICK_ALIVE_TIME);
ALIVE_setAliveTime(ALjoy(), CAR_CST.JOYSTICK_ALIVE_TIME);
ALIVE_setAliveTime(ALjoy(), KART_CST.JOYSTICK_ALIVE_TIME);
CM_JOY_SETUP(NULL);
}
if(idMsg == 0x7) { // CONTROL_SETUP_PARAM_DRIVE
// driveAliveTime driveSpeedTime driveStopTime -
BYTES_4 tmpData;
tmpData.full = data;
KART_CST.DRIVE_ALIVE_TIME = tmpData.separate.byte0;
KART_CST.DRIVE_SPEED_TIME = tmpData.separate.byte1;
KART_CST.DRIVE_STOP_TIME = tmpData.separate.byte2;
MEM_write_1_byte(MEMADD_DRIVE_ALIVE_TIME, KART_CST.DRIVE_ALIVE_TIME);
MEM_write_1_byte(MEMADD_DRIVE_SPEED_TIME, KART_CST.DRIVE_SPEED_TIME);
MEM_write_1_byte(MEMADD_DRIVE_STOP_TIME, KART_CST.DRIVE_STOP_TIME);
// TODO set alive time
// TODO send params
}
if(idMsg == 0x8) { // CONTROL_SETUP_PARAM_BATTERY
// batteryVoltTime batteryCurrentTime batteryEnergyTime batteryAliveTime
BYTES_4 tmpData;
tmpData.full = data;
KART_CST.BATTERY_VOLT_TIME = tmpData.separate.byte0;
KART_CST.BATTERY_CURRENT_TIME = tmpData.separate.byte1;
KART_CST.BATTERY_ENERGY_TIME = tmpData.separate.byte2;
KART_CST.BATTERY_ALIVE_TIME = tmpData.separate.byte3;
MEM_write_1_byte(MEMADD_BATTERY_VOLT_TIME, KART_CST.BATTERY_VOLT_TIME);
MEM_write_1_byte(MEMADD_BATTERY_CURRENT_TIME, KART_CST.BATTERY_CURRENT_TIME);
MEM_write_1_byte(MEMADD_BATTERY_ENERGY_TIME, KART_CST.BATTERY_ENERGY_TIME);
MEM_write_1_byte(MEMADD_BATTERY_ALIVE_TIME, KART_CST.BATTERY_ALIVE_TIME);
// TODO set alive time
// TODO send params
}
@ -112,11 +152,11 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
// - - - -
ALIVE_ISALIVE(ALjoy());
if(ALjoy()->state == STAL_DEAD){
CAR_CST.JOYSTICK_MODE = MEM_read_1_byte(MEMADD_JOYSTICK_MODE);
CAR_CST.JOYSTICK_PARAM1 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM1);
CAR_CST.JOYSTICK_PARAM2 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM2);
CAR_CST.JOYSTICK_ALIVE_TIME = MEM_read_1_byte(MEMADD_JOYSTICK_ALIVE_TIME);
ALIVE_setAliveTime(ALjoy(), CAR_CST.JOYSTICK_ALIVE_TIME);
KART_CST.JOYSTICK_MODE = MEM_read_1_byte(MEMADD_JOYSTICK_MODE);
KART_CST.JOYSTICK_PARAM1 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM1);
KART_CST.JOYSTICK_PARAM2 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM2);
KART_CST.JOYSTICK_ALIVE_TIME = MEM_read_1_byte(MEMADD_JOYSTICK_ALIVE_TIME);
ALIVE_setAliveTime(ALjoy(), KART_CST.JOYSTICK_ALIVE_TIME);
ALIVE_emitBorn(ALjoy(), 0, 0);
ALIVE_emitReady(ALjoy(), 100, 0);
}
@ -130,6 +170,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
case 3:
if(idMsg == 0xF) { // DISPLAY_ALIVE
// powerMode - - -
// TODO display say ALIVE
}
break;
@ -146,6 +187,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
if(idMsg == 0xF) { // DRIVE_ALIVE
// statusH statusL - -
// TODO drive say ALIVE
}
break;
@ -167,6 +209,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
if(idMsg == 0xF) { // STEERING_ALIVE
// statusH statusL - -
// TODO steering say ALIVE with his status
}
break;
@ -178,6 +221,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
case 6:
if(idMsg == 0xF) { // BATTERY_ALIVE
// - - - -
// TODO battery say ALIVE
}
break;
@ -192,46 +236,113 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
}
void CM_CONTROLLER_ALIVE(void* p) {
// - - - -
CAN_Send(0x0, 0xF, 0);
}
void CM_JOY_SETUP(void* p) {
// mode parm1 param2 aliveTime
BYTES_4 joy;
joy.separate.byte0 = CAR_CST.JOYSTICK_MODE;
joy.separate.byte1 = CAR_CST.JOYSTICK_PARAM1;
joy.separate.byte2 = CAR_CST.JOYSTICK_PARAM2;
joy.separate.byte3 = CAR_CST.JOYSTICK_ALIVE_TIME;
CAN_Send(2, 0, joy.full.bytes);
joy.separate.byte0 = KART_CST.JOYSTICK_MODE;
joy.separate.byte1 = KART_CST.JOYSTICK_PARAM1;
joy.separate.byte2 = KART_CST.JOYSTICK_PARAM2;
joy.separate.byte3 = KART_CST.JOYSTICK_ALIVE_TIME;
CAN_Send(2, 0, joy.full);
}
void CM_DISPLAY_SETUP(void* p) {
// reset - - aliveTime
BYTES_4 display;
display.separate.byte0 = 0; // reset
display.separate.byte3 = KART_CST.DISPLAY_ALIVE_TIME;
CAN_Send(3, 0, display.full);
}
void CM_DISPLAY_SPEED(void* p) {
// valH valL - -
BYTES_4 tmpData;
// byte0 should be valH but isn't possible to go enough fast for use it
tmpData.separate.byte0 = 0;
tmpData.separate.byte1 = *((uint8_t*) p);
tmpData.separate.byte2 = 0;
tmpData.separate.byte3 = 0;
CAN_Send(3, 2, tmpData.full);
}
void CM_DISPLAY_DIRECTION(void* p) {
// direction - - -
BYTES_4 tmpData;
tmpData.separate.byte0 = (uint8_t) p;
tmpData.separate.byte1 = 0;
tmpData.separate.byte2 = 0;
tmpData.separate.byte3 = 0;
CAN_Send(3, 3, tmpData.full);
}
void CM_DRIVE_SETUP(void* p) {
// reset/init speedTime stopTime aliveTime
BYTES_4 tmpData;
tmpData.separate.byte0 = (uint8_t) p;
tmpData.separate.byte1 = KART_CST.DRIVE_SPEED_TIME;
tmpData.separate.byte2 = KART_CST.DRIVE_STOP_TIME;
tmpData.separate.byte3 = KART_CST.DRIVE_ALIVE_TIME;
CAN_Send(4, 0, tmpData.full);
}
void CM_DRIVE_POWER(void* p) {
// valH valL - -
// TODO
}
void CM_STEERING_SETUP(void* p) {
// reset/init homing setCenter aliveTime
// TODO not working have to fix it
BYTES_4 tmpData;
uint8_t choice = (uint8_t) p;
switch (choice) {
case 1:
tmpData.separate.byte0 = 1;
tmpData.separate.byte1 = 0;
tmpData.separate.byte2 = 0;
break;
case 2:
tmpData.separate.byte0 = 0;
tmpData.separate.byte1 = 1;
tmpData.separate.byte2 = 0;
break;
case 3:
tmpData.separate.byte0 = 0;
tmpData.separate.byte1 = 0;
tmpData.separate.byte2 = 1;
break;
default:
tmpData.separate.byte0 = 0;
tmpData.separate.byte1 = 0;
tmpData.separate.byte2 = 0;
break;
}
tmpData.separate.byte3 = KART_CST.STEERING_ALIVE_TIME; // 0 -> no alive
CAN_Send(5, 0, tmpData.full);
}
void CM_STEERING_SET(void* p) {
// valHH valH valL valLL
BYTES_4 pPosition;
pPosition.full = *((uint32_t*) p);
BYTES_4 sPosition;
sPosition.separate.byte0 = pPosition.separate.byte3;
sPosition.separate.byte1 = pPosition.separate.byte2;
sPosition.separate.byte2 = pPosition.separate.byte1;
sPosition.separate.byte3 = pPosition.separate.byte0;
CAN_Send(5, 1, sPosition.full);
}
void CM_SETUP_CONTROL(void* p) {
void CM_SUPPLY_SETUP(void* p) {
// batteryVoltTime batteryCurrentTime batteryEnergyTime aliveTime
BYTES_4 supply;
supply.separate.byte0 = KART_CST.BATTERY_VOLT_TIME;
supply.separate.byte1 = KART_CST.BATTERY_CURRENT_TIME;
supply.separate.byte2 = KART_CST.BATTERY_ENERGY_TIME;
supply.separate.byte3 = KART_CST.BATTERY_ALIVE_TIME;
CAN_Send(6, 0, supply.full);
}

View File

@ -26,17 +26,76 @@ S R M
1 6 0 SETUP_CONTROL batteryVoltTime batteryCurrentTime batteryEnergyTime aliveTime
*/
/**
* Process an incoming message
* @param idSender id of the sender
* @param idMsg is of the message
* @param data data of the message
*/
void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data);
/**
* Send alive message from controller
* @param p have to be NULL
*/
void CM_CONTROLLER_ALIVE(void* p);
/**
* Send setup to the joystick (settings from memory)
* @param p have to be NULL
*/
void CM_JOY_SETUP(void* p);
/**
* Send setup to the display (settings from memory)
* @param p have to be NULL
*/
void CM_DISPLAY_SETUP(void* p);
/**
* Send speed to display
* @param p the speed in 100m/h (max 255 m/h)
*/
void CM_DISPLAY_SPEED(void* p);
/**
* Send direction of the steering wheel
* 0 is straight forward
* positive value is going right
* negative value is going left
* @param p the direction (int 8)
*/
void CM_DISPLAY_DIRECTION(void* p);
/**
* Send setup to the drive
* use with reset in parameter
* other settings from memory
* @param p 1 if reset/init 0 else
*/
void CM_DRIVE_SETUP(void* p);
void CM_DRIVE_POWER(void* p);
/**
* Send setup to the steering
* can be use for reset (1), homing (2) and setCenter (3)
* @param p 0 for setup, 1 for reset, 2 for homing, 3 for setCenter
*/
void CM_STEERING_SETUP(void* p);
/**
* Send position for steering
* no negative value because 0 is home (sensor)
* @param p the position (uint32_t*)
*/
void CM_STEERING_SET(void* p);
void CM_SETUP_CONTROL(void* p);
/**
* Send setup to the supply (settings from memory)
* @param p have to be NULL
*/
void CM_SUPPLY_SETUP(void* p);
#endif /* CAN_MESSAGE_H */

View File

@ -65,8 +65,15 @@ typedef struct {
uint8_t BATTERY_CURRENT_TIME;
uint8_t BATTERY_ENERGY_TIME;
uint8_t BATTERY_ALIVE_TIME;
} CAR_CST_TYPE;
CAR_CST_TYPE CAR_CST;
} KART_CST_TYPE;
KART_CST_TYPE KART_CST;
typedef struct {
int32_t speed;
uint32_t center;
uint32_t position;
} KART_VAR_TYPE;
KART_VAR_TYPE eKart;
#endif /* CAR_H */

View File

@ -63,12 +63,10 @@ void Factory_init() {
CAN_setSender(1);
LED_off(l1());
// TODO init EPROM interface
MEM_init();
// TODO init watchdog with EPROM CST
ALIVE_init(ALcontroller());
ALIVE_setAliveTime(ALcontroller(), CAR_CST.CONTROL_ALIVE_TIME);
ALIVE_setAliveTime(ALcontroller(), KART_CST.CONTROL_ALIVE_TIME);
ALIVE_init(ALjoy());
}
@ -81,7 +79,7 @@ void Factory_build() {
ALIVE_onAlive(ALcontroller(), CM_CONTROLLER_ALIVE, NULL);
ALIVE_onSetup(ALjoy(), CM_JOY_SETUP, NULL);
ALIVE_setAliveTime(ALjoy(), CAR_CST.JOYSTICK_ALIVE_TIME);
ALIVE_setAliveTime(ALjoy(), KART_CST.JOYSTICK_ALIVE_TIME);
ALIVE_onBorn(ALjoy(), LED_on, l1());
ALIVE_onDead(ALjoy(), LED_off, l1());

View File

@ -198,7 +198,6 @@ uint8_t DATAEE_ReadByte(uint16_t bAdd)
void MEMORY_Tasks( void )
{
/* TODO : Add interrupt handling code */
PIR0bits.NVMIF = 0;
}
/**

View File

@ -22,85 +22,85 @@ typedef union {
void MEM_init(){
uint8_t check = MEM_read_1_byte(0x0);
if(check != 0x42){
CAR_CST.CONTROL_STEERING_MODE = 0;
CAR_CST.CONTROL_ALIVE_TIME = 50;
CAR_CST.CONTROL_SPEED_FACTOR = 0;
CAR_CST.CONTROL_POWER_FACTOR = 0;
CAR_CST.CONTROL_STEERING_FACTOR = 0;
CAR_CST.CONTROL_MAX_SPEED_FW = 0;
CAR_CST.CONTROL_MAX_SPEED_BW = 0;
KART_CST.CONTROL_STEERING_MODE = 0;
KART_CST.CONTROL_ALIVE_TIME = 50;
KART_CST.CONTROL_SPEED_FACTOR = 0;
KART_CST.CONTROL_POWER_FACTOR = 0;
KART_CST.CONTROL_STEERING_FACTOR = 0;
KART_CST.CONTROL_MAX_SPEED_FW = 0;
KART_CST.CONTROL_MAX_SPEED_BW = 0;
CAR_CST.JOYSTICK_MODE = 0;
CAR_CST.JOYSTICK_PARAM1 = 10;
CAR_CST.JOYSTICK_PARAM2 = 1;
CAR_CST.JOYSTICK_ALIVE_TIME = 10;
KART_CST.JOYSTICK_MODE = 0;
KART_CST.JOYSTICK_PARAM1 = 5;
KART_CST.JOYSTICK_PARAM2 = 1;
KART_CST.JOYSTICK_ALIVE_TIME = 25;
CAR_CST.DISPLAY_ALIVE_TIME = 50;
KART_CST.DISPLAY_ALIVE_TIME = 100;
CAR_CST.DRIVE_SPEED_TIME = 0;
CAR_CST.DRIVE_STOP_TIME = 0;
CAR_CST.DRIVE_ALIVE_TIME = 10;
KART_CST.DRIVE_SPEED_TIME = 0;
KART_CST.DRIVE_STOP_TIME = 0;
KART_CST.DRIVE_ALIVE_TIME = 10;
CAR_CST.STEERING_ALIVE_TIME = 100;
KART_CST.STEERING_ALIVE_TIME = 100;
CAR_CST.BATTERY_VOLT_TIME = 50;
CAR_CST.BATTERY_CURRENT_TIME = 50;
CAR_CST.BATTERY_ENERGY_TIME = 50;
CAR_CST.BATTERY_ALIVE_TIME = 50;
KART_CST.BATTERY_VOLT_TIME = 50;
KART_CST.BATTERY_CURRENT_TIME = 50;
KART_CST.BATTERY_ENERGY_TIME = 50;
KART_CST.BATTERY_ALIVE_TIME = 50;
MEM_write_1_byte(MEMADD_CONTROL_STEERING_MODE, CAR_CST.CONTROL_STEERING_MODE);
MEM_write_1_byte(MEMADD_CONTROL_ALIVE_TIME, CAR_CST.CONTROL_ALIVE_TIME);
MEM_write_4_byte(MEMADD_CONTROL_SPEED_FACTOR, CAR_CST.CONTROL_SPEED_FACTOR);
MEM_write_4_byte(MEMADD_CONTROL_POWER_FACTOR, CAR_CST.CONTROL_POWER_FACTOR);
MEM_write_4_byte(MEMADD_CONTROL_STEERING_FACTOR, CAR_CST.CONTROL_STEERING_FACTOR);
MEM_write_1_byte(MEMADD_CONTROL_MAX_SPEED_FW, CAR_CST.CONTROL_MAX_SPEED_FW);
MEM_write_1_byte(MEMADD_CONTROL_MAX_SPEED_BW, CAR_CST.CONTROL_MAX_SPEED_BW);
MEM_write_1_byte(MEMADD_CONTROL_STEERING_MODE, KART_CST.CONTROL_STEERING_MODE);
MEM_write_1_byte(MEMADD_CONTROL_ALIVE_TIME, KART_CST.CONTROL_ALIVE_TIME);
MEM_write_4_byte(MEMADD_CONTROL_SPEED_FACTOR, KART_CST.CONTROL_SPEED_FACTOR);
MEM_write_4_byte(MEMADD_CONTROL_POWER_FACTOR, KART_CST.CONTROL_POWER_FACTOR);
MEM_write_4_byte(MEMADD_CONTROL_STEERING_FACTOR, KART_CST.CONTROL_STEERING_FACTOR);
MEM_write_1_byte(MEMADD_CONTROL_MAX_SPEED_FW, KART_CST.CONTROL_MAX_SPEED_FW);
MEM_write_1_byte(MEMADD_CONTROL_MAX_SPEED_BW, KART_CST.CONTROL_MAX_SPEED_BW);
MEM_write_1_byte(MEMADD_JOYSTICK_MODE, CAR_CST.JOYSTICK_MODE);
MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, CAR_CST.JOYSTICK_PARAM1);
MEM_write_1_byte(MEMADD_JOYSTICK_PARAM2, CAR_CST.JOYSTICK_PARAM2);
MEM_write_1_byte(MEMADD_JOYSTICK_ALIVE_TIME, CAR_CST.JOYSTICK_ALIVE_TIME);
MEM_write_1_byte(MEMADD_JOYSTICK_MODE, KART_CST.JOYSTICK_MODE);
MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, KART_CST.JOYSTICK_PARAM1);
MEM_write_1_byte(MEMADD_JOYSTICK_PARAM2, KART_CST.JOYSTICK_PARAM2);
MEM_write_1_byte(MEMADD_JOYSTICK_ALIVE_TIME, KART_CST.JOYSTICK_ALIVE_TIME);
MEM_write_1_byte(MEMADD_DISPLAY_ALIVE_TIME, CAR_CST.DISPLAY_ALIVE_TIME);
MEM_write_1_byte(MEMADD_DISPLAY_ALIVE_TIME, KART_CST.DISPLAY_ALIVE_TIME);
MEM_write_1_byte(MEMADD_DRIVE_SPEED_TIME, CAR_CST.DRIVE_SPEED_TIME);
MEM_write_1_byte(MEMADD_DRIVE_STOP_TIME, CAR_CST.DRIVE_STOP_TIME);
MEM_write_1_byte(MEMADD_DRIVE_ALIVE_TIME, CAR_CST.DRIVE_ALIVE_TIME);
MEM_write_1_byte(MEMADD_DRIVE_SPEED_TIME, KART_CST.DRIVE_SPEED_TIME);
MEM_write_1_byte(MEMADD_DRIVE_STOP_TIME, KART_CST.DRIVE_STOP_TIME);
MEM_write_1_byte(MEMADD_DRIVE_ALIVE_TIME, KART_CST.DRIVE_ALIVE_TIME);
MEM_write_1_byte(MEMADD_STEERING_ALIVE_TIME, CAR_CST.STEERING_ALIVE_TIME);
MEM_write_1_byte(MEMADD_STEERING_ALIVE_TIME, KART_CST.STEERING_ALIVE_TIME);
MEM_write_1_byte(MEMADD_BATTERY_VOLT_TIME, CAR_CST.BATTERY_VOLT_TIME);
MEM_write_1_byte(MEMADD_BATTERY_CURRENT_TIME, CAR_CST.BATTERY_CURRENT_TIME);
MEM_write_1_byte(MEMADD_BATTERY_ENERGY_TIME, CAR_CST.BATTERY_ENERGY_TIME);
MEM_write_1_byte(MEMADD_BATTERY_ALIVE_TIME, CAR_CST.BATTERY_ALIVE_TIME);
MEM_write_1_byte(MEMADD_BATTERY_VOLT_TIME, KART_CST.BATTERY_VOLT_TIME);
MEM_write_1_byte(MEMADD_BATTERY_CURRENT_TIME, KART_CST.BATTERY_CURRENT_TIME);
MEM_write_1_byte(MEMADD_BATTERY_ENERGY_TIME, KART_CST.BATTERY_ENERGY_TIME);
MEM_write_1_byte(MEMADD_BATTERY_ALIVE_TIME, KART_CST.BATTERY_ALIVE_TIME);
MEM_write_1_byte(0x0, 0x42);
} else {
CAR_CST.CONTROL_STEERING_MODE = MEM_read_1_byte(MEMADD_CONTROL_STEERING_MODE);
CAR_CST.CONTROL_ALIVE_TIME = MEM_read_1_byte(MEMADD_CONTROL_ALIVE_TIME);
CAR_CST.CONTROL_SPEED_FACTOR = MEM_read_1_byte(MEMADD_CONTROL_SPEED_FACTOR);
CAR_CST.CONTROL_POWER_FACTOR = MEM_read_1_byte(MEMADD_CONTROL_POWER_FACTOR);
CAR_CST.CONTROL_STEERING_FACTOR = MEM_read_1_byte(MEMADD_CONTROL_STEERING_FACTOR);
CAR_CST.CONTROL_MAX_SPEED_FW = MEM_read_1_byte(MEMADD_CONTROL_MAX_SPEED_FW);
CAR_CST.CONTROL_MAX_SPEED_BW = MEM_read_1_byte(MEMADD_CONTROL_MAX_SPEED_BW);
KART_CST.CONTROL_STEERING_MODE = MEM_read_1_byte(MEMADD_CONTROL_STEERING_MODE);
KART_CST.CONTROL_ALIVE_TIME = MEM_read_1_byte(MEMADD_CONTROL_ALIVE_TIME);
KART_CST.CONTROL_SPEED_FACTOR = MEM_read_1_byte(MEMADD_CONTROL_SPEED_FACTOR);
KART_CST.CONTROL_POWER_FACTOR = MEM_read_1_byte(MEMADD_CONTROL_POWER_FACTOR);
KART_CST.CONTROL_STEERING_FACTOR = MEM_read_1_byte(MEMADD_CONTROL_STEERING_FACTOR);
KART_CST.CONTROL_MAX_SPEED_FW = MEM_read_1_byte(MEMADD_CONTROL_MAX_SPEED_FW);
KART_CST.CONTROL_MAX_SPEED_BW = MEM_read_1_byte(MEMADD_CONTROL_MAX_SPEED_BW);
CAR_CST.JOYSTICK_MODE = MEM_read_1_byte(MEMADD_JOYSTICK_MODE);
CAR_CST.JOYSTICK_PARAM1 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM1);
CAR_CST.JOYSTICK_PARAM2 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM2);
CAR_CST.JOYSTICK_ALIVE_TIME = MEM_read_1_byte(MEMADD_JOYSTICK_ALIVE_TIME);
KART_CST.JOYSTICK_MODE = MEM_read_1_byte(MEMADD_JOYSTICK_MODE);
KART_CST.JOYSTICK_PARAM1 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM1);
KART_CST.JOYSTICK_PARAM2 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM2);
KART_CST.JOYSTICK_ALIVE_TIME = MEM_read_1_byte(MEMADD_JOYSTICK_ALIVE_TIME);
CAR_CST.DISPLAY_ALIVE_TIME = MEM_read_1_byte(MEMADD_DISPLAY_ALIVE_TIME);
KART_CST.DISPLAY_ALIVE_TIME = MEM_read_1_byte(MEMADD_DISPLAY_ALIVE_TIME);
CAR_CST.DRIVE_SPEED_TIME = MEM_read_1_byte(MEMADD_DRIVE_SPEED_TIME);
CAR_CST.DRIVE_STOP_TIME = MEM_read_1_byte(MEMADD_DRIVE_STOP_TIME);
CAR_CST.DRIVE_ALIVE_TIME = MEM_read_1_byte(MEMADD_DRIVE_ALIVE_TIME);
KART_CST.DRIVE_SPEED_TIME = MEM_read_1_byte(MEMADD_DRIVE_SPEED_TIME);
KART_CST.DRIVE_STOP_TIME = MEM_read_1_byte(MEMADD_DRIVE_STOP_TIME);
KART_CST.DRIVE_ALIVE_TIME = MEM_read_1_byte(MEMADD_DRIVE_ALIVE_TIME);
CAR_CST.STEERING_ALIVE_TIME = MEM_read_1_byte(MEMADD_STEERING_ALIVE_TIME);
KART_CST.STEERING_ALIVE_TIME = MEM_read_1_byte(MEMADD_STEERING_ALIVE_TIME);
CAR_CST.BATTERY_VOLT_TIME = MEM_read_1_byte(MEMADD_BATTERY_VOLT_TIME);
CAR_CST.BATTERY_CURRENT_TIME = MEM_read_1_byte(MEMADD_BATTERY_CURRENT_TIME);
CAR_CST.BATTERY_ENERGY_TIME = MEM_read_1_byte(MEMADD_BATTERY_ENERGY_TIME);
CAR_CST.BATTERY_ALIVE_TIME = MEM_read_1_byte(MEMADD_BATTERY_ALIVE_TIME);
KART_CST.BATTERY_VOLT_TIME = MEM_read_1_byte(MEMADD_BATTERY_VOLT_TIME);
KART_CST.BATTERY_CURRENT_TIME = MEM_read_1_byte(MEMADD_BATTERY_CURRENT_TIME);
KART_CST.BATTERY_ENERGY_TIME = MEM_read_1_byte(MEMADD_BATTERY_ENERGY_TIME);
KART_CST.BATTERY_ALIVE_TIME = MEM_read_1_byte(MEMADD_BATTERY_ALIVE_TIME);
}
}

View File

@ -8,8 +8,8 @@
<IsLogFilterEnabled>FALSE</IsLogFilterEnabled>
<IsLogFilterLINEnabled>FALSE</IsLogFilterLINEnabled>
<IsLoggingEnabled>FALSE</IsLoggingEnabled>
<IsMsgIntepretationEnabled>FALSE</IsMsgIntepretationEnabled>
<IsOverWriteEnabled>TRUE</IsOverWriteEnabled>
<IsMsgIntepretationEnabled>TRUE</IsMsgIntepretationEnabled>
<IsOverWriteEnabled>FALSE</IsOverWriteEnabled>
<DisplayTimeMode>SYSTEM</DisplayTimeMode>
<DisplayNumericMode>FALSE</DisplayNumericMode>
<LogOnConnect_CAN>FALSE</LogOnConnect_CAN>
@ -17,7 +17,7 @@
<LogOnConnect_LIN>FALSE</LogOnConnect_LIN>
<Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>HIDE</WindowPlacement>
<WindowPlacement>SHOWNORMAL</WindowPlacement>
<Top>655</Top>
<Left>0</Left>
<Bottom>874</Bottom>
@ -28,6 +28,44 @@
<CAN_Database_Files>
<FilePath>threewheeler.DBF</FilePath>
</CAN_Database_Files>
<Bus_Statistics>
<CAN_Statistics>
<COLUMN>
<ID>Parameter</ID>
<Order>1</Order>
<Width>200</Width>
<IsVisible>1</IsVisible>
</COLUMN>
<COLUMN>
<ID>Channel 1</ID>
<Order>2</Order>
<Width>90</Width>
<IsVisible>1</IsVisible>
</COLUMN>
</CAN_Statistics>
<LIN_Statistics>
<COLUMN>
<ID>Parameter</ID>
<Order>1</Order>
<Width>200</Width>
<IsVisible>1</IsVisible>
</COLUMN>
<COLUMN>
<ID>Channel 1</ID>
<Order>2</Order>
<Width>90</Width>
<IsVisible>1</IsVisible>
</COLUMN>
</LIN_Statistics>
<Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>388</Top>
<Left>612</Left>
<Bottom>1002</Bottom>
<Right>1034</Right>
</Window_Position>
</Bus_Statistics>
<J1939_Database_Files/>
<CAN_DIL_Section>
<DriverName>MHS Tiny-CAN</DriverName>
@ -85,27 +123,305 @@
</Channel>
</ControllerSettings>
</CAN_DIL_Section>
<CAN_Filters>
<Filter>
<Name>notAlive</Name>
<Type>STOP</Type>
<FilterMessage>
<IdFrom>271</IdFrom>
<IdTo>271</IdTo>
<Direction>Rx</Direction>
<IDType>STD</IDType>
<MsgType>NONRTR</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>799</IdFrom>
<IdTo>799</IdTo>
<Direction>ALL</Direction>
<IDType>STD</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>543</IdFrom>
<IdTo>543</IdTo>
<Direction>ALL</Direction>
<IDType>STD</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1055</IdFrom>
<IdTo>1055</IdTo>
<Direction>ALL</Direction>
<IDType>STD</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1311</IdFrom>
<IdTo>1311</IdTo>
<Direction>ALL</Direction>
<IDType>STD</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
</Filter>
<Filter>
<Name>display</Name>
<Type>PASS</Type>
<FilterMessage>
<IdFrom>306</IdFrom>
<IdTo>306</IdTo>
<Direction>ALL</Direction>
<IDType>STD</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>307</IdFrom>
<IdTo>307</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>799</IdFrom>
<IdTo>799</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1585</IdFrom>
<IdTo>1585</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1586</IdFrom>
<IdTo>1586</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1587</IdFrom>
<IdTo>1587</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
</Filter>
<Filter>
<Name>drive</Name>
<Type>PASS</Type>
<FilterMessage>
<IdFrom>320</IdFrom>
<IdTo>320</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>321</IdFrom>
<IdTo>321</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1055</IdFrom>
<IdTo>1055</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1040</IdFrom>
<IdTo>1040</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
</Filter>
<Filter>
<Name>steering</Name>
<Type>PASS</Type>
<FilterMessage>
<IdFrom>336</IdFrom>
<IdTo>336</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>337</IdFrom>
<IdTo>337</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1298</IdFrom>
<IdTo>1298</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>1311</IdFrom>
<IdTo>1311</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>82</IdFrom>
<IdTo>82</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
</Filter>
<Filter>
<Name>joy</Name>
<Type>PASS</Type>
<FilterMessage>
<IdFrom>288</IdFrom>
<IdTo>288</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>529</IdFrom>
<IdTo>529</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>543</IdFrom>
<IdTo>543</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
</Filter>
<Filter>
<Name>controller</Name>
<Type>PASS</Type>
<FilterMessage>
<IdFrom>16</IdFrom>
<IdTo>16</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>271</IdFrom>
<IdTo>271</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>17</IdFrom>
<IdTo>17</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>18</IdFrom>
<IdTo>18</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>19</IdFrom>
<IdTo>19</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>20</IdFrom>
<IdTo>20</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
<FilterMessage>
<IdFrom>22</IdFrom>
<IdTo>22</IdTo>
<Direction>ALL</Direction>
<IDType>ALL</IDType>
<MsgType>ALL</MsgType>
<Channel>0</Channel>
</FilterMessage>
</Filter>
</CAN_Filters>
<CAN_Signal_Watch>
<Message>
<Id>288</Id>
<Signal>DeltaY</Signal>
<Signal>aliveTime</Signal>
<Signal>timeMeasureOrDeltaX</Signal>
<Signal>mode</Signal>
<Id>337</Id>
<Signal>SteeringPosition</Signal>
</Message>
<Message>
<Id>336</Id>
<Signal>SET_CENTER</Signal>
<Signal>HOMING</Signal>
<Signal>RESET</Signal>
<Signal>ALIVE_TIME</Signal>
</Message>
<Message>
<Id>82</Id>
<Signal>CENTER_POS</Signal>
</Message>
<Message>
<Id>1298</Id>
<Signal>POSITION</Signal>
</Message>
<Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>HIDE</WindowPlacement>
<Top>622</Top>
<Left>86</Left>
<Right>816</Right>
<Bottom>998</Bottom>
<Top>157</Top>
<Left>596</Left>
<Right>1086</Right>
<Bottom>387</Bottom>
</Window_Position>
<COLUMN_WIDTH>
<MESSAGE_COLUMN>142</MESSAGE_COLUMN>
<Raw_Val_Column>174</Raw_Val_Column>
<Physical_Val_Column>285</Physical_Val_Column>
<Signal_Column>142</Signal_Column>
<MESSAGE_COLUMN>94</MESSAGE_COLUMN>
<Raw_Val_Column>178</Raw_Val_Column>
<Physical_Val_Column>189</Physical_Val_Column>
<Signal_Column>94</Signal_Column>
</COLUMN_WIDTH>
</CAN_Signal_Watch>
<J1939_Signal_Watch>
@ -192,12 +508,12 @@
</LIN_Log>
<CAN_Simulated_Systems>
<Window_Position>
<Visibility>HIDE</Visibility>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>0</Top>
<Left>0</Left>
<Bottom>0</Bottom>
<Right>0</Right>
<Bottom>577</Bottom>
<Right>423</Right>
</Window_Position>
</CAN_Simulated_Systems>
<J1939_Simulated_Systems>
@ -212,9 +528,11 @@
</J1939_Simulated_Systems>
<CAN_Replay/>
<CAN_Message_Window>
<Append_Buffer_Size>5000</Append_Buffer_Size>
<Overwrite_Buffer_Size>2000</Overwrite_Buffer_Size>
<Display_Update_Time>100</Display_Update_Time>
<Append_Buffer_Size>2025155376</Append_Buffer_Size>
<Overwrite_Buffer_Size>24800128</Overwrite_Buffer_Size>
<Display_Update_Time>2025155348</Display_Update_Time>
<Filter IsEnabled="0">notAlive</Filter>
<Filter IsEnabled="0">steering</Filter>
<COLUMN>
<ID/>
<Order>1</Order>
@ -223,27 +541,27 @@
</COLUMN>
<COLUMN>
<ID>Time</ID>
<Order>2</Order>
<Order>5</Order>
<IsVisible>1</IsVisible>
<Width>138</Width>
<Width>129</Width>
</COLUMN>
<COLUMN>
<ID>Tx/Rx</ID>
<Order>3</Order>
<Order>4</Order>
<IsVisible>1</IsVisible>
<Width>85</Width>
<Width>53</Width>
</COLUMN>
<COLUMN>
<ID>Channel</ID>
<Order>4</Order>
<IsVisible>1</IsVisible>
<Width>92</Width>
<Order>2</Order>
<IsVisible>0</IsVisible>
<Width>0</Width>
</COLUMN>
<COLUMN>
<ID>Msg Type</ID>
<Order>5</Order>
<IsVisible>1</IsVisible>
<Width>71</Width>
<Order>3</Order>
<IsVisible>0</IsVisible>
<Width>0</Width>
</COLUMN>
<COLUMN>
<ID>ID</ID>
@ -255,22 +573,22 @@
<ID>Message</ID>
<Order>7</Order>
<IsVisible>1</IsVisible>
<Width>174</Width>
<Width>143</Width>
</COLUMN>
<COLUMN>
<ID>DLC</ID>
<Order>8</Order>
<IsVisible>1</IsVisible>
<Width>75</Width>
<Width>38</Width>
</COLUMN>
<COLUMN>
<ID>Data Byte(s)</ID>
<Order>9</Order>
<IsVisible>1</IsVisible>
<Width>198</Width>
<Width>158</Width>
</COLUMN>
<IsHex>1</IsHex>
<IsAppend>0</IsAppend>
<IsAppend>1</IsAppend>
<IsInterpret>0</IsInterpret>
<Time_Mode>SYSTEM</Time_Mode>
<Window_Position>
@ -278,16 +596,16 @@
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>0</Top>
<Left>0</Left>
<Bottom>295</Bottom>
<Right>909</Right>
<Bottom>810</Bottom>
<Right>606</Right>
</Window_Position>
<Interpretation_Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>271</Top>
<Left>879</Left>
<Bottom>958</Bottom>
<Right>1552</Right>
<Top>173</Top>
<Left>10</Left>
<Bottom>451</Bottom>
<Right>359</Right>
</Interpretation_Window_Position>
</CAN_Message_Window>
<J1939_Message_Window>
@ -378,15 +696,15 @@
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>0</Top>
<Left>0</Left>
<Bottom>543</Bottom>
<Bottom>549</Bottom>
<Right>1614</Right>
</Window_Position>
<Interpretation_Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>179</Top>
<Top>173</Top>
<Left>10</Left>
<Bottom>457</Bottom>
<Bottom>451</Bottom>
<Right>359</Right>
</Interpretation_Window_Position>
</J1939_Message_Window>
@ -463,15 +781,15 @@
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>0</Top>
<Left>0</Left>
<Bottom>543</Bottom>
<Bottom>549</Bottom>
<Right>1614</Right>
</Window_Position>
<Interpretation_Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
<Top>179</Top>
<Top>173</Top>
<Left>10</Left>
<Bottom>457</Bottom>
<Bottom>451</Bottom>
<Right>359</Right>
</Interpretation_Window_Position>
</LIN_Message_Window>
@ -479,19 +797,19 @@
<Window_Position>
<Visibility>SHOWNORMAL</Visibility>
<WindowPlacement>SETMINPOSITION</WindowPlacement>
<Top>12</Top>
<Left>989</Left>
<Bottom>667</Bottom>
<Right>1849</Right>
<Top>3</Top>
<Left>1055</Left>
<Bottom>658</Bottom>
<Right>1915</Right>
</Window_Position>
<Message_List>
<Message>
<Channel>1</Channel>
<Message_ID>528</Message_ID>
<Message_ID>22</Message_ID>
<IsExtended>FALSE</IsExtended>
<IsRtr>FALSE</IsRtr>
<DLC>4</DLC>
<DataBytes>0,0,0,0</DataBytes>
<DataBytes>0,5,1,25</DataBytes>
<Repetion>10</Repetion>
<Repetition_Enabled>FALSE</Repetition_Enabled>
<Key_Value>a</Key_Value>
@ -499,11 +817,11 @@
</Message>
<Message>
<Channel>1</Channel>
<Message_ID>529</Message_ID>
<Message_ID>16</Message_ID>
<IsExtended>FALSE</IsExtended>
<IsRtr>FALSE</IsRtr>
<DLC>4</DLC>
<DataBytes>0,0,0,0</DataBytes>
<DataBytes>0,0,0,50</DataBytes>
<Repetion>10</Repetion>
<Repetition_Enabled>FALSE</Repetition_Enabled>
<Key_Value>a</Key_Value>
@ -511,11 +829,11 @@
</Message>
<Message>
<Channel>1</Channel>
<Message_ID>288</Message_ID>
<Message_ID>306</Message_ID>
<IsExtended>FALSE</IsExtended>
<IsRtr>FALSE</IsRtr>
<DLC>4</DLC>
<DataBytes>0,255,1,5</DataBytes>
<DLC>2</DLC>
<DataBytes>0,100</DataBytes>
<Repetion>10</Repetion>
<Repetition_Enabled>FALSE</Repetition_Enabled>
<Key_Value>a</Key_Value>
@ -523,11 +841,35 @@
</Message>
<Message>
<Channel>1</Channel>
<Message_ID>543</Message_ID>
<Message_ID>336</Message_ID>
<IsExtended>FALSE</IsExtended>
<IsRtr>FALSE</IsRtr>
<DLC>1</DLC>
<DataBytes>0</DataBytes>
<DLC>4</DLC>
<DataBytes>1,0,0,0</DataBytes>
<Repetion>10</Repetion>
<Repetition_Enabled>FALSE</Repetition_Enabled>
<Key_Value>a</Key_Value>
<Key_Enabled>FALSE</Key_Enabled>
</Message>
<Message>
<Channel>1</Channel>
<Message_ID>336</Message_ID>
<IsExtended>FALSE</IsExtended>
<IsRtr>FALSE</IsRtr>
<DLC>4</DLC>
<DataBytes>0,1,0,0</DataBytes>
<Repetion>10</Repetion>
<Repetition_Enabled>FALSE</Repetition_Enabled>
<Key_Value>a</Key_Value>
<Key_Enabled>FALSE</Key_Enabled>
</Message>
<Message>
<Channel>1</Channel>
<Message_ID>337</Message_ID>
<IsExtended>FALSE</IsExtended>
<IsRtr>FALSE</IsRtr>
<DLC>4</DLC>
<DataBytes>0,1,134,160</DataBytes>
<Repetion>10</Repetion>
<Repetition_Enabled>FALSE</Repetition_Enabled>
<Key_Value>a</Key_Value>