Compare commits
	
		
			4 Commits
		
	
	
		
			d26155061d
			...
			7550d1907b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 7550d1907b | |||
| debececcfd | |||
| 72a307654f | |||
| f755095523 | 
| @@ -17,9 +17,7 @@ typedef union { | |||||||
|         uint8_t byte2; |         uint8_t byte2; | ||||||
|         uint8_t byte3; |         uint8_t byte3; | ||||||
|     } separate; |     } separate; | ||||||
|     struct { |     uint32_t full; | ||||||
|         uint32_t bytes; |  | ||||||
|     } full; |  | ||||||
| } BYTES_4; | } BYTES_4; | ||||||
|  |  | ||||||
| void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | ||||||
| @@ -30,66 +28,111 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|          *********************/ |          *********************/ | ||||||
|         case 0: |         case 0: | ||||||
|             if(idMsg == 0x0) { // CONTROL_SETUP |             if(idMsg == 0x0) { // CONTROL_SETUP | ||||||
|                 //  steeringMode    -   -   controlAliveTime |                 //  steeringMode    eraseMemory -   controlAliveTime | ||||||
|                 BYTES_4 tmpData; |                 BYTES_4 tmpData; | ||||||
|                 tmpData.full.bytes = data; |                 tmpData.full = data; | ||||||
|                 CAR_CST.CONTROL_STEERING_MODE = tmpData.separate.byte0; |                 if (tmpData.separate.byte1) { | ||||||
|                 CAR_CST.CONTROL_ALIVE_TIME = tmpData.separate.byte3; |                     MEM_reset(); | ||||||
|                 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); |                 KART_CST.CONTROL_STEERING_MODE = tmpData.separate.byte0; | ||||||
|                 ALIVE_setAliveTime(ALcontroller(), CAR_CST.CONTROL_ALIVE_TIME); |                 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 |             if(idMsg == 0x1) { // CONTROL_SPEED_FACTOR | ||||||
|                 //  valHH   valH    valL    valLL |                 //  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 |             if(idMsg == 0x2) { // CONTROL_POWER_FACTOR | ||||||
|                 //  valHH   valH    valL    valLL |                 //  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 |             if(idMsg == 0x3) { // CONTROL_STEERING_FACTOR | ||||||
|                 //  valHH   valH    valL    valLL |                 //  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 |             if(idMsg == 0x4) { // CONTROL_SECURITY_PARAM | ||||||
|                 //  maxSpeedFw  maxSpeedBw  -   - |                 //  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 |             if(idMsg == 0x5) { // CONTROL_SETUP_PARAM | ||||||
|                 //  displayAliveTime    steeringAliveTime   -   - |                 //  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 |             if(idMsg == 0x6) { // CONTROL_SETUP_PARAM_JOY | ||||||
|                 //  joystickMode    joystickParam1  joystickParam2  joystickAliveTime |                 //  joystickMode    joystickParam1  joystickParam2  joystickAliveTime | ||||||
|                 BYTES_4 tmpData; |                 BYTES_4 tmpData; | ||||||
|                 tmpData.full.bytes = data; |                 tmpData.full = data; | ||||||
|                 CAR_CST.JOYSTICK_MODE = tmpData.separate.byte0; |                 KART_CST.JOYSTICK_MODE = tmpData.separate.byte0; | ||||||
|                 CAR_CST.JOYSTICK_PARAM1 = tmpData.separate.byte1; |                 KART_CST.JOYSTICK_PARAM1 = tmpData.separate.byte1; | ||||||
|                 CAR_CST.JOYSTICK_PARAM2 = tmpData.separate.byte2; |                 KART_CST.JOYSTICK_PARAM2 = tmpData.separate.byte2; | ||||||
|                 CAR_CST.JOYSTICK_ALIVE_TIME = tmpData.separate.byte3; |                 KART_CST.JOYSTICK_ALIVE_TIME = tmpData.separate.byte3; | ||||||
|                 MEM_write_1_byte(MEMADD_JOYSTICK_MODE, CAR_CST.JOYSTICK_MODE); |                 MEM_write_1_byte(MEMADD_JOYSTICK_MODE, KART_CST.JOYSTICK_MODE); | ||||||
|                 MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, CAR_CST.JOYSTICK_PARAM1); |                 MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, KART_CST.JOYSTICK_PARAM1); | ||||||
|                 MEM_write_1_byte(MEMADD_JOYSTICK_PARAM2, CAR_CST.JOYSTICK_PARAM2); |                 MEM_write_1_byte(MEMADD_JOYSTICK_PARAM2, KART_CST.JOYSTICK_PARAM2); | ||||||
|                 MEM_write_1_byte(MEMADD_JOYSTICK_ALIVE_TIME, CAR_CST.JOYSTICK_ALIVE_TIME); |                 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); |                 CM_JOY_SETUP(NULL); | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|              |              | ||||||
|             if(idMsg == 0x7) { // CONTROL_SETUP_PARAM_DRIVE |             if(idMsg == 0x7) { // CONTROL_SETUP_PARAM_DRIVE | ||||||
|                 //  driveAliveTime  driveSpeedTime  driveStopTime   - |                 //  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 |             if(idMsg == 0x8) { // CONTROL_SETUP_PARAM_BATTERY | ||||||
|                 //  batteryVoltTime batteryCurrentTime  batteryEnergyTime   batteryAliveTime |                 //  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 | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|  |  | ||||||
| @@ -109,11 +152,11 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|                 //  -   -   -   - |                 //  -   -   -   - | ||||||
|                 ALIVE_ISALIVE(ALjoy()); |                 ALIVE_ISALIVE(ALjoy()); | ||||||
|                 if(ALjoy()->state == STAL_DEAD){ |                 if(ALjoy()->state == STAL_DEAD){ | ||||||
|                     CAR_CST.JOYSTICK_MODE = MEM_read_1_byte(MEMADD_JOYSTICK_MODE); |                     KART_CST.JOYSTICK_MODE = MEM_read_1_byte(MEMADD_JOYSTICK_MODE); | ||||||
|                     CAR_CST.JOYSTICK_PARAM1 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM1); |                     KART_CST.JOYSTICK_PARAM1 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM1); | ||||||
|                     CAR_CST.JOYSTICK_PARAM2 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM2); |                     KART_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_ALIVE_TIME = MEM_read_1_byte(MEMADD_JOYSTICK_ALIVE_TIME); | ||||||
|                     ALIVE_setAliveTime(ALjoy(), CAR_CST.JOYSTICK_ALIVE_TIME); |                     ALIVE_setAliveTime(ALjoy(), KART_CST.JOYSTICK_ALIVE_TIME); | ||||||
|                     ALIVE_emitBorn(ALjoy(), 0, 0); |                     ALIVE_emitBorn(ALjoy(), 0, 0); | ||||||
|                     ALIVE_emitReady(ALjoy(), 100, 0); |                     ALIVE_emitReady(ALjoy(), 100, 0); | ||||||
|                 } |                 } | ||||||
| @@ -127,6 +170,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|         case 3: |         case 3: | ||||||
|             if(idMsg == 0xF) { // DISPLAY_ALIVE |             if(idMsg == 0xF) { // DISPLAY_ALIVE | ||||||
|                 //  powerMode   -   -   - |                 //  powerMode   -   -   - | ||||||
|  |                 // TODO display say ALIVE | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| @@ -143,6 +187,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|              |              | ||||||
|             if(idMsg == 0xF) { // DRIVE_ALIVE |             if(idMsg == 0xF) { // DRIVE_ALIVE | ||||||
|                 //  statusH statusL -   - |                 //  statusH statusL -   - | ||||||
|  |                 // TODO drive say ALIVE | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| @@ -164,6 +209,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|              |              | ||||||
|             if(idMsg == 0xF) { // STEERING_ALIVE |             if(idMsg == 0xF) { // STEERING_ALIVE | ||||||
|                 //  statusH statusL -   - |                 //  statusH statusL -   - | ||||||
|  |                 // TODO steering say ALIVE with his status | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| @@ -175,6 +221,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|         case 6: |         case 6: | ||||||
|             if(idMsg == 0xF) { // BATTERY_ALIVE |             if(idMsg == 0xF) { // BATTERY_ALIVE | ||||||
|                 //  -   -	-	- |                 //  -   -	-	- | ||||||
|  |                 // TODO battery say ALIVE | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| @@ -189,46 +236,113 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
| } | } | ||||||
|  |  | ||||||
| void CM_CONTROLLER_ALIVE(void* p) { | void CM_CONTROLLER_ALIVE(void* p) { | ||||||
|  |     //  -   -   -   - | ||||||
|     CAN_Send(0x0, 0xF, 0); |     CAN_Send(0x0, 0xF, 0); | ||||||
| } | } | ||||||
|  |  | ||||||
| void CM_JOY_SETUP(void* p) { | void CM_JOY_SETUP(void* p) { | ||||||
|  |     //  mode    parm1   param2  aliveTime | ||||||
|     BYTES_4 joy; |     BYTES_4 joy; | ||||||
|     joy.separate.byte0 = CAR_CST.JOYSTICK_MODE; |     joy.separate.byte0 = KART_CST.JOYSTICK_MODE; | ||||||
|     joy.separate.byte1 = CAR_CST.JOYSTICK_PARAM1; |     joy.separate.byte1 = KART_CST.JOYSTICK_PARAM1; | ||||||
|     joy.separate.byte2 = CAR_CST.JOYSTICK_PARAM2; |     joy.separate.byte2 = KART_CST.JOYSTICK_PARAM2; | ||||||
|     joy.separate.byte3 = CAR_CST.JOYSTICK_ALIVE_TIME; |     joy.separate.byte3 = KART_CST.JOYSTICK_ALIVE_TIME; | ||||||
|     CAN_Send(2, 0, joy.full.bytes); |     CAN_Send(2, 0, joy.full);     | ||||||
|      |  | ||||||
| } | } | ||||||
| void CM_DISPLAY_SETUP(void* p) { | 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) { | 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) { | 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) { | 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) { | void CM_DRIVE_POWER(void* p) { | ||||||
|      |     //  valH    valL    -   - | ||||||
|  |     // TODO | ||||||
| } | } | ||||||
|  |  | ||||||
| void CM_STEERING_SETUP(void* p) { | 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) { | 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); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -26,17 +26,76 @@ S   R   M | |||||||
| 1	6	0	SETUP_CONTROL       batteryVoltTime batteryCurrentTime  batteryEnergyTime   aliveTime | 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); | 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); | 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); | 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); | 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); | 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); | 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_SETUP(void* p); | ||||||
|  |  | ||||||
| void CM_DRIVE_POWER(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); | 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_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 */ | #endif	/* CAN_MESSAGE_H */ | ||||||
|   | |||||||
| @@ -65,8 +65,15 @@ typedef struct { | |||||||
|     uint8_t     BATTERY_CURRENT_TIME; |     uint8_t     BATTERY_CURRENT_TIME; | ||||||
|     uint8_t     BATTERY_ENERGY_TIME; |     uint8_t     BATTERY_ENERGY_TIME; | ||||||
|     uint8_t     BATTERY_ALIVE_TIME; |     uint8_t     BATTERY_ALIVE_TIME; | ||||||
| } CAR_CST_TYPE; | } KART_CST_TYPE; | ||||||
| CAR_CST_TYPE CAR_CST; | 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 */ | #endif	/* CAR_H */ | ||||||
|   | |||||||
| @@ -63,12 +63,10 @@ void Factory_init() { | |||||||
|     CAN_setSender(1); |     CAN_setSender(1); | ||||||
|     LED_off(l1()); |     LED_off(l1()); | ||||||
|      |      | ||||||
|     // TODO init EPROM interface |  | ||||||
|     MEM_init(); |     MEM_init(); | ||||||
|      |      | ||||||
|     // TODO init watchdog with EPROM CST  |  | ||||||
|     ALIVE_init(ALcontroller()); |     ALIVE_init(ALcontroller()); | ||||||
|     ALIVE_setAliveTime(ALcontroller(), CAR_CST.CONTROL_ALIVE_TIME); |     ALIVE_setAliveTime(ALcontroller(), KART_CST.CONTROL_ALIVE_TIME); | ||||||
|      |      | ||||||
|     ALIVE_init(ALjoy()); |     ALIVE_init(ALjoy()); | ||||||
| } | } | ||||||
| @@ -81,7 +79,7 @@ void Factory_build() { | |||||||
|     ALIVE_onAlive(ALcontroller(), CM_CONTROLLER_ALIVE, NULL); |     ALIVE_onAlive(ALcontroller(), CM_CONTROLLER_ALIVE, NULL); | ||||||
|      |      | ||||||
|     ALIVE_onSetup(ALjoy(), CM_JOY_SETUP, 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_onBorn(ALjoy(), LED_on, l1()); | ||||||
|     ALIVE_onDead(ALjoy(), LED_off, l1()); |     ALIVE_onDead(ALjoy(), LED_off, l1()); | ||||||
|      |      | ||||||
|   | |||||||
| @@ -198,7 +198,6 @@ uint8_t DATAEE_ReadByte(uint16_t bAdd) | |||||||
|  |  | ||||||
| void MEMORY_Tasks( void ) | void MEMORY_Tasks( void ) | ||||||
| { | { | ||||||
|     /* TODO : Add interrupt handling code */ |  | ||||||
|     PIR0bits.NVMIF = 0; |     PIR0bits.NVMIF = 0; | ||||||
| } | } | ||||||
| /** | /** | ||||||
|   | |||||||
| @@ -22,89 +22,93 @@ typedef union { | |||||||
| void MEM_init(){ | void MEM_init(){ | ||||||
|     uint8_t check = MEM_read_1_byte(0x0); |     uint8_t check = MEM_read_1_byte(0x0); | ||||||
|     if(check != 0x42){ |     if(check != 0x42){ | ||||||
|         CAR_CST.CONTROL_STEERING_MODE   =   0; |         KART_CST.CONTROL_STEERING_MODE   =   0; | ||||||
|         CAR_CST.CONTROL_ALIVE_TIME      =   50; |         KART_CST.CONTROL_ALIVE_TIME      =   50; | ||||||
|         CAR_CST.CONTROL_SPEED_FACTOR    =   0; |         KART_CST.CONTROL_SPEED_FACTOR    =   0; | ||||||
|         CAR_CST.CONTROL_POWER_FACTOR    =   0; |         KART_CST.CONTROL_POWER_FACTOR    =   0; | ||||||
|         CAR_CST.CONTROL_STEERING_FACTOR =   0; |         KART_CST.CONTROL_STEERING_FACTOR =   0; | ||||||
|         CAR_CST.CONTROL_MAX_SPEED_FW    =   0; |         KART_CST.CONTROL_MAX_SPEED_FW    =   0; | ||||||
|         CAR_CST.CONTROL_MAX_SPEED_BW    =   0; |         KART_CST.CONTROL_MAX_SPEED_BW    =   0; | ||||||
|          |          | ||||||
|         CAR_CST.JOYSTICK_MODE           =   0; |         KART_CST.JOYSTICK_MODE           =   0; | ||||||
|         CAR_CST.JOYSTICK_PARAM1         =   100; |         KART_CST.JOYSTICK_PARAM1         =   5; | ||||||
|         CAR_CST.JOYSTICK_PARAM2         =   1; |         KART_CST.JOYSTICK_PARAM2         =   1; | ||||||
|         CAR_CST.JOYSTICK_ALIVE_TIME     =   10; |         KART_CST.JOYSTICK_ALIVE_TIME     =   25; | ||||||
|          |          | ||||||
|         CAR_CST.DISPLAY_ALIVE_TIME      =   50; |         KART_CST.DISPLAY_ALIVE_TIME      =   100; | ||||||
|          |          | ||||||
|         CAR_CST.DRIVE_SPEED_TIME        =   0; |         KART_CST.DRIVE_SPEED_TIME        =   0; | ||||||
|         CAR_CST.DRIVE_STOP_TIME         =   0; |         KART_CST.DRIVE_STOP_TIME         =   0; | ||||||
|         CAR_CST.DRIVE_ALIVE_TIME        =   10; |         KART_CST.DRIVE_ALIVE_TIME        =   10; | ||||||
|          |          | ||||||
|         CAR_CST.STEERING_ALIVE_TIME     =  100; |         KART_CST.STEERING_ALIVE_TIME     =  100; | ||||||
|          |          | ||||||
|         CAR_CST.BATTERY_VOLT_TIME       =   50; |         KART_CST.BATTERY_VOLT_TIME       =   50; | ||||||
|         CAR_CST.BATTERY_CURRENT_TIME    =   50; |         KART_CST.BATTERY_CURRENT_TIME    =   50; | ||||||
|         CAR_CST.BATTERY_ENERGY_TIME     =   50; |         KART_CST.BATTERY_ENERGY_TIME     =   50; | ||||||
|         CAR_CST.BATTERY_ALIVE_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_STEERING_MODE, KART_CST.CONTROL_STEERING_MODE); | ||||||
|         MEM_write_1_byte(MEMADD_CONTROL_ALIVE_TIME, CAR_CST.CONTROL_ALIVE_TIME); |         MEM_write_1_byte(MEMADD_CONTROL_ALIVE_TIME, KART_CST.CONTROL_ALIVE_TIME); | ||||||
|         MEM_write_4_byte(MEMADD_CONTROL_SPEED_FACTOR, CAR_CST.CONTROL_SPEED_FACTOR); |         MEM_write_4_byte(MEMADD_CONTROL_SPEED_FACTOR, KART_CST.CONTROL_SPEED_FACTOR); | ||||||
|         MEM_write_4_byte(MEMADD_CONTROL_POWER_FACTOR, CAR_CST.CONTROL_POWER_FACTOR); |         MEM_write_4_byte(MEMADD_CONTROL_POWER_FACTOR, KART_CST.CONTROL_POWER_FACTOR); | ||||||
|         MEM_write_4_byte(MEMADD_CONTROL_STEERING_FACTOR, CAR_CST.CONTROL_STEERING_FACTOR); |         MEM_write_4_byte(MEMADD_CONTROL_STEERING_FACTOR, KART_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_FW, KART_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_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_MODE, KART_CST.JOYSTICK_MODE); | ||||||
|         MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, CAR_CST.JOYSTICK_PARAM1); |         MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, KART_CST.JOYSTICK_PARAM1); | ||||||
|         MEM_write_1_byte(MEMADD_JOYSTICK_PARAM2, CAR_CST.JOYSTICK_PARAM2); |         MEM_write_1_byte(MEMADD_JOYSTICK_PARAM2, KART_CST.JOYSTICK_PARAM2); | ||||||
|         MEM_write_1_byte(MEMADD_JOYSTICK_ALIVE_TIME, CAR_CST.JOYSTICK_ALIVE_TIME); |         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_SPEED_TIME, KART_CST.DRIVE_SPEED_TIME); | ||||||
|         MEM_write_1_byte(MEMADD_DRIVE_STOP_TIME, CAR_CST.DRIVE_STOP_TIME); |         MEM_write_1_byte(MEMADD_DRIVE_STOP_TIME, KART_CST.DRIVE_STOP_TIME); | ||||||
|         MEM_write_1_byte(MEMADD_DRIVE_ALIVE_TIME, CAR_CST.DRIVE_ALIVE_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_VOLT_TIME, KART_CST.BATTERY_VOLT_TIME); | ||||||
|         MEM_write_1_byte(MEMADD_BATTERY_CURRENT_TIME, CAR_CST.BATTERY_CURRENT_TIME); |         MEM_write_1_byte(MEMADD_BATTERY_CURRENT_TIME, KART_CST.BATTERY_CURRENT_TIME); | ||||||
|         MEM_write_1_byte(MEMADD_BATTERY_ENERGY_TIME, CAR_CST.BATTERY_ENERGY_TIME); |         MEM_write_1_byte(MEMADD_BATTERY_ENERGY_TIME, KART_CST.BATTERY_ENERGY_TIME); | ||||||
|         MEM_write_1_byte(MEMADD_BATTERY_ALIVE_TIME, CAR_CST.BATTERY_ALIVE_TIME); |         MEM_write_1_byte(MEMADD_BATTERY_ALIVE_TIME, KART_CST.BATTERY_ALIVE_TIME); | ||||||
|          |          | ||||||
|         MEM_write_1_byte(0x0, 0x42); |         MEM_write_1_byte(0x0, 0x42); | ||||||
|     } else { |     } else { | ||||||
|         CAR_CST.CONTROL_STEERING_MODE = MEM_read_1_byte(MEMADD_CONTROL_STEERING_MODE); |         KART_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); |         KART_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); |         KART_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); |         KART_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); |         KART_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); |         KART_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_MAX_SPEED_BW = MEM_read_1_byte(MEMADD_CONTROL_MAX_SPEED_BW); | ||||||
|          |          | ||||||
|         CAR_CST.JOYSTICK_MODE = MEM_read_1_byte(MEMADD_JOYSTICK_MODE); |         KART_CST.JOYSTICK_MODE = MEM_read_1_byte(MEMADD_JOYSTICK_MODE); | ||||||
|         CAR_CST.JOYSTICK_PARAM1 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM1); |         KART_CST.JOYSTICK_PARAM1 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM1); | ||||||
|         CAR_CST.JOYSTICK_PARAM2 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM2); |         KART_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_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); |         KART_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); |         KART_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_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); |         KART_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); |         KART_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); |         KART_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_ALIVE_TIME = MEM_read_1_byte(MEMADD_BATTERY_ALIVE_TIME); | ||||||
|          |          | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void MEM_reset() { | ||||||
|  |     MEM_write_1_byte(0x0, 0x0); | ||||||
|  | } | ||||||
|  |  | ||||||
| void MEM_write_1_byte(uint8_t address, uint8_t data) { | void MEM_write_1_byte(uint8_t address, uint8_t data) { | ||||||
|     DATAEE_WriteByte(address, data); |     DATAEE_WriteByte(address, data); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -12,6 +12,7 @@ | |||||||
| #include "../mcc_generated_files/mcc.h" | #include "../mcc_generated_files/mcc.h" | ||||||
|  |  | ||||||
| void MEM_init(); | void MEM_init(); | ||||||
|  | void MEM_reset(); | ||||||
| void MEM_write_1_byte(uint8_t address, uint8_t data); | void MEM_write_1_byte(uint8_t address, uint8_t data); | ||||||
| void MEM_write_4_byte(uint8_t address, uint32_t data); | void MEM_write_4_byte(uint8_t address, uint32_t data); | ||||||
| uint8_t MEM_read_1_byte(uint8_t address); | uint8_t MEM_read_1_byte(uint8_t address); | ||||||
|   | |||||||
| @@ -214,7 +214,6 @@ | |||||||
|         <property key="debugoptions.debug-startup" value="Use system settings"/> |         <property key="debugoptions.debug-startup" value="Use system settings"/> | ||||||
|         <property key="debugoptions.reset-behaviour" value="Use system settings"/> |         <property key="debugoptions.reset-behaviour" value="Use system settings"/> | ||||||
|         <property key="debugoptions.useswbreakpoints" value="false"/> |         <property key="debugoptions.useswbreakpoints" value="false"/> | ||||||
|         <property key="firmware.download.all" value="false"/> |  | ||||||
|         <property key="hwtoolclock.frcindebug" value="false"/> |         <property key="hwtoolclock.frcindebug" value="false"/> | ||||||
|         <property key="memories.aux" value="false"/> |         <property key="memories.aux" value="false"/> | ||||||
|         <property key="memories.bootflash" value="true"/> |         <property key="memories.bootflash" value="true"/> | ||||||
| @@ -237,7 +236,7 @@ | |||||||
|         <property key="programoptions.preservedataflash" value="false"/> |         <property key="programoptions.preservedataflash" value="false"/> | ||||||
|         <property key="programoptions.preservedataflash.ranges" |         <property key="programoptions.preservedataflash.ranges" | ||||||
|                   value="${programoptions.preservedataflash.ranges}"/> |                   value="${programoptions.preservedataflash.ranges}"/> | ||||||
|         <property key="programoptions.preserveeeprom" value="false"/> |         <property key="programoptions.preserveeeprom" value="true"/> | ||||||
|         <property key="programoptions.preserveeeprom.ranges" value="310000-3103ff"/> |         <property key="programoptions.preserveeeprom.ranges" value="310000-3103ff"/> | ||||||
|         <property key="programoptions.preserveprogram.ranges" value=""/> |         <property key="programoptions.preserveprogram.ranges" value=""/> | ||||||
|         <property key="programoptions.preserveprogramrange" value="false"/> |         <property key="programoptions.preserveprogramrange" value="false"/> | ||||||
| @@ -776,7 +775,7 @@ | |||||||
|         <property key="programoptions.preservedataflash" value="false"/> |         <property key="programoptions.preservedataflash" value="false"/> | ||||||
|         <property key="programoptions.preservedataflash.ranges" |         <property key="programoptions.preservedataflash.ranges" | ||||||
|                   value="${programoptions.preservedataflash.ranges}"/> |                   value="${programoptions.preservedataflash.ranges}"/> | ||||||
|         <property key="programoptions.preserveeeprom" value="false"/> |         <property key="programoptions.preserveeeprom" value="true"/> | ||||||
|         <property key="programoptions.preserveeeprom.ranges" value="310000-3103ff"/> |         <property key="programoptions.preserveeeprom.ranges" value="310000-3103ff"/> | ||||||
|         <property key="programoptions.preserveprogram.ranges" value=""/> |         <property key="programoptions.preserveprogram.ranges" value=""/> | ||||||
|         <property key="programoptions.preserveprogramrange" value="false"/> |         <property key="programoptions.preserveprogramrange" value="false"/> | ||||||
|   | |||||||
| @@ -8,8 +8,8 @@ | |||||||
|     <IsLogFilterEnabled>FALSE</IsLogFilterEnabled> |     <IsLogFilterEnabled>FALSE</IsLogFilterEnabled> | ||||||
|     <IsLogFilterLINEnabled>FALSE</IsLogFilterLINEnabled> |     <IsLogFilterLINEnabled>FALSE</IsLogFilterLINEnabled> | ||||||
|     <IsLoggingEnabled>FALSE</IsLoggingEnabled> |     <IsLoggingEnabled>FALSE</IsLoggingEnabled> | ||||||
|     <IsMsgIntepretationEnabled>FALSE</IsMsgIntepretationEnabled> |     <IsMsgIntepretationEnabled>TRUE</IsMsgIntepretationEnabled> | ||||||
|     <IsOverWriteEnabled>TRUE</IsOverWriteEnabled> |     <IsOverWriteEnabled>FALSE</IsOverWriteEnabled> | ||||||
|     <DisplayTimeMode>SYSTEM</DisplayTimeMode> |     <DisplayTimeMode>SYSTEM</DisplayTimeMode> | ||||||
|     <DisplayNumericMode>FALSE</DisplayNumericMode> |     <DisplayNumericMode>FALSE</DisplayNumericMode> | ||||||
|     <LogOnConnect_CAN>FALSE</LogOnConnect_CAN> |     <LogOnConnect_CAN>FALSE</LogOnConnect_CAN> | ||||||
| @@ -17,7 +17,7 @@ | |||||||
|     <LogOnConnect_LIN>FALSE</LogOnConnect_LIN> |     <LogOnConnect_LIN>FALSE</LogOnConnect_LIN> | ||||||
|     <Window_Position> |     <Window_Position> | ||||||
|       <Visibility>SHOWNORMAL</Visibility> |       <Visibility>SHOWNORMAL</Visibility> | ||||||
|       <WindowPlacement>HIDE</WindowPlacement> |       <WindowPlacement>SHOWNORMAL</WindowPlacement> | ||||||
|       <Top>655</Top> |       <Top>655</Top> | ||||||
|       <Left>0</Left> |       <Left>0</Left> | ||||||
|       <Bottom>874</Bottom> |       <Bottom>874</Bottom> | ||||||
| @@ -28,6 +28,44 @@ | |||||||
|     <CAN_Database_Files> |     <CAN_Database_Files> | ||||||
|       <FilePath>threewheeler.DBF</FilePath> |       <FilePath>threewheeler.DBF</FilePath> | ||||||
|     </CAN_Database_Files> |     </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/> |     <J1939_Database_Files/> | ||||||
|     <CAN_DIL_Section> |     <CAN_DIL_Section> | ||||||
|       <DriverName>MHS Tiny-CAN</DriverName> |       <DriverName>MHS Tiny-CAN</DriverName> | ||||||
| @@ -85,27 +123,305 @@ | |||||||
|         </Channel> |         </Channel> | ||||||
|       </ControllerSettings> |       </ControllerSettings> | ||||||
|     </CAN_DIL_Section> |     </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> |     <CAN_Signal_Watch> | ||||||
|       <Message> |       <Message> | ||||||
|         <Id>288</Id> |         <Id>337</Id> | ||||||
|         <Signal>DeltaY</Signal> |         <Signal>SteeringPosition</Signal> | ||||||
|         <Signal>aliveTime</Signal> |       </Message> | ||||||
|         <Signal>timeMeasureOrDeltaX</Signal> |       <Message> | ||||||
|         <Signal>mode</Signal> |         <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> |       </Message> | ||||||
|       <Window_Position> |       <Window_Position> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>HIDE</WindowPlacement> |         <WindowPlacement>HIDE</WindowPlacement> | ||||||
|         <Top>622</Top> |         <Top>157</Top> | ||||||
|         <Left>86</Left> |         <Left>596</Left> | ||||||
|         <Right>816</Right> |         <Right>1086</Right> | ||||||
|         <Bottom>998</Bottom> |         <Bottom>387</Bottom> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <COLUMN_WIDTH> |       <COLUMN_WIDTH> | ||||||
|         <MESSAGE_COLUMN>142</MESSAGE_COLUMN> |         <MESSAGE_COLUMN>94</MESSAGE_COLUMN> | ||||||
|         <Raw_Val_Column>174</Raw_Val_Column> |         <Raw_Val_Column>178</Raw_Val_Column> | ||||||
|         <Physical_Val_Column>285</Physical_Val_Column> |         <Physical_Val_Column>189</Physical_Val_Column> | ||||||
|         <Signal_Column>142</Signal_Column> |         <Signal_Column>94</Signal_Column> | ||||||
|       </COLUMN_WIDTH> |       </COLUMN_WIDTH> | ||||||
|     </CAN_Signal_Watch> |     </CAN_Signal_Watch> | ||||||
|     <J1939_Signal_Watch> |     <J1939_Signal_Watch> | ||||||
| @@ -192,12 +508,12 @@ | |||||||
|     </LIN_Log> |     </LIN_Log> | ||||||
|     <CAN_Simulated_Systems> |     <CAN_Simulated_Systems> | ||||||
|       <Window_Position> |       <Window_Position> | ||||||
|         <Visibility>HIDE</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> | ||||||
|         <Top>0</Top> |         <Top>0</Top> | ||||||
|         <Left>0</Left> |         <Left>0</Left> | ||||||
|         <Bottom>0</Bottom> |         <Bottom>577</Bottom> | ||||||
|         <Right>0</Right> |         <Right>423</Right> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|     </CAN_Simulated_Systems> |     </CAN_Simulated_Systems> | ||||||
|     <J1939_Simulated_Systems> |     <J1939_Simulated_Systems> | ||||||
| @@ -212,9 +528,11 @@ | |||||||
|     </J1939_Simulated_Systems> |     </J1939_Simulated_Systems> | ||||||
|     <CAN_Replay/> |     <CAN_Replay/> | ||||||
|     <CAN_Message_Window> |     <CAN_Message_Window> | ||||||
|       <Append_Buffer_Size>5000</Append_Buffer_Size> |       <Append_Buffer_Size>2025155376</Append_Buffer_Size> | ||||||
|       <Overwrite_Buffer_Size>2000</Overwrite_Buffer_Size> |       <Overwrite_Buffer_Size>24800128</Overwrite_Buffer_Size> | ||||||
|       <Display_Update_Time>100</Display_Update_Time> |       <Display_Update_Time>2025155348</Display_Update_Time> | ||||||
|  |       <Filter IsEnabled="0">notAlive</Filter> | ||||||
|  |       <Filter IsEnabled="0">steering</Filter> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID/> |         <ID/> | ||||||
|         <Order>1</Order> |         <Order>1</Order> | ||||||
| @@ -223,27 +541,27 @@ | |||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>Time</ID> |         <ID>Time</ID> | ||||||
|         <Order>2</Order> |         <Order>5</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>138</Width> |         <Width>129</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>Tx/Rx</ID> |         <ID>Tx/Rx</ID> | ||||||
|         <Order>3</Order> |         <Order>4</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>85</Width> |         <Width>53</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>Channel</ID> |         <ID>Channel</ID> | ||||||
|         <Order>4</Order> |         <Order>2</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>0</IsVisible> | ||||||
|         <Width>92</Width> |         <Width>0</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>Msg Type</ID> |         <ID>Msg Type</ID> | ||||||
|         <Order>5</Order> |         <Order>3</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>0</IsVisible> | ||||||
|         <Width>71</Width> |         <Width>0</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>ID</ID> |         <ID>ID</ID> | ||||||
| @@ -255,22 +573,22 @@ | |||||||
|         <ID>Message</ID> |         <ID>Message</ID> | ||||||
|         <Order>7</Order> |         <Order>7</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>174</Width> |         <Width>143</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>DLC</ID> |         <ID>DLC</ID> | ||||||
|         <Order>8</Order> |         <Order>8</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>75</Width> |         <Width>38</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>Data Byte(s)</ID> |         <ID>Data Byte(s)</ID> | ||||||
|         <Order>9</Order> |         <Order>9</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>198</Width> |         <Width>158</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <IsHex>1</IsHex> |       <IsHex>1</IsHex> | ||||||
|       <IsAppend>0</IsAppend> |       <IsAppend>1</IsAppend> | ||||||
|       <IsInterpret>0</IsInterpret> |       <IsInterpret>0</IsInterpret> | ||||||
|       <Time_Mode>SYSTEM</Time_Mode> |       <Time_Mode>SYSTEM</Time_Mode> | ||||||
|       <Window_Position> |       <Window_Position> | ||||||
| @@ -278,16 +596,16 @@ | |||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> | ||||||
|         <Top>0</Top> |         <Top>0</Top> | ||||||
|         <Left>0</Left> |         <Left>0</Left> | ||||||
|         <Bottom>295</Bottom> |         <Bottom>810</Bottom> | ||||||
|         <Right>909</Right> |         <Right>606</Right> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <Interpretation_Window_Position> |       <Interpretation_Window_Position> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> | ||||||
|         <Top>271</Top> |         <Top>173</Top> | ||||||
|         <Left>879</Left> |         <Left>10</Left> | ||||||
|         <Bottom>958</Bottom> |         <Bottom>451</Bottom> | ||||||
|         <Right>1552</Right> |         <Right>359</Right> | ||||||
|       </Interpretation_Window_Position> |       </Interpretation_Window_Position> | ||||||
|     </CAN_Message_Window> |     </CAN_Message_Window> | ||||||
|     <J1939_Message_Window> |     <J1939_Message_Window> | ||||||
| @@ -378,15 +696,15 @@ | |||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> | ||||||
|         <Top>0</Top> |         <Top>0</Top> | ||||||
|         <Left>0</Left> |         <Left>0</Left> | ||||||
|         <Bottom>543</Bottom> |         <Bottom>549</Bottom> | ||||||
|         <Right>1614</Right> |         <Right>1614</Right> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <Interpretation_Window_Position> |       <Interpretation_Window_Position> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> | ||||||
|         <Top>179</Top> |         <Top>173</Top> | ||||||
|         <Left>10</Left> |         <Left>10</Left> | ||||||
|         <Bottom>457</Bottom> |         <Bottom>451</Bottom> | ||||||
|         <Right>359</Right> |         <Right>359</Right> | ||||||
|       </Interpretation_Window_Position> |       </Interpretation_Window_Position> | ||||||
|     </J1939_Message_Window> |     </J1939_Message_Window> | ||||||
| @@ -463,15 +781,15 @@ | |||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> | ||||||
|         <Top>0</Top> |         <Top>0</Top> | ||||||
|         <Left>0</Left> |         <Left>0</Left> | ||||||
|         <Bottom>543</Bottom> |         <Bottom>549</Bottom> | ||||||
|         <Right>1614</Right> |         <Right>1614</Right> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <Interpretation_Window_Position> |       <Interpretation_Window_Position> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> | ||||||
|         <Top>179</Top> |         <Top>173</Top> | ||||||
|         <Left>10</Left> |         <Left>10</Left> | ||||||
|         <Bottom>457</Bottom> |         <Bottom>451</Bottom> | ||||||
|         <Right>359</Right> |         <Right>359</Right> | ||||||
|       </Interpretation_Window_Position> |       </Interpretation_Window_Position> | ||||||
|     </LIN_Message_Window> |     </LIN_Message_Window> | ||||||
| @@ -479,19 +797,19 @@ | |||||||
|       <Window_Position> |       <Window_Position> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>SETMINPOSITION</WindowPlacement> |         <WindowPlacement>SETMINPOSITION</WindowPlacement> | ||||||
|         <Top>12</Top> |         <Top>3</Top> | ||||||
|         <Left>989</Left> |         <Left>1055</Left> | ||||||
|         <Bottom>667</Bottom> |         <Bottom>658</Bottom> | ||||||
|         <Right>1849</Right> |         <Right>1915</Right> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <Message_List> |       <Message_List> | ||||||
|         <Message> |         <Message> | ||||||
|           <Channel>1</Channel> |           <Channel>1</Channel> | ||||||
|           <Message_ID>528</Message_ID> |           <Message_ID>22</Message_ID> | ||||||
|           <IsExtended>FALSE</IsExtended> |           <IsExtended>FALSE</IsExtended> | ||||||
|           <IsRtr>FALSE</IsRtr> |           <IsRtr>FALSE</IsRtr> | ||||||
|           <DLC>4</DLC> |           <DLC>4</DLC> | ||||||
|           <DataBytes>0,0,0,0</DataBytes> |           <DataBytes>0,5,1,25</DataBytes> | ||||||
|           <Repetion>10</Repetion> |           <Repetion>10</Repetion> | ||||||
|           <Repetition_Enabled>FALSE</Repetition_Enabled> |           <Repetition_Enabled>FALSE</Repetition_Enabled> | ||||||
|           <Key_Value>a</Key_Value> |           <Key_Value>a</Key_Value> | ||||||
| @@ -499,11 +817,11 @@ | |||||||
|         </Message> |         </Message> | ||||||
|         <Message> |         <Message> | ||||||
|           <Channel>1</Channel> |           <Channel>1</Channel> | ||||||
|           <Message_ID>529</Message_ID> |           <Message_ID>16</Message_ID> | ||||||
|           <IsExtended>FALSE</IsExtended> |           <IsExtended>FALSE</IsExtended> | ||||||
|           <IsRtr>FALSE</IsRtr> |           <IsRtr>FALSE</IsRtr> | ||||||
|           <DLC>4</DLC> |           <DLC>4</DLC> | ||||||
|           <DataBytes>0,0,0,0</DataBytes> |           <DataBytes>0,0,0,50</DataBytes> | ||||||
|           <Repetion>10</Repetion> |           <Repetion>10</Repetion> | ||||||
|           <Repetition_Enabled>FALSE</Repetition_Enabled> |           <Repetition_Enabled>FALSE</Repetition_Enabled> | ||||||
|           <Key_Value>a</Key_Value> |           <Key_Value>a</Key_Value> | ||||||
| @@ -511,11 +829,11 @@ | |||||||
|         </Message> |         </Message> | ||||||
|         <Message> |         <Message> | ||||||
|           <Channel>1</Channel> |           <Channel>1</Channel> | ||||||
|           <Message_ID>288</Message_ID> |           <Message_ID>306</Message_ID> | ||||||
|           <IsExtended>FALSE</IsExtended> |           <IsExtended>FALSE</IsExtended> | ||||||
|           <IsRtr>FALSE</IsRtr> |           <IsRtr>FALSE</IsRtr> | ||||||
|           <DLC>4</DLC> |           <DLC>2</DLC> | ||||||
|           <DataBytes>0,255,1,5</DataBytes> |           <DataBytes>0,100</DataBytes> | ||||||
|           <Repetion>10</Repetion> |           <Repetion>10</Repetion> | ||||||
|           <Repetition_Enabled>FALSE</Repetition_Enabled> |           <Repetition_Enabled>FALSE</Repetition_Enabled> | ||||||
|           <Key_Value>a</Key_Value> |           <Key_Value>a</Key_Value> | ||||||
| @@ -523,11 +841,35 @@ | |||||||
|         </Message> |         </Message> | ||||||
|         <Message> |         <Message> | ||||||
|           <Channel>1</Channel> |           <Channel>1</Channel> | ||||||
|           <Message_ID>543</Message_ID> |           <Message_ID>336</Message_ID> | ||||||
|           <IsExtended>FALSE</IsExtended> |           <IsExtended>FALSE</IsExtended> | ||||||
|           <IsRtr>FALSE</IsRtr> |           <IsRtr>FALSE</IsRtr> | ||||||
|           <DLC>1</DLC> |           <DLC>4</DLC> | ||||||
|           <DataBytes>0</DataBytes> |           <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> |           <Repetion>10</Repetion> | ||||||
|           <Repetition_Enabled>FALSE</Repetition_Enabled> |           <Repetition_Enabled>FALSE</Repetition_Enabled> | ||||||
|           <Key_Value>a</Key_Value> |           <Key_Value>a</Key_Value> | ||||||
|   | |||||||
| @@ -38,10 +38,11 @@ | |||||||
| [VALUE_DESCRIPTION] RACE,2 | [VALUE_DESCRIPTION] RACE,2 | ||||||
| [END_MSG] | [END_MSG] | ||||||
|  |  | ||||||
| [START_MSG] CONTROL_SETUP,16,4,2,1,S | [START_MSG] CONTROL_SETUP,16,4,3,1,S | ||||||
| [START_SIGNALS] AliveTime,8,4,0,U,255,0,1,0.000000,10.000000,mS, | [START_SIGNALS] AliveTime,8,4,0,U,255,0,1,0.000000,10.000000,mS, | ||||||
| [VALUE_DESCRIPTION] No alive message,0 | [VALUE_DESCRIPTION] No alive message,0 | ||||||
| [START_SIGNALS] STEERING_MODE,1,1,0,B,1,0,1,0.000000,1.000000,, | [START_SIGNALS] STEERING_MODE,1,1,0,B,1,0,1,0.000000,1.000000,, | ||||||
|  | [START_SIGNALS] ERASE_MEMORY,1,2,0,B,1,0,1,0.000000,1.000000,, | ||||||
| [END_MSG] | [END_MSG] | ||||||
|  |  | ||||||
| [START_MSG] CONTROL_SPEED_FACTOR,17,4,1,1,S | [START_MSG] CONTROL_SPEED_FACTOR,17,4,1,1,S | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user