Compare commits
	
		
			22 Commits
		
	
	
		
			7550d1907b
			...
			57b19e59d9
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 57b19e59d9 | |||
| 1ad382063c | |||
| 59dcf4e47c | |||
| 33dc145a80 | |||
| 9b304aec93 | |||
| 863977e20f | |||
| 4750463f7b | |||
| 397b77ab5a | |||
| b6bb8fca91 | |||
| 1ea26b2a6c | |||
| ae9252cccb | |||
| d94fcb927d | |||
| 26ea7d0870 | |||
| 296575a4b9 | |||
| b52b773633 | |||
| a20667399b | |||
| 2ece901b08 | |||
| 7aab0ef049 | |||
| b95b6619e3 | |||
| d31544783c | |||
| dc6e4ec65a | |||
| 00130b03ee | 
							
								
								
									
										1
									
								
								306-controller_interface.X/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								306-controller_interface.X/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -7,7 +7,6 @@ debug/ | |||||||
| dist/ | dist/ | ||||||
| disassembly/ | disassembly/ | ||||||
| nbproject/private/ | nbproject/private/ | ||||||
| nbproject/*.mk |  | ||||||
| nbproject/*.bash | nbproject/*.bash | ||||||
| nbproject/Makefile-genesis.properties | nbproject/Makefile-genesis.properties | ||||||
|  |  | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ | |||||||
| #include "car.h" | #include "car.h" | ||||||
| #include "../app/factory/factory.h" | #include "../app/factory/factory.h" | ||||||
| #include "../middleware/can_interface.h" | #include "../middleware/can_interface.h" | ||||||
|  | #include "kartculator.h" | ||||||
|  |  | ||||||
| typedef union { | typedef union { | ||||||
|     struct { |     struct { | ||||||
| @@ -20,7 +21,23 @@ typedef union { | |||||||
|     uint32_t full; |     uint32_t full; | ||||||
| } BYTES_4; | } BYTES_4; | ||||||
|  |  | ||||||
|  | typedef union { | ||||||
|  |     struct { | ||||||
|  |         uint8_t byte0; | ||||||
|  |         uint8_t byte1; | ||||||
|  |     } separate; | ||||||
|  |     uint16_t full; | ||||||
|  | } BYTES_2; | ||||||
|  |  | ||||||
| void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | ||||||
|  |     BYTES_4 incomeData; | ||||||
|  |     incomeData.full = data; | ||||||
|  |     BYTES_4 revertData; | ||||||
|  |     revertData.separate.byte0 = incomeData.separate.byte3; | ||||||
|  |     revertData.separate.byte1 = incomeData.separate.byte2; | ||||||
|  |     revertData.separate.byte2 = incomeData.separate.byte1; | ||||||
|  |     revertData.separate.byte3 = incomeData.separate.byte0; | ||||||
|  |      | ||||||
|     switch(idSender){ |     switch(idSender){ | ||||||
|          |          | ||||||
|         /********************* |         /********************* | ||||||
| @@ -29,16 +46,15 @@ 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    eraseMemory -   controlAliveTime |                 //  steeringMode    eraseMemory -   controlAliveTime | ||||||
|                 BYTES_4 tmpData; |                 if (incomeData.separate.byte1) { | ||||||
|                 tmpData.full = data; |  | ||||||
|                 if (tmpData.separate.byte1) { |  | ||||||
|                     MEM_reset(); |                     MEM_reset(); | ||||||
|                 } |                 } | ||||||
|                 KART_CST.CONTROL_STEERING_MODE = tmpData.separate.byte0; |                 KART_CST.CONTROL_STEERING_MODE = incomeData.separate.byte0; | ||||||
|                 KART_CST.CONTROL_ALIVE_TIME = tmpData.separate.byte3; |                 KART_CST.CONTROL_ALIVE_TIME = incomeData.separate.byte3; | ||||||
|                 MEM_write_1_byte(MEMADD_CONTROL_STEERING_MODE, KART_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, KART_CST.CONTROL_ALIVE_TIME); |                 MEM_write_1_byte(MEMADD_CONTROL_ALIVE_TIME, KART_CST.CONTROL_ALIVE_TIME); | ||||||
|                 ALIVE_setAliveTime(ALcontroller(), KART_CST.CONTROL_ALIVE_TIME); |                 ALIVE_setAliveTime(ALcontroller(), KART_CST.CONTROL_ALIVE_TIME); | ||||||
|  |                 ALIVE_emitStart(ALcontroller(), 0, 0); | ||||||
|             } |             } | ||||||
|              |              | ||||||
|             if(idMsg == 0x1) { // CONTROL_SPEED_FACTOR |             if(idMsg == 0x1) { // CONTROL_SPEED_FACTOR | ||||||
| @@ -64,10 +80,8 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|              |              | ||||||
|             if(idMsg == 0x4) { // CONTROL_SECURITY_PARAM |             if(idMsg == 0x4) { // CONTROL_SECURITY_PARAM | ||||||
|                 //  maxSpeedFw  maxSpeedBw  -   - |                 //  maxSpeedFw  maxSpeedBw  -   - | ||||||
|                 BYTES_4 tmpData; |                 KART_CST.CONTROL_MAX_SPEED_FW = incomeData.separate.byte0; | ||||||
|                 tmpData.full = data; |                 KART_CST.CONTROL_MAX_SPEED_BW = incomeData.separate.byte1; | ||||||
|                 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_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_CONTROL_MAX_SPEED_BW, KART_CST.CONTROL_MAX_SPEED_BW); | ||||||
|                  |                  | ||||||
| @@ -75,64 +89,64 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|              |              | ||||||
|             if(idMsg == 0x5) { // CONTROL_SETUP_PARAM |             if(idMsg == 0x5) { // CONTROL_SETUP_PARAM | ||||||
|                 //  displayAliveTime    steeringAliveTime   -   - |                 //  displayAliveTime    steeringAliveTime   -   - | ||||||
|                 BYTES_4 tmpData; |                 KART_CST.DISPLAY_ALIVE_TIME = incomeData.separate.byte0; | ||||||
|                 tmpData.full = data; |                 KART_CST.STEERING_ALIVE_TIME = incomeData.separate.byte1; | ||||||
|                 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_DISPLAY_ALIVE_TIME, KART_CST.DISPLAY_ALIVE_TIME); | ||||||
|                 MEM_write_1_byte(MEMADD_STEERING_ALIVE_TIME, KART_CST.STEERING_ALIVE_TIME); |                 MEM_write_1_byte(MEMADD_STEERING_ALIVE_TIME, KART_CST.STEERING_ALIVE_TIME); | ||||||
|  |                  | ||||||
|                 // TODO set alive times |                 // TODO set alive times | ||||||
|                 // TODO send params |                 // start alives | ||||||
|  |                 CM_DISPLAY_SETUP(NULL); | ||||||
|  |                 CM_STEERING_SETUP(NULL); | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|              |              | ||||||
|             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; |                 KART_CST.JOYSTICK_MODE = incomeData.separate.byte0; | ||||||
|                 tmpData.full = data; |                 KART_CST.JOYSTICK_PARAM1 = incomeData.separate.byte1; | ||||||
|                 KART_CST.JOYSTICK_MODE = tmpData.separate.byte0; |                 KART_CST.JOYSTICK_PARAM2 = incomeData.separate.byte2; | ||||||
|                 KART_CST.JOYSTICK_PARAM1 = tmpData.separate.byte1; |                 KART_CST.JOYSTICK_ALIVE_TIME = incomeData.separate.byte3; | ||||||
|                 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_MODE, KART_CST.JOYSTICK_MODE); | ||||||
|                 MEM_write_1_byte(MEMADD_JOYSTICK_PARAM1, KART_CST.JOYSTICK_PARAM1); |                 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_PARAM2, KART_CST.JOYSTICK_PARAM2); | ||||||
|                 MEM_write_1_byte(MEMADD_JOYSTICK_ALIVE_TIME, KART_CST.JOYSTICK_ALIVE_TIME); |                 MEM_write_1_byte(MEMADD_JOYSTICK_ALIVE_TIME, KART_CST.JOYSTICK_ALIVE_TIME); | ||||||
|                  |                  | ||||||
|                 ALIVE_setAliveTime(ALjoy(), KART_CST.JOYSTICK_ALIVE_TIME); |                 ALIVE_setAliveTime(ALjoy(), KART_CST.JOYSTICK_ALIVE_TIME); | ||||||
|  |                 ALIVE_emitStart(ALjoy(), 0, 0); | ||||||
|                 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; |                 KART_CST.DRIVE_ALIVE_TIME = incomeData.separate.byte0; | ||||||
|                 tmpData.full = data; |                 KART_CST.DRIVE_SPEED_TIME = incomeData.separate.byte1; | ||||||
|                 KART_CST.DRIVE_ALIVE_TIME = tmpData.separate.byte0; |                 KART_CST.DRIVE_STOP_TIME = incomeData.separate.byte2; | ||||||
|                 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_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_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_STOP_TIME, KART_CST.DRIVE_STOP_TIME); | ||||||
|                 // TODO set alive time |                  | ||||||
|                 // TODO send params |                 ALIVE_setAliveTime(&drive()->myChecker, KART_CST.DRIVE_ALIVE_TIME); | ||||||
|  |                 ALIVE_emitStart(&drive()->myChecker, 0, 0); | ||||||
|  |                 CM_DRIVE_SETUP(NULL); | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|              |              | ||||||
|             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; |                 KART_CST.BATTERY_VOLT_TIME = incomeData.separate.byte0; | ||||||
|                 tmpData.full = data; |                 KART_CST.BATTERY_CURRENT_TIME = incomeData.separate.byte1; | ||||||
|                 KART_CST.BATTERY_VOLT_TIME = tmpData.separate.byte0; |                 KART_CST.BATTERY_ENERGY_TIME = incomeData.separate.byte2; | ||||||
|                 KART_CST.BATTERY_CURRENT_TIME = tmpData.separate.byte1; |                 KART_CST.BATTERY_ALIVE_TIME = incomeData.separate.byte3; | ||||||
|                 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_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_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_ENERGY_TIME, KART_CST.BATTERY_ENERGY_TIME); | ||||||
|                 MEM_write_1_byte(MEMADD_BATTERY_ALIVE_TIME, KART_CST.BATTERY_ALIVE_TIME); |                 MEM_write_1_byte(MEMADD_BATTERY_ALIVE_TIME, KART_CST.BATTERY_ALIVE_TIME); | ||||||
|  |                  | ||||||
|                 // TODO set alive time |                 // TODO set alive time | ||||||
|                 // TODO send params |                 // TODO start alive | ||||||
|  |                 CM_SUPPLY_SETUP(NULL); | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|  |  | ||||||
| @@ -145,6 +159,8 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|         case 2: |         case 2: | ||||||
|             if(idMsg == 0x1) { // JOY_MESURE |             if(idMsg == 0x1) { // JOY_MESURE | ||||||
|                 //  posX    posY    button  - |                 //  posX    posY    button  - | ||||||
|  |                 calcTorque(incomeData.separate.byte1); | ||||||
|  |                 calcPosition(incomeData.separate.byte0); | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|              |              | ||||||
| @@ -157,8 +173,9 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|                     KART_CST.JOYSTICK_PARAM2 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM2); |                     KART_CST.JOYSTICK_PARAM2 = MEM_read_1_byte(MEMADD_JOYSTICK_PARAM2); | ||||||
|                     KART_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(), KART_CST.JOYSTICK_ALIVE_TIME); |                     ALIVE_setAliveTime(ALjoy(), KART_CST.JOYSTICK_ALIVE_TIME); | ||||||
|  |                     ALIVE_emitResurrect(ALjoy(), 0, 0); | ||||||
|                     ALIVE_emitBorn(ALjoy(), 0, 0); |                     ALIVE_emitBorn(ALjoy(), 0, 0); | ||||||
|                     ALIVE_emitReady(ALjoy(), 100, 0); |                     ALIVE_emitReady(ALjoy(), 0, 0); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| @@ -182,12 +199,20 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|         case 4: |         case 4: | ||||||
|             if(idMsg == 0x0) { // DRIVE_SPEED |             if(idMsg == 0x0) { // DRIVE_SPEED | ||||||
|                 //  speedHH speedH  speedL  speedLL |                 //  speedHH speedH  speedL  speedLL | ||||||
|                  |                 calcSpeed(revertData.full); | ||||||
|  |                 DRIVE_emitPollSpeed(drive()); | ||||||
|             } |             } | ||||||
|              |              | ||||||
|             if(idMsg == 0xF) { // DRIVE_ALIVE |             if(idMsg == 0xF) { // DRIVE_ALIVE | ||||||
|                 //  statusH statusL -   - |                 //  statusH statusL -   - | ||||||
|                 // TODO drive say ALIVE |                 ALIVE_ISALIVE(&drive()->myChecker); | ||||||
|  |                 if(drive()->myChecker.state == STAL_DEAD){ | ||||||
|  |                     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); | ||||||
|  |                     ALIVE_emitResurrect(&drive()->myChecker, 0, 0); | ||||||
|  |                     ALIVE_emitBorn(&drive()->myChecker, 0, 0); | ||||||
|  |                 } | ||||||
|                  |                  | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| @@ -199,7 +224,7 @@ void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){ | |||||||
|         case 5: |         case 5: | ||||||
|             if(idMsg == 0x1) { // STEERING_GET_CENTER |             if(idMsg == 0x1) { // STEERING_GET_CENTER | ||||||
|                 //  valHH   valH    valL    valLL |                 //  valHH   valH    valL    valLL | ||||||
|                  |                 eKart.center = revertData.full; | ||||||
|             } |             } | ||||||
|              |              | ||||||
|             if(idMsg == 0x2) { // STEERING_GET_POSITION |             if(idMsg == 0x2) { // STEERING_GET_POSITION | ||||||
| @@ -291,7 +316,14 @@ void CM_DRIVE_SETUP(void* p) { | |||||||
|  |  | ||||||
| void CM_DRIVE_POWER(void* p) { | void CM_DRIVE_POWER(void* p) { | ||||||
|     //  valH    valL    -   - |     //  valH    valL    -   - | ||||||
|     // TODO |     BYTES_2 torque; | ||||||
|  |     BYTES_4 tmpData; | ||||||
|  |     torque.full = *((int16_t*) p); | ||||||
|  |     tmpData.separate.byte0 = torque.separate.byte1; | ||||||
|  |     tmpData.separate.byte1 = torque.separate.byte0; | ||||||
|  |     tmpData.separate.byte2 = 0; | ||||||
|  |     tmpData.separate.byte3 = 0; | ||||||
|  |     CAN_Send(4, 1, tmpData.full); | ||||||
| } | } | ||||||
|  |  | ||||||
| void CM_STEERING_SETUP(void* p) { | void CM_STEERING_SETUP(void* p) { | ||||||
|   | |||||||
| @@ -75,6 +75,10 @@ void CM_DISPLAY_DIRECTION(void* p); | |||||||
|  */ |  */ | ||||||
| void CM_DRIVE_SETUP(void* p); | void CM_DRIVE_SETUP(void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Send power to the drive | ||||||
|  |  * @param p the torque (int16_t*) | ||||||
|  |  */ | ||||||
| void CM_DRIVE_POWER(void* p); | void CM_DRIVE_POWER(void* p); | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
| @@ -69,9 +69,10 @@ typedef struct { | |||||||
| KART_CST_TYPE KART_CST; | KART_CST_TYPE KART_CST; | ||||||
|  |  | ||||||
| typedef struct { | typedef struct { | ||||||
|     int32_t speed; |     int16_t torque;     //  | ||||||
|     uint32_t center; |     uint32_t center;    //  | ||||||
|     uint32_t position; |     uint32_t position;  //  | ||||||
|  |     uint8_t speed;      // 100m/h | ||||||
| } KART_VAR_TYPE; | } KART_VAR_TYPE; | ||||||
| KART_VAR_TYPE eKart; | KART_VAR_TYPE eKart; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										171
									
								
								306-controller_interface.X/app/drive.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								306-controller_interface.X/app/drive.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,171 @@ | |||||||
|  | /** | ||||||
|  |  * @author R<>mi Heredero | ||||||
|  |  * @version 1.0.0 | ||||||
|  |  * @date August 2023 | ||||||
|  |  * @file drive.c | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "drive.h" | ||||||
|  | #include "car.h" | ||||||
|  | #include "can_message.h" | ||||||
|  |  | ||||||
|  | void DRIVE_init(DRIVE* me){ | ||||||
|  |     me->state = STDR_INIT; | ||||||
|  |     ALIVE_init(&me->myChecker); | ||||||
|  |     ALIVE_onSetup(&me->myChecker, CM_DRIVE_SETUP, NULL); | ||||||
|  |     ALIVE_onWait(&me->myChecker, DRIVE_emitStart, me); | ||||||
|  |     ALIVE_onDead(&me->myChecker, DRIVE_emitStop, me); | ||||||
|  |     ALIVE_onBorn(&me->myChecker, DRIVE_emitResurrect, me); | ||||||
|  |     me->wait.f = NULL; | ||||||
|  |     me->run.f = NULL; | ||||||
|  |     me->dead.f = NULL; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void DRIVE_startBehaviour(DRIVE* me){ | ||||||
|  |     POST(me, &DRIVE_processEvent, evDRinit, 0, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | bool DRIVE_processEvent(Event* ev) { | ||||||
|  |     bool processed = false; | ||||||
|  |     DRIVE* me = (DRIVE*)Event_getTarget(ev); | ||||||
|  |     DRIVE_STATES oldState = me->state; | ||||||
|  |     evIDT evid = Event_getId(ev); | ||||||
|  |     uint64_t data = Event_getData(ev); | ||||||
|  |      | ||||||
|  |     switch (me->state) {        // onState | ||||||
|  |         case STDR_INIT: | ||||||
|  |             if (ev->id == evDRinit) { | ||||||
|  |                 me->state = STDR_WAIT; | ||||||
|  |                 ALIVE_startBehaviourChecker(&me->myChecker); // Start alive checker | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |          | ||||||
|  |         case STDR_WAIT: | ||||||
|  |             if (ev->id == evDRstart) { | ||||||
|  |                 me->state = STDR_RUN; | ||||||
|  |             } | ||||||
|  |             ALIVE_setAliveTime(&me->myChecker, KART_CST.DRIVE_ALIVE_TIME); | ||||||
|  |             ALIVE_emitBorn(&me->myChecker, 100, 0);      // Born after 100 ms | ||||||
|  |             ALIVE_emitReady(&me->myChecker, 200, 0);     // Ready after 200 ms | ||||||
|  |             break; | ||||||
|  |          | ||||||
|  |         case STDR_RUN: | ||||||
|  |             if (ev->id == evDRstop) { | ||||||
|  |                 me->state = STDR_DEAD; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             if (ev->id == evDRpollTorque) { | ||||||
|  |                 CM_DRIVE_POWER(&eKart.torque); | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             if (ev->id == evDRpollSpeed) { | ||||||
|  |                 CM_DISPLAY_SPEED(&eKart.speed); | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             DRIVE_emitPollTorque(me, KART_CST.DRIVE_STOP_TIME*9, 0); | ||||||
|  |             break; | ||||||
|  |          | ||||||
|  |         case STDR_DEAD: | ||||||
|  |             if (ev->id == evDRresurrect) { | ||||||
|  |                 me->state = STDR_WAIT; | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     if(oldState != me->state){ | ||||||
|  |         switch (oldState) {     // onExit | ||||||
|  |             case STDR_INIT: | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STDR_WAIT: | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STDR_RUN: | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STDR_DEAD: | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         switch (me->state) {    // onEntry | ||||||
|  |             case STDR_INIT: | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STDR_WAIT: | ||||||
|  |                 if (me->wait.f != NULL) { | ||||||
|  |                     me->wait.f(me->wait.p); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STDR_RUN: | ||||||
|  |                 if (me->run.f != NULL) { | ||||||
|  |                     me->run.f(me->run.p); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STDR_DEAD: | ||||||
|  |                 if (me->dead.f != NULL) { | ||||||
|  |                     me->dead.f(me->dead.p); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         processed = true; | ||||||
|  |     } | ||||||
|  |     return processed; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /************* | ||||||
|  |  * Callbacks * | ||||||
|  |  *************/ | ||||||
|  |  | ||||||
|  | void DRIVE_onWait(DRIVE* me, DRIVE_CALLBACK_FUNCTION f, void* p) { | ||||||
|  |     me->wait.f = f; | ||||||
|  |     me->wait.p = p; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void DRIVE_onRun(DRIVE* me, DRIVE_CALLBACK_FUNCTION f, void* p) { | ||||||
|  |     me->run.f = f; | ||||||
|  |     me->run.p = p; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void DRIVE_onDead(DRIVE* me, DRIVE_CALLBACK_FUNCTION f, void* p) { | ||||||
|  |     me->dead.f = f; | ||||||
|  |     me->dead.p = p; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /************ | ||||||
|  |  * EMITTERS * | ||||||
|  |  ************/ | ||||||
|  |  | ||||||
|  | void DRIVE_emitStart(void* p) { | ||||||
|  |     DRIVE* me = (DRIVE*) p; | ||||||
|  |     POST(me, &DRIVE_processEvent, evDRstart, 0, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void DRIVE_emitStop(void* p) { | ||||||
|  |     DRIVE* me = (DRIVE*) p; | ||||||
|  |     POST(me, &DRIVE_processEvent, evDRstop, 0, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void DRIVE_emitResurrect(void* p) { | ||||||
|  |     DRIVE* me = (DRIVE*) p; | ||||||
|  |     POST(me, &DRIVE_processEvent, evDRresurrect, 0, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void DRIVE_emitPollSpeed(void* p) { | ||||||
|  |     DRIVE* me = (DRIVE*) p; | ||||||
|  |     POST(me, &DRIVE_processEvent, evDRpollSpeed, 0, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void DRIVE_emitPollTorque(DRIVE* me, uint16_t t, int64_t data) { | ||||||
|  |     POST(me, &DRIVE_processEvent, evDRpollTorque, t, data); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /*********** | ||||||
|  |  * SETTERS * | ||||||
|  |  ***********/ | ||||||
|  |  | ||||||
|  | void DRIVE_setMyChecker(DRIVE* me, ALIVE v) { | ||||||
|  |     me->myChecker = v; | ||||||
|  | } | ||||||
							
								
								
									
										130
									
								
								306-controller_interface.X/app/drive.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								306-controller_interface.X/app/drive.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,130 @@ | |||||||
|  | /** | ||||||
|  |  * @author R<>mi Heredero | ||||||
|  |  * @version 1.0.0 | ||||||
|  |  * @date August 2023 | ||||||
|  |  * @file drive.h | ||||||
|  |  */ | ||||||
|  | #ifndef DRIVE_H | ||||||
|  | #define DRIVE_H | ||||||
|  |  | ||||||
|  | #include "../xf/xf.h" | ||||||
|  | #include "../middleware/alive.h" | ||||||
|  |  | ||||||
|  | typedef enum { | ||||||
|  |     STDR_INIT, | ||||||
|  |     STDR_WAIT, | ||||||
|  |     STDR_RUN, | ||||||
|  |     STDR_DEAD | ||||||
|  | } DRIVE_STATES; | ||||||
|  |  | ||||||
|  | typedef enum { | ||||||
|  |     evDRinit = 100, | ||||||
|  |     evDRstart, | ||||||
|  |     evDRstop, | ||||||
|  |     evDRresurrect, | ||||||
|  |     evDRpollSpeed, | ||||||
|  |     evDRpollTorque | ||||||
|  | } DRIVE_EVENTS; | ||||||
|  |  | ||||||
|  | typedef void (*DRIVE_CALLBACK_FUNCTION)(void*); | ||||||
|  | typedef struct { | ||||||
|  |     DRIVE_CALLBACK_FUNCTION f; // function | ||||||
|  |     void* p; // param(s) | ||||||
|  | } DRIVE_CALLBACK; | ||||||
|  |  | ||||||
|  | typedef struct { | ||||||
|  |     DRIVE_STATES state; | ||||||
|  |     ALIVE myChecker; | ||||||
|  |     DRIVE_CALLBACK wait; | ||||||
|  |     DRIVE_CALLBACK run; | ||||||
|  |     DRIVE_CALLBACK dead; | ||||||
|  | } DRIVE; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Initialize the DRIVE | ||||||
|  |  * @param me the DRIVE itself | ||||||
|  |  */ | ||||||
|  | void DRIVE_init(DRIVE* me); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Start the DRIVE state machine | ||||||
|  |  * @param me the DRIVE itself | ||||||
|  |  */ | ||||||
|  | void DRIVE_startBehaviour(DRIVE* me); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Process the event | ||||||
|  |  * @param ev the event to process | ||||||
|  |  * @return true if the event is processed | ||||||
|  |  */ | ||||||
|  | bool DRIVE_processEvent(Event* ev); | ||||||
|  |  | ||||||
|  | /************* | ||||||
|  |  * Callbacks * | ||||||
|  |  *************/ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the callback function to call when the DRIVE is entering state wait | ||||||
|  |  * @param me the DRIVE itself | ||||||
|  |  * @param f the function to call | ||||||
|  |  * @param p the param(s) to pass to the function | ||||||
|  |  */ | ||||||
|  | void DRIVE_onWait(DRIVE* me, DRIVE_CALLBACK_FUNCTION f, void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the callback function to call when the DRIVE is entering state run | ||||||
|  |  * @param me the DRIVE itself | ||||||
|  |  * @param f the function to call | ||||||
|  |  * @param p the param(s) to pass to the function | ||||||
|  |  */ | ||||||
|  | void DRIVE_onRun(DRIVE* me, DRIVE_CALLBACK_FUNCTION f, void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the callback function to call when the DRIVE is entering state dead | ||||||
|  |  * @param me the DRIVE itself | ||||||
|  |  * @param f the function to call | ||||||
|  |  * @param p the param(s) to pass to the function | ||||||
|  |  */ | ||||||
|  | void DRIVE_onDead(DRIVE* me, DRIVE_CALLBACK_FUNCTION f, void* p); | ||||||
|  |  | ||||||
|  | /************ | ||||||
|  |  * EMITTERS * | ||||||
|  |  ************/ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the start event | ||||||
|  |  * @param p the DRIVE itself | ||||||
|  |  */ | ||||||
|  | void DRIVE_emitStart(void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the stop event | ||||||
|  |  * @param p the DRIVE itself | ||||||
|  |  */ | ||||||
|  | void DRIVE_emitStop(void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the resurrect event | ||||||
|  |  * @param p the DRIVE itself | ||||||
|  |  */ | ||||||
|  | void DRIVE_emitResurrect(void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the pollSpeed event | ||||||
|  |  * @param p the DRIVE itself | ||||||
|  |  */ | ||||||
|  | void DRIVE_emitPollSpeed(void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the pollTorque event | ||||||
|  |  * @param p the DRIVE itself | ||||||
|  |  */ | ||||||
|  | void DRIVE_emitPollTorque(DRIVE* me, uint16_t t, int64_t data); | ||||||
|  |  | ||||||
|  | /*********** | ||||||
|  |  * SETTERS * | ||||||
|  |  ***********/ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #endif | ||||||
| @@ -21,14 +21,14 @@ 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 != 0x2A){ | ||||||
|         KART_CST.CONTROL_STEERING_MODE   =   0; |         KART_CST.CONTROL_STEERING_MODE   =   0; | ||||||
|         KART_CST.CONTROL_ALIVE_TIME      =   50; |         KART_CST.CONTROL_ALIVE_TIME      =   50; | ||||||
|         KART_CST.CONTROL_SPEED_FACTOR    =   0; |         KART_CST.CONTROL_SPEED_FACTOR    =   111111; | ||||||
|         KART_CST.CONTROL_POWER_FACTOR    =   0; |         KART_CST.CONTROL_POWER_FACTOR    =   10000; | ||||||
|         KART_CST.CONTROL_STEERING_FACTOR =   0; |         KART_CST.CONTROL_STEERING_FACTOR =   400000000; | ||||||
|         KART_CST.CONTROL_MAX_SPEED_FW    =   0; |         KART_CST.CONTROL_MAX_SPEED_FW    =   50; | ||||||
|         KART_CST.CONTROL_MAX_SPEED_BW    =   0; |         KART_CST.CONTROL_MAX_SPEED_BW    =   25; | ||||||
|          |          | ||||||
|         KART_CST.JOYSTICK_MODE           =   0; |         KART_CST.JOYSTICK_MODE           =   0; | ||||||
|         KART_CST.JOYSTICK_PARAM1         =   5; |         KART_CST.JOYSTICK_PARAM1         =   5; | ||||||
| @@ -37,9 +37,9 @@ void MEM_init(){ | |||||||
|          |          | ||||||
|         KART_CST.DISPLAY_ALIVE_TIME      =  100; |         KART_CST.DISPLAY_ALIVE_TIME      =  100; | ||||||
|          |          | ||||||
|         KART_CST.DRIVE_SPEED_TIME        =   0; |         KART_CST.DRIVE_SPEED_TIME        =   20; | ||||||
|         KART_CST.DRIVE_STOP_TIME         =   0; |         KART_CST.DRIVE_STOP_TIME         =   10; | ||||||
|         KART_CST.DRIVE_ALIVE_TIME        =   10; |         KART_CST.DRIVE_ALIVE_TIME        =   250; | ||||||
|          |          | ||||||
|         KART_CST.STEERING_ALIVE_TIME     =  100; |         KART_CST.STEERING_ALIVE_TIME     =  100; | ||||||
|          |          | ||||||
| @@ -74,7 +74,7 @@ void MEM_init(){ | |||||||
|         MEM_write_1_byte(MEMADD_BATTERY_ENERGY_TIME, KART_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, KART_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, 0x2A); | ||||||
|     } else { |     } else { | ||||||
|         KART_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); | ||||||
|         KART_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); | ||||||
| @@ -30,6 +30,10 @@ LED* l8()  { | |||||||
|     return &theFactory.l8_; |     return &theFactory.l8_; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | BLINKER* b1() { | ||||||
|  |     return &theFactory.b1_; | ||||||
|  | } | ||||||
|  |  | ||||||
| ALIVE* ALcontroller(){ | ALIVE* ALcontroller(){ | ||||||
|     return &theFactory.ALcontroller_; |     return &theFactory.ALcontroller_; | ||||||
| } | } | ||||||
| @@ -38,6 +42,10 @@ ALIVE* ALjoy(){ | |||||||
|     return &theFactory.ALjoy_; |     return &theFactory.ALjoy_; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | DRIVE* drive(){ | ||||||
|  |     return &theFactory.drive_; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
| //initialize all objects | //initialize all objects | ||||||
| void Factory_init() { | void Factory_init() { | ||||||
| @@ -59,6 +67,8 @@ void Factory_init() { | |||||||
|     LED_initHW(l7()); |     LED_initHW(l7()); | ||||||
|     LED_initHW(l8()); |     LED_initHW(l8()); | ||||||
|      |      | ||||||
|  |     BLINKER_init(b1()); | ||||||
|  |  | ||||||
|     CAN_init(); |     CAN_init(); | ||||||
|     CAN_setSender(1); |     CAN_setSender(1); | ||||||
|     LED_off(l1()); |     LED_off(l1()); | ||||||
| @@ -69,6 +79,7 @@ void Factory_init() { | |||||||
|     ALIVE_setAliveTime(ALcontroller(), KART_CST.CONTROL_ALIVE_TIME); |     ALIVE_setAliveTime(ALcontroller(), KART_CST.CONTROL_ALIVE_TIME); | ||||||
|      |      | ||||||
|     ALIVE_init(ALjoy()); |     ALIVE_init(ALjoy()); | ||||||
|  |     DRIVE_init(drive()); | ||||||
| } | } | ||||||
|  |  | ||||||
| //connect objects if required | //connect objects if required | ||||||
| @@ -78,20 +89,30 @@ void Factory_build() { | |||||||
|      |      | ||||||
|     ALIVE_onAlive(ALcontroller(), CM_CONTROLLER_ALIVE, NULL); |     ALIVE_onAlive(ALcontroller(), CM_CONTROLLER_ALIVE, NULL); | ||||||
|      |      | ||||||
|  |     //BLINKER_onOn(b1(), LED_on, l6()); | ||||||
|  |     //BLINKER_onOff(b1(), LED_off, l6()); | ||||||
|  |      | ||||||
|     ALIVE_onSetup(ALjoy(), CM_JOY_SETUP, NULL); |     ALIVE_onSetup(ALjoy(), CM_JOY_SETUP, NULL); | ||||||
|     ALIVE_setAliveTime(ALjoy(), KART_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()); | ||||||
|      |      | ||||||
|  |     DRIVE_onRun(drive(), LED_on, l2()); | ||||||
|  |     DRIVE_onDead(drive(), LED_off, l2()); | ||||||
|  |      | ||||||
| } | } | ||||||
|  |  | ||||||
| //start all state machines | //start all state machines | ||||||
| void Factory_start() { | void Factory_start() { | ||||||
|     CAN_startBehaviour(); |     CAN_startBehaviour(); | ||||||
|          |          | ||||||
|  |     DRIVE_startBehaviour(drive()); | ||||||
|  |      | ||||||
|     ALIVE_startBehaviourSender(ALcontroller()); |     ALIVE_startBehaviourSender(ALcontroller()); | ||||||
|     ALIVE_startBehaviourChecker(ALjoy()); |     ALIVE_startBehaviourChecker(ALjoy()); | ||||||
|     ALIVE_emitBorn(ALjoy(), 100, 0); |     ALIVE_emitBorn(ALjoy(), 100, 0); | ||||||
|     ALIVE_emitReady(ALjoy(), 200, 0); |     ALIVE_emitReady(ALjoy(), 200, 0); | ||||||
|      |      | ||||||
|  |      | ||||||
|  |      | ||||||
| } | } | ||||||
|   | |||||||
| @@ -14,11 +14,13 @@ | |||||||
|  |  | ||||||
| #include "../car.h" | #include "../car.h" | ||||||
| #include "../can_message.h" | #include "../can_message.h" | ||||||
|  | #include "../eeprom.h" | ||||||
|  | #include "../drive.h" | ||||||
| #include "../../board/led/led.h" | #include "../../board/led/led.h" | ||||||
| #include "../../board/button/button.h" | #include "../../board/button/button.h" | ||||||
| #include "../../middleware/alive.h" | #include "../../middleware/alive.h" | ||||||
| #include "../../middleware/can_interface.h" | #include "../../middleware/can_interface.h" | ||||||
| #include "../../middleware/eeprom.h" | #include "../../middleware/blinker.h" | ||||||
|  |  | ||||||
|  |  | ||||||
| typedef struct { | typedef struct { | ||||||
| @@ -31,8 +33,11 @@ typedef struct { | |||||||
|     LED l7_; |     LED l7_; | ||||||
|     LED l8_; |     LED l8_; | ||||||
|      |      | ||||||
|  |     BLINKER b1_; | ||||||
|  |      | ||||||
|     ALIVE ALcontroller_; |     ALIVE ALcontroller_; | ||||||
|     ALIVE ALjoy_; |     ALIVE ALjoy_; | ||||||
|  |     DRIVE drive_; | ||||||
|  |  | ||||||
| } Factory; | } Factory; | ||||||
|  |  | ||||||
| @@ -51,8 +56,11 @@ LED* l6(); | |||||||
| LED* l7(); | LED* l7(); | ||||||
| LED* l8(); | LED* l8(); | ||||||
|  |  | ||||||
|  | BLINKER* b1(); | ||||||
|  |  | ||||||
| ALIVE* ALcontroller(); | ALIVE* ALcontroller(); | ||||||
| ALIVE* ALjoy(); | ALIVE* ALjoy(); | ||||||
|  | DRIVE* drive(); | ||||||
|  |  | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
							
								
								
									
										47
									
								
								306-controller_interface.X/app/kartculator.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								306-controller_interface.X/app/kartculator.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | /** | ||||||
|  |  * @author R<>mi Heredero | ||||||
|  |  * @version. 0.0.0 | ||||||
|  |  * @date August 2023 | ||||||
|  |  * @file kartculator.c | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "kartculator.h" | ||||||
|  |  | ||||||
|  | void calcTorque(uint8_t joy_pos) { | ||||||
|  |     int32_t calcTorque; | ||||||
|  |     calcTorque = (int8_t) joy_pos;                  // joystick position | ||||||
|  |     calcTorque *= KART_CST.CONTROL_POWER_FACTOR;    // convert by power factor | ||||||
|  |     calcTorque /= 1000;                             // torque define by joystick | ||||||
|  |     eKart.torque = (int16_t) calcTorque; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void calcPosition(uint8_t joy_pos){ | ||||||
|  |     int32_t calcPosition; | ||||||
|  |     calcPosition = (int8_t) joy_pos; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void calcSpeed(int32_t rpm) { | ||||||
|  |     int32_t calcSpeed; | ||||||
|  |     if(rpm>=0){ | ||||||
|  |         calcSpeed = rpm; | ||||||
|  |     } else { | ||||||
|  |         calcSpeed = -rpm; | ||||||
|  |     } | ||||||
|  |     calcSpeed *= 1000; | ||||||
|  |     calcSpeed /= KART_CST.CONTROL_SPEED_FACTOR; | ||||||
|  |     eKart.speed = (uint8_t) calcSpeed; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int16_t getTorque() { | ||||||
|  |      | ||||||
|  | } | ||||||
|  |  | ||||||
|  | uint32_t getPosition() { | ||||||
|  |      | ||||||
|  | } | ||||||
|  |  | ||||||
|  | uint8_t getSpeed() { | ||||||
|  |      | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										24
									
								
								306-controller_interface.X/app/kartculator.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								306-controller_interface.X/app/kartculator.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | /** | ||||||
|  |  * @author R<>mi Heredero | ||||||
|  |  * @version. 0.0.0 | ||||||
|  |  * @date August 2023 | ||||||
|  |  * @file kartculator.h | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef KARTCULATOR_H | ||||||
|  | #define	KARTCULATOR_H | ||||||
|  |  | ||||||
|  | #include <stdint.h>         // usage of standard types | ||||||
|  | #include <stdbool.h>        // usage of boolean types | ||||||
|  | #include "../mcc_generated_files/mcc.h" | ||||||
|  | #include "car.h" | ||||||
|  |  | ||||||
|  | void calcTorque(uint8_t joy_pos); | ||||||
|  | void calcPosition(uint8_t joy_pos); | ||||||
|  | void calcSpeed(int32_t rpm); | ||||||
|  | int16_t getTorque(); | ||||||
|  | uint32_t getPosition(); | ||||||
|  | uint8_t getSpeed(); | ||||||
|  |  | ||||||
|  | #endif	/* KARTCULATOR_H */ | ||||||
|  |  | ||||||
							
								
								
									
										0
									
								
								306-controller_interface.X/defmplabxtrace.log
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								306-controller_interface.X/defmplabxtrace.log
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										
											BIN
										
									
								
								306-controller_interface.X/defmplabxtrace.log.inx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								306-controller_interface.X/defmplabxtrace.log.inx
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -80,8 +80,8 @@ bool ALIVE_processEvent(Event* ev) { | |||||||
|             break; |             break; | ||||||
|          |          | ||||||
|         case STAL_DEAD: |         case STAL_DEAD: | ||||||
|             if (ev->id == evALborn) { |             if (ev->id == evALresurrect) { | ||||||
|                 me->state = STAL_BORN; |                 me->state = STAL_SETUP; | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
|          |          | ||||||
| @@ -92,7 +92,7 @@ bool ALIVE_processEvent(Event* ev) { | |||||||
|                 } |                 } | ||||||
|                 if (me->aliveTime == 0) { |                 if (me->aliveTime == 0) { | ||||||
|                     if (me->haveBreak){ |                     if (me->haveBreak){ | ||||||
|                         me->state == STAL_BREAK; |                         me->state = STAL_BREAK; | ||||||
|                     } |                     } | ||||||
|                 } else { |                 } else { | ||||||
|                     ALIVE_emitPoll(me, me->aliveTime*10, 0); |                     ALIVE_emitPoll(me, me->aliveTime*10, 0); | ||||||
| @@ -142,6 +142,7 @@ bool ALIVE_processEvent(Event* ev) { | |||||||
|                 break; |                 break; | ||||||
|              |              | ||||||
|             case STAL_SETUP: |             case STAL_SETUP: | ||||||
|  |                 me->checker = true; | ||||||
|                 if (me->setup.f != NULL) { |                 if (me->setup.f != NULL) { | ||||||
|                     me->setup.f(me->setup.p); |                     me->setup.f(me->setup.p); | ||||||
|                 } |                 } | ||||||
| @@ -166,6 +167,7 @@ bool ALIVE_processEvent(Event* ev) { | |||||||
|                 break; |                 break; | ||||||
|              |              | ||||||
|             case STAL_ALIVE: |             case STAL_ALIVE: | ||||||
|  |                 me->sender = true; | ||||||
|                 break; |                 break; | ||||||
|              |              | ||||||
|             case STAL_BREAK: |             case STAL_BREAK: | ||||||
| @@ -238,6 +240,10 @@ void ALIVE_emitStart(ALIVE* me, uint16_t t, int64_t data) { | |||||||
|     POST(me, &ALIVE_processEvent, evALstart, t, data); |     POST(me, &ALIVE_processEvent, evALstart, t, data); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void ALIVE_emitResurrect(ALIVE* me, uint16_t t, int64_t data) { | ||||||
|  |     POST(me, &ALIVE_processEvent, evALresurrect, t, data); | ||||||
|  | } | ||||||
|  |  | ||||||
| /*********** | /*********** | ||||||
|  * SETTERS * |  * SETTERS * | ||||||
|  ***********/ |  ***********/ | ||||||
|   | |||||||
| @@ -25,7 +25,8 @@ typedef enum { | |||||||
|     evALborn, |     evALborn, | ||||||
|     evALready, |     evALready, | ||||||
|     evALpoll, |     evALpoll, | ||||||
|     evALstart |     evALstart, | ||||||
|  |     evALresurrect | ||||||
| } ALIVE_EVENTS; | } ALIVE_EVENTS; | ||||||
|  |  | ||||||
| typedef void (*ALIVE_CALLBACK_FUNCTION)(void*); | typedef void (*ALIVE_CALLBACK_FUNCTION)(void*); | ||||||
| @@ -162,6 +163,14 @@ void ALIVE_emitPoll(ALIVE* me, uint16_t t, int64_t data); | |||||||
|  */ |  */ | ||||||
| void ALIVE_emitStart(ALIVE* me, uint16_t t, int64_t data); | void ALIVE_emitStart(ALIVE* me, uint16_t t, int64_t data); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the resurrect event | ||||||
|  |  * @param me the ALIVE itself | ||||||
|  |  * @param t time to wait in ms before triggering event | ||||||
|  |  * @param data data to put on the event for XF | ||||||
|  |  */ | ||||||
|  | void ALIVE_emitResurrect(ALIVE* me, uint16_t t, int64_t data); | ||||||
|  |  | ||||||
|  |  | ||||||
| /*********** | /*********** | ||||||
|  * SETTERS * |  * SETTERS * | ||||||
|   | |||||||
							
								
								
									
										189
									
								
								306-controller_interface.X/middleware/blinker.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										189
									
								
								306-controller_interface.X/middleware/blinker.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,189 @@ | |||||||
|  | /** | ||||||
|  |  * @author Rémi Heredero | ||||||
|  |  * @version 1.0.0 | ||||||
|  |  * @date July 2023 | ||||||
|  |  * @file blinker.c | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include "blinker.h" | ||||||
|  |  | ||||||
|  | void BLINKER_init(BLINKER* me){ | ||||||
|  |     me->state = STBL_INIT; | ||||||
|  |     me->timeOn = 500; | ||||||
|  |     me->timeOff = 500; | ||||||
|  |     me->numberOfBlink = 3; | ||||||
|  |     me->nBlinkIsOn = false; | ||||||
|  |     me->remainBlinks = 3; | ||||||
|  |     me->wait.f = NULL; | ||||||
|  |     me->on.f = NULL; | ||||||
|  |     me->off.f = NULL; | ||||||
|  |     me->finished.f = NULL; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_startBehaviour(BLINKER* me) { | ||||||
|  |     POST(me, &BLINKER_processEvent, evBLinit, 0, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | bool BLINKER_processEvent(Event* ev) { | ||||||
|  |     bool processed = false; | ||||||
|  |     BLINKER* me = (BLINKER*)Event_getTarget(ev); | ||||||
|  |     BLINKER_STATES oldState = me->state; | ||||||
|  |     evIDT evid = Event_getId(ev); | ||||||
|  |      | ||||||
|  |     switch (me->state) {        // onState | ||||||
|  |         case STBL_INIT: | ||||||
|  |             if (ev->id == evBLinit) { | ||||||
|  |                 me->state = STBL_WAIT; | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |          | ||||||
|  |         case STBL_WAIT: | ||||||
|  |             me->remainBlinks = me->numberOfBlink; | ||||||
|  |             if(evid == evBLblinkN) { | ||||||
|  |                 me->state = STBL_ON; | ||||||
|  |                 me->nBlinkIsOn = true; | ||||||
|  |                 BLINKER_emitTimer(me, me->timeOn); | ||||||
|  |             } | ||||||
|  |             if(evid == evBLblink) { | ||||||
|  |                 me->state = STBL_ON; | ||||||
|  |                 me->nBlinkIsOn = false; | ||||||
|  |                 BLINKER_emitTimer(me, me->timeOn); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |          | ||||||
|  |         case STBL_ON: | ||||||
|  |             if (me->nBlinkIsOn) { | ||||||
|  |                 me->remainBlinks--; | ||||||
|  |             } | ||||||
|  |             if (evid == evBLtimer) { | ||||||
|  |                 me->state = STBL_OFF; | ||||||
|  |                 BLINKER_emitTimer(me, me->timeOff); | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |          | ||||||
|  |         case STBL_OFF: | ||||||
|  |             if (evid == evBLtimer) { | ||||||
|  |                 if (me->remainBlinks == 0) { | ||||||
|  |                     me->state = STBL_WAIT; | ||||||
|  |                     if (me->finished.f != NULL) { | ||||||
|  |                         me->finished.f(me->finished.p); | ||||||
|  |                     } | ||||||
|  |                 } else { | ||||||
|  |                     me->state = STBL_ON; | ||||||
|  |                     BLINKER_emitTimer(me, me->timeOn); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     if(oldState != me->state){ | ||||||
|  |         switch (oldState) {     // onExit | ||||||
|  |             case STBL_INIT: | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STBL_WAIT: | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STBL_ON: | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STBL_OFF: | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         switch (me->state) {    // onEntry | ||||||
|  |             case STBL_INIT: | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STBL_WAIT: | ||||||
|  |                 if (me->wait.f != NULL) { | ||||||
|  |                     me->wait.f(me->wait.p); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STBL_ON: | ||||||
|  |                 if (me->on.f != NULL) { | ||||||
|  |                     me->on.f(me->on.p); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |              | ||||||
|  |             case STBL_OFF: | ||||||
|  |                 if (me->off.f != NULL) { | ||||||
|  |                     me->off.f(me->off.p); | ||||||
|  |                 } | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         processed = true; | ||||||
|  |     } | ||||||
|  |     return processed; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /************* | ||||||
|  |  * Callbacks * | ||||||
|  |  *************/ | ||||||
|  |  | ||||||
|  | void BLINKER_onWait(BLINKER* me, BLINKER_CALLBACK_FUNCTION f, void* p) { | ||||||
|  |     me->wait.f = f; | ||||||
|  |     me->wait.p = p; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_onOn(BLINKER* me, BLINKER_CALLBACK_FUNCTION f, void* p) { | ||||||
|  |     me->on.f = f; | ||||||
|  |     me->on.p = p; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_onOff(BLINKER* me, BLINKER_CALLBACK_FUNCTION f, void* p) { | ||||||
|  |     me->off.f = f; | ||||||
|  |     me->off.p = p; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_onFinished(BLINKER* me, BLINKER_CALLBACK_FUNCTION f, void* p) { | ||||||
|  |     me->finished.f = f; | ||||||
|  |     me->finished.p = p; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /************ | ||||||
|  |  * EMITTERS * | ||||||
|  |  ************/ | ||||||
|  |  | ||||||
|  | void BLINKER_emitBlink(BLINKER* me, uint16_t t) { | ||||||
|  |     POST(me, &BLINKER_processEvent, evBLblink, t, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_emitBlinkN(BLINKER* me, uint16_t t) { | ||||||
|  |     POST(me, &BLINKER_processEvent, evBLblinkN, t, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_emitTimer(BLINKER* me, uint16_t t) { | ||||||
|  |     POST(me, &BLINKER_processEvent, evBLtimer, t, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /*********** | ||||||
|  |  * SETTERS * | ||||||
|  |  ***********/ | ||||||
|  |  | ||||||
|  | void BLINKER_setTimeOn(BLINKER* me, uint16_t v) { | ||||||
|  |     me->timeOn = v; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_setTimeOff(BLINKER* me, uint16_t v) { | ||||||
|  |     me->timeOff = v; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_setNumberOfBlink(BLINKER* me, uint8_t v) { | ||||||
|  |     me->numberOfBlink = v; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_setNBlinkIsOn(BLINKER* me, bool v) { | ||||||
|  |     me->nBlinkIsOn = v; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void BLINKER_setRemainBlinks(BLINKER* me, uint8_t v) { | ||||||
|  |     me->remainBlinks = v; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | void BLINKER_endBlink(BLINKER* me) { | ||||||
|  |     me->remainBlinks = 0; | ||||||
|  | } | ||||||
							
								
								
									
										167
									
								
								306-controller_interface.X/middleware/blinker.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								306-controller_interface.X/middleware/blinker.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,167 @@ | |||||||
|  | /** | ||||||
|  |  * @author Rémi Heredero | ||||||
|  |  * @version 1.0.0 | ||||||
|  |  * @date July 2023 | ||||||
|  |  * @file blinker.h | ||||||
|  |  */ | ||||||
|  | #ifndef BLINKER_H | ||||||
|  | #define BLINKER_H | ||||||
|  |  | ||||||
|  | #include "../xf/xf.h" | ||||||
|  |  | ||||||
|  | typedef enum { | ||||||
|  |     STBL_INIT, | ||||||
|  |     STBL_WAIT, | ||||||
|  |     STBL_ON, | ||||||
|  |     STBL_OFF | ||||||
|  | } BLINKER_STATES; | ||||||
|  |  | ||||||
|  | typedef enum { | ||||||
|  |     evBLinit = 200, | ||||||
|  |     evBLblink, | ||||||
|  |     evBLblinkN, | ||||||
|  |     evBLtimer | ||||||
|  | } BLINKER_EVENTS; | ||||||
|  |  | ||||||
|  | typedef void (*BLINKER_CALLBACK_FUNCTION)(void*); | ||||||
|  | typedef struct { | ||||||
|  |     BLINKER_CALLBACK_FUNCTION f; // function | ||||||
|  |     void* p; // param(s) | ||||||
|  | } BLINKER_CALLBACK; | ||||||
|  |  | ||||||
|  | typedef struct { | ||||||
|  |     BLINKER_STATES state; //Actual state | ||||||
|  |     uint16_t timeOn; // Time on | ||||||
|  |     uint16_t timeOff; // Time off | ||||||
|  |     uint8_t numberOfBlink; // Number of blink for this blinker when start with blinkN | ||||||
|  |     bool nBlinkIsOn; // If the nBlink way is enable | ||||||
|  |     uint8_t remainBlinks; // Actual remain blink | ||||||
|  |     BLINKER_CALLBACK wait; | ||||||
|  |     BLINKER_CALLBACK on; | ||||||
|  |     BLINKER_CALLBACK off; | ||||||
|  |     BLINKER_CALLBACK finished; | ||||||
|  | } BLINKER; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Initialize the BLINKER | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  */ | ||||||
|  | void BLINKER_init(BLINKER* me); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Start the BLINKER state machine | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  */ | ||||||
|  | void BLINKER_startBehaviour(BLINKER* me); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Process the event | ||||||
|  |  * @param ev the event to process | ||||||
|  |  * @return true if the event is processed | ||||||
|  |  */ | ||||||
|  | bool BLINKER_processEvent(Event* ev); | ||||||
|  |  | ||||||
|  | /************* | ||||||
|  |  * Callbacks * | ||||||
|  |  *************/ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the callback function to call when the BLINKER is entering state wait | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param f the function to call | ||||||
|  |  * @param p the param(s) to pass to the function | ||||||
|  |  */ | ||||||
|  | void BLINKER_onWait(BLINKER* me, BLINKER_CALLBACK_FUNCTION f, void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the callback function to call when the BLINKER is entering state on | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param f the function to call | ||||||
|  |  * @param p the param(s) to pass to the function | ||||||
|  |  */ | ||||||
|  | void BLINKER_onOn(BLINKER* me, BLINKER_CALLBACK_FUNCTION f, void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the callback function to call when the BLINKER is entering state off | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param f the function to call | ||||||
|  |  * @param p the param(s) to pass to the function | ||||||
|  |  */ | ||||||
|  | void BLINKER_onOff(BLINKER* me, BLINKER_CALLBACK_FUNCTION f, void* p); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the callabck function to call when the BLINKER is entering state finished | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param f the function to call | ||||||
|  |  * @param t the param(s) to pass to the function | ||||||
|  |  */ | ||||||
|  | void BLINKER_onFinished(BLINKER* me, BLINKER_CALLBACK_FUNCTION f, void* p); | ||||||
|  |  | ||||||
|  | /************ | ||||||
|  |  * EMITTERS * | ||||||
|  |  ************/ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the blink event | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param t time to wait in ms before triggering event | ||||||
|  |  */void BLINKER_emitBlink(BLINKER* me, uint16_t t); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the blinkn event | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param t time to wait in ms before triggering event | ||||||
|  |  */void BLINKER_emitBlinkN(BLINKER* me, uint16_t t); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Emit the timer event | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param t time to wait in ms before triggering event | ||||||
|  |  */void BLINKER_emitTimer(BLINKER* me, uint16_t t); | ||||||
|  |  | ||||||
|  | /*********** | ||||||
|  |  * SETTERS * | ||||||
|  |  ***********/ | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the time on | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param v the value to set | ||||||
|  |  */ | ||||||
|  | void BLINKER_setTimeOn(BLINKER* me, uint16_t v); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the time off | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param v the value to set | ||||||
|  |  */ | ||||||
|  | void BLINKER_setTimeOff(BLINKER* me, uint16_t v); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the number of blink | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param v the value to set | ||||||
|  |  */ | ||||||
|  | void BLINKER_setNumberOfBlink(BLINKER* me, uint8_t v); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the nBlinkIsOn | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param v the value to set | ||||||
|  |  */ | ||||||
|  | void BLINKER_setNBlinkIsOn(BLINKER* me, bool v); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Set the remain blink(s) | ||||||
|  |  * @param me the BLINKER itself | ||||||
|  |  * @param v the value to set | ||||||
|  |  */ | ||||||
|  | void BLINKER_setRemainBlinks(BLINKER* me, uint8_t v); | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Stop to blink if it was indefinitely blinking | ||||||
|  |  * @param me the blinker itself | ||||||
|  |  */ | ||||||
|  | void BLINKER_endBlink(BLINKER* me); | ||||||
|  |  | ||||||
|  | #endif | ||||||
							
								
								
									
										444
									
								
								306-controller_interface.X/nbproject/Makefile-default.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										444
									
								
								306-controller_interface.X/nbproject/Makefile-default.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,444 @@ | |||||||
|  | # | ||||||
|  | # Generated Makefile - do not edit! | ||||||
|  | # | ||||||
|  | # Edit the Makefile in the project folder instead (../Makefile). Each target | ||||||
|  | # has a -pre and a -post target defined where you can add customized code. | ||||||
|  | # | ||||||
|  | # This makefile implements configuration specific macros and targets. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Include project Makefile | ||||||
|  | ifeq "${IGNORE_LOCAL}" "TRUE" | ||||||
|  | # do not include local makefile. User is passing all local related variables already | ||||||
|  | else | ||||||
|  | include Makefile | ||||||
|  | # Include makefile containing local settings | ||||||
|  | ifeq "$(wildcard nbproject/Makefile-local-default.mk)" "nbproject/Makefile-local-default.mk" | ||||||
|  | include nbproject/Makefile-local-default.mk | ||||||
|  | endif | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | # Environment | ||||||
|  | MKDIR=gnumkdir -p | ||||||
|  | RM=rm -f  | ||||||
|  | MV=mv  | ||||||
|  | CP=cp  | ||||||
|  |  | ||||||
|  | # Macros | ||||||
|  | CND_CONF=default | ||||||
|  | ifeq ($(TYPE_IMAGE), DEBUG_RUN) | ||||||
|  | IMAGE_TYPE=debug | ||||||
|  | OUTPUT_SUFFIX=elf | ||||||
|  | DEBUGGABLE_SUFFIX=elf | ||||||
|  | FINAL_IMAGE=${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} | ||||||
|  | else | ||||||
|  | IMAGE_TYPE=production | ||||||
|  | OUTPUT_SUFFIX=hex | ||||||
|  | DEBUGGABLE_SUFFIX=elf | ||||||
|  | FINAL_IMAGE=${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifeq ($(COMPARE_BUILD), true) | ||||||
|  | COMPARISON_BUILD=-mafrlcsj | ||||||
|  | else | ||||||
|  | COMPARISON_BUILD= | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | # Object Directory | ||||||
|  | OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE} | ||||||
|  |  | ||||||
|  | # Distribution Directory | ||||||
|  | DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} | ||||||
|  |  | ||||||
|  | # Source Files Quoted if spaced | ||||||
|  | SOURCEFILES_QUOTED_IF_SPACED=app/factory/factory.c app/can_message.c app/kartculator.c app/eeprom.c app/drive.c board/led/led.c mcc_generated_files/interrupt_manager.c mcc_generated_files/tmr0.c mcc_generated_files/pin_manager.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/ecan.c mcc_generated_files/memory.c middleware/can_interface.c middleware/alive.c middleware/blinker.c xf/event.c xf/xf.c main.c | ||||||
|  |  | ||||||
|  | # Object Files Quoted if spaced | ||||||
|  | OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/app/factory/factory.p1 ${OBJECTDIR}/app/can_message.p1 ${OBJECTDIR}/app/kartculator.p1 ${OBJECTDIR}/app/eeprom.p1 ${OBJECTDIR}/app/drive.p1 ${OBJECTDIR}/board/led/led.p1 ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 ${OBJECTDIR}/mcc_generated_files/tmr0.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/ecan.p1 ${OBJECTDIR}/mcc_generated_files/memory.p1 ${OBJECTDIR}/middleware/can_interface.p1 ${OBJECTDIR}/middleware/alive.p1 ${OBJECTDIR}/middleware/blinker.p1 ${OBJECTDIR}/xf/event.p1 ${OBJECTDIR}/xf/xf.p1 ${OBJECTDIR}/main.p1 | ||||||
|  | POSSIBLE_DEPFILES=${OBJECTDIR}/app/factory/factory.p1.d ${OBJECTDIR}/app/can_message.p1.d ${OBJECTDIR}/app/kartculator.p1.d ${OBJECTDIR}/app/eeprom.p1.d ${OBJECTDIR}/app/drive.p1.d ${OBJECTDIR}/board/led/led.p1.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d ${OBJECTDIR}/mcc_generated_files/device_config.p1.d ${OBJECTDIR}/mcc_generated_files/mcc.p1.d ${OBJECTDIR}/mcc_generated_files/ecan.p1.d ${OBJECTDIR}/mcc_generated_files/memory.p1.d ${OBJECTDIR}/middleware/can_interface.p1.d ${OBJECTDIR}/middleware/alive.p1.d ${OBJECTDIR}/middleware/blinker.p1.d ${OBJECTDIR}/xf/event.p1.d ${OBJECTDIR}/xf/xf.p1.d ${OBJECTDIR}/main.p1.d | ||||||
|  |  | ||||||
|  | # Object Files | ||||||
|  | OBJECTFILES=${OBJECTDIR}/app/factory/factory.p1 ${OBJECTDIR}/app/can_message.p1 ${OBJECTDIR}/app/kartculator.p1 ${OBJECTDIR}/app/eeprom.p1 ${OBJECTDIR}/app/drive.p1 ${OBJECTDIR}/board/led/led.p1 ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 ${OBJECTDIR}/mcc_generated_files/tmr0.p1 ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 ${OBJECTDIR}/mcc_generated_files/device_config.p1 ${OBJECTDIR}/mcc_generated_files/mcc.p1 ${OBJECTDIR}/mcc_generated_files/ecan.p1 ${OBJECTDIR}/mcc_generated_files/memory.p1 ${OBJECTDIR}/middleware/can_interface.p1 ${OBJECTDIR}/middleware/alive.p1 ${OBJECTDIR}/middleware/blinker.p1 ${OBJECTDIR}/xf/event.p1 ${OBJECTDIR}/xf/xf.p1 ${OBJECTDIR}/main.p1 | ||||||
|  |  | ||||||
|  | # Source Files | ||||||
|  | SOURCEFILES=app/factory/factory.c app/can_message.c app/kartculator.c app/eeprom.c app/drive.c board/led/led.c mcc_generated_files/interrupt_manager.c mcc_generated_files/tmr0.c mcc_generated_files/pin_manager.c mcc_generated_files/device_config.c mcc_generated_files/mcc.c mcc_generated_files/ecan.c mcc_generated_files/memory.c middleware/can_interface.c middleware/alive.c middleware/blinker.c xf/event.c xf/xf.c main.c | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | CFLAGS= | ||||||
|  | ASFLAGS= | ||||||
|  | LDLIBSOPTIONS= | ||||||
|  |  | ||||||
|  | ############# Tool locations ########################################## | ||||||
|  | # If you copy a project from one host to another, the path where the  # | ||||||
|  | # compiler is installed may be different.                             # | ||||||
|  | # If you open this project with MPLAB X in the new host, this         # | ||||||
|  | # makefile will be regenerated and the paths will be corrected.       # | ||||||
|  | ####################################################################### | ||||||
|  | # fixDeps replaces a bunch of sed/cat/printf statements that slow down the build | ||||||
|  | FIXDEPS=fixDeps | ||||||
|  |  | ||||||
|  | .build-conf:  ${BUILD_SUBPROJECTS} | ||||||
|  | ifneq ($(INFORMATION_MESSAGE), ) | ||||||
|  | 	@echo $(INFORMATION_MESSAGE) | ||||||
|  | endif | ||||||
|  | 	${MAKE}  -f nbproject/Makefile-default.mk ${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} | ||||||
|  |  | ||||||
|  | MP_PROCESSOR_OPTION=18F26K83 | ||||||
|  | # ------------------------------------------------------------------------------------ | ||||||
|  | # Rules for buildStep: compile | ||||||
|  | ifeq ($(TYPE_IMAGE), DEBUG_RUN) | ||||||
|  | ${OBJECTDIR}/app/factory/factory.p1: app/factory/factory.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app/factory"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/factory/factory.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/factory/factory.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/factory/factory.p1 app/factory/factory.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/factory/factory.d ${OBJECTDIR}/app/factory/factory.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/factory/factory.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/app/can_message.p1: app/can_message.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/can_message.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/can_message.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/can_message.p1 app/can_message.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/can_message.d ${OBJECTDIR}/app/can_message.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/can_message.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/app/kartculator.p1: app/kartculator.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/kartculator.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/kartculator.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/kartculator.p1 app/kartculator.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/kartculator.d ${OBJECTDIR}/app/kartculator.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/kartculator.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/app/eeprom.p1: app/eeprom.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/eeprom.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/eeprom.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/eeprom.p1 app/eeprom.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/eeprom.d ${OBJECTDIR}/app/eeprom.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/eeprom.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/app/drive.p1: app/drive.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/drive.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/drive.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/drive.p1 app/drive.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/drive.d ${OBJECTDIR}/app/drive.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/drive.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/board/led/led.p1: board/led/led.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/board/led"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/board/led/led.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/board/led/led.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/board/led/led.p1 board/led/led.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/board/led/led.d ${OBJECTDIR}/board/led/led.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/board/led/led.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1: mcc_generated_files/interrupt_manager.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 mcc_generated_files/interrupt_manager.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/tmr0.p1: mcc_generated_files/tmr0.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/tmr0.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/tmr0.p1 mcc_generated_files/tmr0.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/tmr0.d ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/pin_manager.p1: mcc_generated_files/pin_manager.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/pin_manager.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 mcc_generated_files/pin_manager.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/pin_manager.d ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/device_config.p1: mcc_generated_files/device_config.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/device_config.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/device_config.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/device_config.p1 mcc_generated_files/device_config.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/device_config.d ${OBJECTDIR}/mcc_generated_files/device_config.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/device_config.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/mcc.p1: mcc_generated_files/mcc.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/mcc.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/mcc.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/mcc.p1 mcc_generated_files/mcc.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/mcc.d ${OBJECTDIR}/mcc_generated_files/mcc.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/mcc.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/ecan.p1: mcc_generated_files/ecan.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/ecan.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/ecan.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/ecan.p1 mcc_generated_files/ecan.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/ecan.d ${OBJECTDIR}/mcc_generated_files/ecan.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/ecan.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/memory.p1: mcc_generated_files/memory.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/memory.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/memory.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/memory.p1 mcc_generated_files/memory.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/memory.d ${OBJECTDIR}/mcc_generated_files/memory.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/memory.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/middleware/can_interface.p1: middleware/can_interface.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/middleware"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/can_interface.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/can_interface.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/middleware/can_interface.p1 middleware/can_interface.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/middleware/can_interface.d ${OBJECTDIR}/middleware/can_interface.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/middleware/can_interface.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/middleware/alive.p1: middleware/alive.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/middleware"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/alive.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/alive.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/middleware/alive.p1 middleware/alive.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/middleware/alive.d ${OBJECTDIR}/middleware/alive.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/middleware/alive.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/middleware/blinker.p1: middleware/blinker.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/middleware"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/blinker.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/blinker.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/middleware/blinker.p1 middleware/blinker.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/middleware/blinker.d ${OBJECTDIR}/middleware/blinker.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/middleware/blinker.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/xf/event.p1: xf/event.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/xf"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/xf/event.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/xf/event.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/xf/event.p1 xf/event.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/xf/event.d ${OBJECTDIR}/xf/event.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/xf/event.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/xf/xf.p1: xf/xf.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/xf"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/xf/xf.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/xf/xf.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/xf/xf.p1 xf/xf.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/xf/xf.d ${OBJECTDIR}/xf/xf.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/xf/xf.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/main.p1: main.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/main.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/main.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c  -D__DEBUG=1  -mdebugger=pickit3   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/main.p1 main.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/main.d ${OBJECTDIR}/main.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/main.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | else | ||||||
|  | ${OBJECTDIR}/app/factory/factory.p1: app/factory/factory.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app/factory"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/factory/factory.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/factory/factory.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/factory/factory.p1 app/factory/factory.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/factory/factory.d ${OBJECTDIR}/app/factory/factory.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/factory/factory.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/app/can_message.p1: app/can_message.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/can_message.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/can_message.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/can_message.p1 app/can_message.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/can_message.d ${OBJECTDIR}/app/can_message.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/can_message.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/app/kartculator.p1: app/kartculator.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/kartculator.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/kartculator.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/kartculator.p1 app/kartculator.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/kartculator.d ${OBJECTDIR}/app/kartculator.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/kartculator.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/app/eeprom.p1: app/eeprom.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/eeprom.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/eeprom.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/eeprom.p1 app/eeprom.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/eeprom.d ${OBJECTDIR}/app/eeprom.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/eeprom.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/app/drive.p1: app/drive.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/app"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/drive.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/app/drive.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/app/drive.p1 app/drive.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/app/drive.d ${OBJECTDIR}/app/drive.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/app/drive.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/board/led/led.p1: board/led/led.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/board/led"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/board/led/led.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/board/led/led.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/board/led/led.p1 board/led/led.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/board/led/led.d ${OBJECTDIR}/board/led/led.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/board/led/led.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1: mcc_generated_files/interrupt_manager.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1 mcc_generated_files/interrupt_manager.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.d ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/interrupt_manager.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/tmr0.p1: mcc_generated_files/tmr0.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/tmr0.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/tmr0.p1 mcc_generated_files/tmr0.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/tmr0.d ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/tmr0.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/pin_manager.p1: mcc_generated_files/pin_manager.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/pin_manager.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/pin_manager.p1 mcc_generated_files/pin_manager.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/pin_manager.d ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/pin_manager.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/device_config.p1: mcc_generated_files/device_config.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/device_config.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/device_config.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/device_config.p1 mcc_generated_files/device_config.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/device_config.d ${OBJECTDIR}/mcc_generated_files/device_config.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/device_config.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/mcc.p1: mcc_generated_files/mcc.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/mcc.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/mcc.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/mcc.p1 mcc_generated_files/mcc.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/mcc.d ${OBJECTDIR}/mcc_generated_files/mcc.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/mcc.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/ecan.p1: mcc_generated_files/ecan.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/ecan.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/ecan.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/ecan.p1 mcc_generated_files/ecan.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/ecan.d ${OBJECTDIR}/mcc_generated_files/ecan.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/ecan.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/mcc_generated_files/memory.p1: mcc_generated_files/memory.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/mcc_generated_files"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/memory.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/mcc_generated_files/memory.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/mcc_generated_files/memory.p1 mcc_generated_files/memory.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/mcc_generated_files/memory.d ${OBJECTDIR}/mcc_generated_files/memory.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/mcc_generated_files/memory.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/middleware/can_interface.p1: middleware/can_interface.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/middleware"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/can_interface.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/can_interface.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/middleware/can_interface.p1 middleware/can_interface.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/middleware/can_interface.d ${OBJECTDIR}/middleware/can_interface.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/middleware/can_interface.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/middleware/alive.p1: middleware/alive.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/middleware"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/alive.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/alive.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/middleware/alive.p1 middleware/alive.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/middleware/alive.d ${OBJECTDIR}/middleware/alive.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/middleware/alive.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/middleware/blinker.p1: middleware/blinker.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/middleware"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/blinker.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/middleware/blinker.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/middleware/blinker.p1 middleware/blinker.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/middleware/blinker.d ${OBJECTDIR}/middleware/blinker.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/middleware/blinker.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/xf/event.p1: xf/event.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/xf"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/xf/event.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/xf/event.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/xf/event.p1 xf/event.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/xf/event.d ${OBJECTDIR}/xf/event.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/xf/event.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/xf/xf.p1: xf/xf.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}/xf"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/xf/xf.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/xf/xf.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/xf/xf.p1 xf/xf.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/xf/xf.d ${OBJECTDIR}/xf/xf.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/xf/xf.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | ${OBJECTDIR}/main.p1: main.c  nbproject/Makefile-${CND_CONF}.mk  | ||||||
|  | 	@${MKDIR} "${OBJECTDIR}"  | ||||||
|  | 	@${RM} ${OBJECTDIR}/main.p1.d  | ||||||
|  | 	@${RM} ${OBJECTDIR}/main.p1  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_CC_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -c   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -DXPRJ_default=$(CND_CONF)  -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits $(COMPARISON_BUILD)  -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     -o ${OBJECTDIR}/main.p1 main.c  | ||||||
|  | 	@-${MV} ${OBJECTDIR}/main.d ${OBJECTDIR}/main.p1.d  | ||||||
|  | 	@${FIXDEPS} ${OBJECTDIR}/main.p1.d $(SILENT) -rsi ${MP_CC_DIR}../   | ||||||
|  | 	 | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | # ------------------------------------------------------------------------------------ | ||||||
|  | # Rules for buildStep: assemble | ||||||
|  | ifeq ($(TYPE_IMAGE), DEBUG_RUN) | ||||||
|  | else | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | # ------------------------------------------------------------------------------------ | ||||||
|  | # Rules for buildStep: assembleWithPreprocess | ||||||
|  | ifeq ($(TYPE_IMAGE), DEBUG_RUN) | ||||||
|  | else | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | # ------------------------------------------------------------------------------------ | ||||||
|  | # Rules for buildStep: link | ||||||
|  | ifeq ($(TYPE_IMAGE), DEBUG_RUN) | ||||||
|  | ${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk     | ||||||
|  | 	@${MKDIR} ${DISTDIR}  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.map  -D__DEBUG=1  -mdebugger=pickit3  -DXPRJ_default=$(CND_CONF)  -Wl,--defsym=__MPLAB_BUILD=1   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto        $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}  ${OBJECTFILES_QUOTED_IF_SPACED}      | ||||||
|  | 	@${RM} ${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.hex  | ||||||
|  | 	 | ||||||
|  | else | ||||||
|  | ${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES}  nbproject/Makefile-${CND_CONF}.mk    | ||||||
|  | 	@${MKDIR} ${DISTDIR}  | ||||||
|  | 	${MP_CC} $(MP_EXTRA_LD_PRE) -mcpu=$(MP_PROCESSOR_OPTION) -Wl,-Map=${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.map  -DXPRJ_default=$(CND_CONF)  -Wl,--defsym=__MPLAB_BUILD=1   -mdfp="${DFP_DIR}/xc8"  -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file  -ginhx32 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto     $(COMPARISON_BUILD) -Wl,--memorysummary,${DISTDIR}/memoryfile.xml -o ${DISTDIR}/306-controller_interface.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}  ${OBJECTFILES_QUOTED_IF_SPACED}      | ||||||
|  | 	 | ||||||
|  | endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Subprojects | ||||||
|  | .build-subprojects: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Subprojects | ||||||
|  | .clean-subprojects: | ||||||
|  |  | ||||||
|  | # Clean Targets | ||||||
|  | .clean-conf: ${CLEAN_SUBPROJECTS} | ||||||
|  | 	${RM} -r ${OBJECTDIR} | ||||||
|  | 	${RM} -r ${DISTDIR} | ||||||
|  |  | ||||||
|  | # Enable dependency checking | ||||||
|  | .dep.inc: .depcheck-impl | ||||||
|  |  | ||||||
|  | DEPFILES=$(wildcard ${POSSIBLE_DEPFILES}) | ||||||
|  | ifneq (${DEPFILES},) | ||||||
|  | include ${DEPFILES} | ||||||
|  | endif | ||||||
							
								
								
									
										69
									
								
								306-controller_interface.X/nbproject/Makefile-impl.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								306-controller_interface.X/nbproject/Makefile-impl.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | |||||||
|  | # | ||||||
|  | # Generated Makefile - do not edit! | ||||||
|  | # | ||||||
|  | # Edit the Makefile in the project folder instead (../Makefile). Each target | ||||||
|  | # has a pre- and a post- target defined where you can add customization code. | ||||||
|  | # | ||||||
|  | # This makefile implements macros and targets common to all configurations. | ||||||
|  | # | ||||||
|  | # NOCDDL | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Building and Cleaning subprojects are done by default, but can be controlled with the SUB | ||||||
|  | # macro. If SUB=no, subprojects will not be built or cleaned. The following macro | ||||||
|  | # statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf | ||||||
|  | # and .clean-reqprojects-conf unless SUB has the value 'no' | ||||||
|  | SUB_no=NO | ||||||
|  | SUBPROJECTS=${SUB_${SUB}} | ||||||
|  | BUILD_SUBPROJECTS_=.build-subprojects | ||||||
|  | BUILD_SUBPROJECTS_NO= | ||||||
|  | BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}} | ||||||
|  | CLEAN_SUBPROJECTS_=.clean-subprojects | ||||||
|  | CLEAN_SUBPROJECTS_NO= | ||||||
|  | CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Project Name | ||||||
|  | PROJECTNAME=306-controller_interface.X | ||||||
|  |  | ||||||
|  | # Active Configuration | ||||||
|  | DEFAULTCONF=default | ||||||
|  | CONF=${DEFAULTCONF} | ||||||
|  |  | ||||||
|  | # All Configurations | ||||||
|  | ALLCONFS=default  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # build | ||||||
|  | .build-impl: .build-pre | ||||||
|  | 	${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-conf | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # clean | ||||||
|  | .clean-impl: .clean-pre | ||||||
|  | 	${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .clean-conf | ||||||
|  |  | ||||||
|  | # clobber | ||||||
|  | .clobber-impl: .clobber-pre .depcheck-impl | ||||||
|  | 	    ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # all | ||||||
|  | .all-impl: .all-pre .depcheck-impl | ||||||
|  | 	    ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # dependency checking support | ||||||
|  | .depcheck-impl: | ||||||
|  | #	@echo "# This code depends on make tool being used" >.dep.inc | ||||||
|  | #	@if [ -n "${MAKE_VERSION}" ]; then \ | ||||||
|  | #	    echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \ | ||||||
|  | #	    echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \ | ||||||
|  | #	    echo "include \$${DEPFILES}" >>.dep.inc; \ | ||||||
|  | #	    echo "endif" >>.dep.inc; \ | ||||||
|  | #	else \ | ||||||
|  | #	    echo ".KEEP_STATE:" >>.dep.inc; \ | ||||||
|  | #	    echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \ | ||||||
|  | #	fi | ||||||
| @@ -0,0 +1,37 @@ | |||||||
|  | # | ||||||
|  | # Generated Makefile - do not edit! | ||||||
|  | # | ||||||
|  | # | ||||||
|  | # This file contains information about the location of compilers and other tools. | ||||||
|  | # If you commmit this file into your revision control server, you will be able to  | ||||||
|  | # to checkout the project and build it from the command line with make. However, | ||||||
|  | # if more than one person works on the same project, then this file might show | ||||||
|  | # conflicts since different users are bound to have compilers in different places. | ||||||
|  | # In that case you might choose to not commit this file and let MPLAB X recreate this file | ||||||
|  | # for each user. The disadvantage of not commiting this file is that you must run MPLAB X at | ||||||
|  | # least once so the file gets created and the project can be built. Finally, you can also | ||||||
|  | # avoid using this file at all if you are only building from the command line with make. | ||||||
|  | # You can invoke make with the values of the macros: | ||||||
|  | # $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...   | ||||||
|  | # | ||||||
|  | SHELL=cmd.exe | ||||||
|  | PATH_TO_IDE_BIN=C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/ | ||||||
|  | # Adding MPLAB X bin directory to path. | ||||||
|  | PATH:=C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH) | ||||||
|  | # Path to java used to run MPLAB X when this makefile was created | ||||||
|  | MP_JAVA_PATH="C:\Program Files\Microchip\MPLABX\v6.15\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/" | ||||||
|  | OS_CURRENT="$(shell uname -s)" | ||||||
|  | MP_CC="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-cc.exe" | ||||||
|  | # MP_CPPC is not defined | ||||||
|  | # MP_BC is not defined | ||||||
|  | MP_AS="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-cc.exe" | ||||||
|  | MP_LD="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-cc.exe" | ||||||
|  | MP_AR="C:\Program Files\Microchip\xc8\v2.41\bin\xc8-ar.exe" | ||||||
|  | DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar" | ||||||
|  | MP_CC_DIR="C:\Program Files\Microchip\xc8\v2.41\bin" | ||||||
|  | # MP_CPPC_DIR is not defined | ||||||
|  | # MP_BC_DIR is not defined | ||||||
|  | MP_AS_DIR="C:\Program Files\Microchip\xc8\v2.41\bin" | ||||||
|  | MP_LD_DIR="C:\Program Files\Microchip\xc8\v2.41\bin" | ||||||
|  | MP_AR_DIR="C:\Program Files\Microchip\xc8\v2.41\bin" | ||||||
|  | DFP_DIR=C:/Users/remi.heredero/.mchp_packs/Microchip/PIC18F-K_DFP/1.7.134 | ||||||
							
								
								
									
										10
									
								
								306-controller_interface.X/nbproject/Makefile-variables.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								306-controller_interface.X/nbproject/Makefile-variables.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | # | ||||||
|  | # Generated - do not edit! | ||||||
|  | # | ||||||
|  | # NOCDDL | ||||||
|  | # | ||||||
|  | CND_BASEDIR=`pwd` | ||||||
|  | # default configuration | ||||||
|  | CND_ARTIFACT_DIR_default=dist/default/production | ||||||
|  | CND_ARTIFACT_NAME_default=306-controller_interface.X.production.hex | ||||||
|  | CND_ARTIFACT_PATH_default=dist/default/production/306-controller_interface.X.production.hex | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -27,7 +27,7 @@ typedef struct Timer_        // timer structure | |||||||
| /*----------------------------------------------------------------------------*/ | /*----------------------------------------------------------------------------*/ | ||||||
| /* depending on usage, change MAXTIMER and MAXEVENT                           */ | /* depending on usage, change MAXTIMER and MAXEVENT                           */ | ||||||
| /*----------------------------------------------------------------------------*/ | /*----------------------------------------------------------------------------*/ | ||||||
| #define MAXTIMER 8          // number of timers in our system | #define MAXTIMER 15          // number of timers in our system | ||||||
| #define MAXEVENT 20         // number of events in our system  | #define MAXEVENT 20         // number of events in our system  | ||||||
|  |  | ||||||
| #define NULLTIMER 0         // no value for time | #define NULLTIMER 0         // no value for time | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								UML/alive.pdf
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								UML/alive.pdf
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -119,13 +119,13 @@ m1=evPoll\n[isAlive]</panel_attributes> | |||||||
|     <id>Relation</id> |     <id>Relation</id> | ||||||
|     <coordinates> |     <coordinates> | ||||||
|       <x>224</x> |       <x>224</x> | ||||||
|       <y>392</y> |       <y>252</y> | ||||||
|       <w>336</w> |       <w>378</w> | ||||||
|       <h>560</h> |       <h>700</h> | ||||||
|     </coordinates> |     </coordinates> | ||||||
|     <panel_attributes>lt=-> |     <panel_attributes>lt=-> | ||||||
| m1=evBorn</panel_attributes> | m1=evResurrect</panel_attributes> | ||||||
|     <additional_attributes>180.0;340.0;180.0;380.0;10.0;380.0;10.0;10.0;90.0;10.0</additional_attributes> |     <additional_attributes>180.0;440.0;180.0;480.0;10.0;480.0;10.0;10.0;90.0;10.0</additional_attributes> | ||||||
|   </element> |   </element> | ||||||
|   <element> |   <element> | ||||||
|     <id>Relation</id> |     <id>Relation</id> | ||||||
|   | |||||||
| @@ -1,13 +1,13 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||||
| <diagram program="umlet" version="15.0.0"> | <diagram program="umlet" version="15.0.0"> | ||||||
|   <zoom_level>7</zoom_level> |   <zoom_level>10</zoom_level> | ||||||
|   <element> |   <element> | ||||||
|     <id>UMLClass</id> |     <id>UMLClass</id> | ||||||
|     <coordinates> |     <coordinates> | ||||||
|       <x>105</x> |       <x>80</x> | ||||||
|       <y>77</y> |       <y>100</y> | ||||||
|       <w>301</w> |       <w>430</w> | ||||||
|       <h>126</h> |       <h>180</h> | ||||||
|     </coordinates> |     </coordinates> | ||||||
|     <panel_attributes>CAN_INTERFACE |     <panel_attributes>CAN_INTERFACE | ||||||
| -- | -- | ||||||
| @@ -28,10 +28,10 @@ CAN_setSender(idSender: uint8_t): void</panel_attributes> | |||||||
|   <element> |   <element> | ||||||
|     <id>UMLClass</id> |     <id>UMLClass</id> | ||||||
|     <coordinates> |     <coordinates> | ||||||
|       <x>315</x> |       <x>0</x> | ||||||
|       <y>350</y> |       <y>390</y> | ||||||
|       <w>301</w> |       <w>430</w> | ||||||
|       <h>126</h> |       <h>180</h> | ||||||
|     </coordinates> |     </coordinates> | ||||||
|     <panel_attributes>JOYSTICK |     <panel_attributes>JOYSTICK | ||||||
| -- | -- | ||||||
| @@ -51,10 +51,33 @@ CAN_setSender(idSender: uint8_t): void</panel_attributes> | |||||||
|   <element> |   <element> | ||||||
|     <id>UMLClass</id> |     <id>UMLClass</id> | ||||||
|     <coordinates> |     <coordinates> | ||||||
|       <x>812</x> |       <x>580</x> | ||||||
|       <y>154</y> |       <y>370</y> | ||||||
|       <w>322</w> |       <w>490</w> | ||||||
|       <h>504</h> |       <h>210</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>MEMORY_CST | ||||||
|  | -- | ||||||
|  | +CM_processIncome(idSender: uint8_t, idMsg: uint8_t, data: uint32_t): void | ||||||
|  | +CM_CONTROLLER_ALIVE(p: void*): void | ||||||
|  | +CM_JOY_SETUP(p: void*): void | ||||||
|  | +CM_DISPLAY_SETUP(p: void*): void | ||||||
|  | +CM_DISPLAY_SPEED(p: void*): void | ||||||
|  | +CM_DISPLAY_DIRECTION(p: void*): void | ||||||
|  | +CM_DRIVE_SETUP(p: void*): void | ||||||
|  | +CM_DRIVE_POWER(p: void*): void | ||||||
|  | +CM_STEERING_SETUP(p: void*): void | ||||||
|  | +CM_STEERING_SET(p: void*): void | ||||||
|  | +CM_SUPPLY_SETUP(p: void*): void</panel_attributes> | ||||||
|  |     <additional_attributes/> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>UMLClass</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>1140</x> | ||||||
|  |       <y>40</y> | ||||||
|  |       <w>460</w> | ||||||
|  |       <h>720</h> | ||||||
|     </coordinates> |     </coordinates> | ||||||
|     <panel_attributes>MEMORY_CST |     <panel_attributes>MEMORY_CST | ||||||
| -- | -- | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								UML/drive.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								UML/drive.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										137
									
								
								UML/drive.uxf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								UML/drive.uxf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,137 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||||
|  | <diagram program="umlet" version="15.0.0"> | ||||||
|  |   <zoom_level>15</zoom_level> | ||||||
|  |   <element> | ||||||
|  |     <id>Relation</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>660</x> | ||||||
|  |       <y>90</y> | ||||||
|  |       <w>210</w> | ||||||
|  |       <h>120</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>lt=-> | ||||||
|  | evInit | ||||||
|  | /startAliveChecker | ||||||
|  | </panel_attributes> | ||||||
|  |     <additional_attributes>10.0;10.0;10.0;60.0</additional_attributes> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>UMLSpecialState</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>660</x> | ||||||
|  |       <y>75</y> | ||||||
|  |       <w>30</w> | ||||||
|  |       <h>30</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>type=initial</panel_attributes> | ||||||
|  |     <additional_attributes/> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>UMLState</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>540</x> | ||||||
|  |       <y>405</y> | ||||||
|  |       <w>270</w> | ||||||
|  |       <h>105</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>RUN | ||||||
|  | -- | ||||||
|  | /entry: LED ON | ||||||
|  | -- | ||||||
|  | emitPollTorqueEv</panel_attributes> | ||||||
|  |     <additional_attributes/> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>Relation</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>735</x> | ||||||
|  |       <y>450</y> | ||||||
|  |       <w>195</w> | ||||||
|  |       <h>270</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>lt=-> | ||||||
|  | m1= evPollTorque\n/sendTorque | ||||||
|  | </panel_attributes> | ||||||
|  |     <additional_attributes>10.0;100.0;10.0;160.0;110.0;160.0;110.0;10.0;50.0;10.0</additional_attributes> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>UMLState</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>495</x> | ||||||
|  |       <y>180</y> | ||||||
|  |       <w>360</w> | ||||||
|  |       <h>135</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>WAIT | ||||||
|  | -- | ||||||
|  | ALIVE_emitBorn(ALjoy(), 0, 0); | ||||||
|  | ALIVE_emitReady(ALjoy(), 100, 0); | ||||||
|  | setAliveTime</panel_attributes> | ||||||
|  |     <additional_attributes/> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>Relation</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>660</x> | ||||||
|  |       <y>300</y> | ||||||
|  |       <w>120</w> | ||||||
|  |       <h>135</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>lt=-> | ||||||
|  | m1=evStart\n(onWait) | ||||||
|  | </panel_attributes> | ||||||
|  |     <additional_attributes>10.0;10.0;10.0;70.0</additional_attributes> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>Relation</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>735</x> | ||||||
|  |       <y>450</y> | ||||||
|  |       <w>195</w> | ||||||
|  |       <h>180</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>lt=-> | ||||||
|  | m1= evPollSpeed\n/sendSpeed | ||||||
|  | </panel_attributes> | ||||||
|  |     <additional_attributes>10.0;40.0;10.0;100.0;110.0;100.0;110.0;10.0;50.0;10.0</additional_attributes> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>Relation</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>390</x> | ||||||
|  |       <y>240</y> | ||||||
|  |       <w>345</w> | ||||||
|  |       <h>555</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>lt=-> | ||||||
|  | m1= evResurrect\n(onBorn) | ||||||
|  | </panel_attributes> | ||||||
|  |     <additional_attributes>130.0;300.0;130.0;350.0;10.0;350.0;10.0;10.0;70.0;10.0</additional_attributes> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>UMLState</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>450</x> | ||||||
|  |       <y>600</y> | ||||||
|  |       <w>270</w> | ||||||
|  |       <h>90</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>DEAD | ||||||
|  | -- | ||||||
|  | /entry: LED OFF</panel_attributes> | ||||||
|  |     <additional_attributes/> | ||||||
|  |   </element> | ||||||
|  |   <element> | ||||||
|  |     <id>Relation</id> | ||||||
|  |     <coordinates> | ||||||
|  |       <x>570</x> | ||||||
|  |       <y>495</y> | ||||||
|  |       <w>135</w> | ||||||
|  |       <h>135</h> | ||||||
|  |     </coordinates> | ||||||
|  |     <panel_attributes>lt=-> | ||||||
|  | m1=evStop\n(onDead) | ||||||
|  | </panel_attributes> | ||||||
|  |     <additional_attributes>10.0;10.0;10.0;70.0</additional_attributes> | ||||||
|  |   </element> | ||||||
|  | </diagram> | ||||||
| @@ -9,7 +9,7 @@ | |||||||
|     <IsLogFilterLINEnabled>FALSE</IsLogFilterLINEnabled> |     <IsLogFilterLINEnabled>FALSE</IsLogFilterLINEnabled> | ||||||
|     <IsLoggingEnabled>FALSE</IsLoggingEnabled> |     <IsLoggingEnabled>FALSE</IsLoggingEnabled> | ||||||
|     <IsMsgIntepretationEnabled>TRUE</IsMsgIntepretationEnabled> |     <IsMsgIntepretationEnabled>TRUE</IsMsgIntepretationEnabled> | ||||||
|     <IsOverWriteEnabled>FALSE</IsOverWriteEnabled> |     <IsOverWriteEnabled>TRUE</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>SHOWNORMAL</WindowPlacement> |       <WindowPlacement>HIDE</WindowPlacement> | ||||||
|       <Top>655</Top> |       <Top>655</Top> | ||||||
|       <Left>0</Left> |       <Left>0</Left> | ||||||
|       <Bottom>874</Bottom> |       <Bottom>874</Bottom> | ||||||
| @@ -43,33 +43,19 @@ | |||||||
|           <IsVisible>1</IsVisible> |           <IsVisible>1</IsVisible> | ||||||
|         </COLUMN> |         </COLUMN> | ||||||
|       </CAN_Statistics> |       </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> |       <Window_Position> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> | ||||||
|         <Top>388</Top> |         <Top>517</Top> | ||||||
|         <Left>612</Left> |         <Left>489</Left> | ||||||
|         <Bottom>1002</Bottom> |         <Bottom>1014</Bottom> | ||||||
|         <Right>1034</Right> |         <Right>911</Right> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|     </Bus_Statistics> |     </Bus_Statistics> | ||||||
|     <J1939_Database_Files/> |     <J1939_Database_Files/> | ||||||
|     <CAN_DIL_Section> |     <CAN_DIL_Section> | ||||||
|       <DriverName>MHS Tiny-CAN</DriverName> |       <DriverName>MHS Tiny-CAN</DriverName> | ||||||
|       <ControllerMode>Bus Off</ControllerMode> |       <ControllerMode>Unknown</ControllerMode> | ||||||
|       <ControllerSettings> |       <ControllerSettings> | ||||||
|         <Channel> |         <Channel> | ||||||
|           <BaudRate>250</BaudRate> |           <BaudRate>250</BaudRate> | ||||||
| @@ -124,50 +110,6 @@ | |||||||
|       </ControllerSettings> |       </ControllerSettings> | ||||||
|     </CAN_DIL_Section> |     </CAN_DIL_Section> | ||||||
|     <CAN_Filters> |     <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> |       <Filter> | ||||||
|         <Name>display</Name> |         <Name>display</Name> | ||||||
|         <Type>PASS</Type> |         <Type>PASS</Type> | ||||||
| @@ -175,7 +117,7 @@ | |||||||
|           <IdFrom>306</IdFrom> |           <IdFrom>306</IdFrom> | ||||||
|           <IdTo>306</IdTo> |           <IdTo>306</IdTo> | ||||||
|           <Direction>ALL</Direction> |           <Direction>ALL</Direction> | ||||||
|           <IDType>STD</IDType> |           <IDType>ALL</IDType> | ||||||
|           <MsgType>ALL</MsgType> |           <MsgType>ALL</MsgType> | ||||||
|           <Channel>0</Channel> |           <Channel>0</Channel> | ||||||
|         </FilterMessage> |         </FilterMessage> | ||||||
| @@ -187,6 +129,14 @@ | |||||||
|           <MsgType>ALL</MsgType> |           <MsgType>ALL</MsgType> | ||||||
|           <Channel>0</Channel> |           <Channel>0</Channel> | ||||||
|         </FilterMessage> |         </FilterMessage> | ||||||
|  |         <FilterMessage> | ||||||
|  |           <IdFrom>48</IdFrom> | ||||||
|  |           <IdTo>48</IdTo> | ||||||
|  |           <Direction>ALL</Direction> | ||||||
|  |           <IDType>ALL</IDType> | ||||||
|  |           <MsgType>ALL</MsgType> | ||||||
|  |           <Channel>0</Channel> | ||||||
|  |         </FilterMessage> | ||||||
|         <FilterMessage> |         <FilterMessage> | ||||||
|           <IdFrom>799</IdFrom> |           <IdFrom>799</IdFrom> | ||||||
|           <IdTo>799</IdTo> |           <IdTo>799</IdTo> | ||||||
| @@ -239,6 +189,78 @@ | |||||||
|           <MsgType>ALL</MsgType> |           <MsgType>ALL</MsgType> | ||||||
|           <Channel>0</Channel> |           <Channel>0</Channel> | ||||||
|         </FilterMessage> |         </FilterMessage> | ||||||
|  |         <FilterMessage> | ||||||
|  |           <IdFrom>1040</IdFrom> | ||||||
|  |           <IdTo>1040</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> | ||||||
|  |       </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>noAlive</Name> | ||||||
|  |         <Type>STOP</Type> | ||||||
|  |         <FilterMessage> | ||||||
|  |           <IdFrom>271</IdFrom> | ||||||
|  |           <IdTo>271</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> | ||||||
|  |         <FilterMessage> | ||||||
|  |           <IdFrom>799</IdFrom> | ||||||
|  |           <IdTo>799</IdTo> | ||||||
|  |           <Direction>ALL</Direction> | ||||||
|  |           <IDType>ALL</IDType> | ||||||
|  |           <MsgType>ALL</MsgType> | ||||||
|  |           <Channel>0</Channel> | ||||||
|  |         </FilterMessage> | ||||||
|         <FilterMessage> |         <FilterMessage> | ||||||
|           <IdFrom>1055</IdFrom> |           <IdFrom>1055</IdFrom> | ||||||
|           <IdTo>1055</IdTo> |           <IdTo>1055</IdTo> | ||||||
| @@ -248,8 +270,8 @@ | |||||||
|           <Channel>0</Channel> |           <Channel>0</Channel> | ||||||
|         </FilterMessage> |         </FilterMessage> | ||||||
|         <FilterMessage> |         <FilterMessage> | ||||||
|           <IdFrom>1040</IdFrom> |           <IdFrom>1311</IdFrom> | ||||||
|           <IdTo>1040</IdTo> |           <IdTo>1311</IdTo> | ||||||
|           <Direction>ALL</Direction> |           <Direction>ALL</Direction> | ||||||
|           <IDType>ALL</IDType> |           <IDType>ALL</IDType> | ||||||
|           <MsgType>ALL</MsgType> |           <MsgType>ALL</MsgType> | ||||||
| @@ -300,105 +322,31 @@ | |||||||
|           <Channel>0</Channel> |           <Channel>0</Channel> | ||||||
|         </FilterMessage> |         </FilterMessage> | ||||||
|       </Filter> |       </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_Filters> | ||||||
|     <CAN_Signal_Watch> |     <CAN_Signal_Watch> | ||||||
|       <Message> |       <Message> | ||||||
|         <Id>337</Id> |         <Id>529</Id> | ||||||
|         <Signal>SteeringPosition</Signal> |         <Signal>posY</Signal> | ||||||
|  |         <Signal>button</Signal> | ||||||
|  |         <Signal>posX</Signal> | ||||||
|  |       </Message> | ||||||
|  |       <Message> | ||||||
|  |         <Id>1040</Id> | ||||||
|  |         <Signal>Speed</Signal> | ||||||
|  |       </Message> | ||||||
|  |       <Message> | ||||||
|  |         <Id>321</Id> | ||||||
|  |         <Signal>Power</Signal> | ||||||
|  |       </Message> | ||||||
|  |       <Message> | ||||||
|  |         <Id>306</Id> | ||||||
|  |         <Signal>Vehiclespeed</Signal> | ||||||
|       </Message> |       </Message> | ||||||
|       <Message> |       <Message> | ||||||
|         <Id>336</Id> |         <Id>336</Id> | ||||||
|         <Signal>SET_CENTER</Signal> |  | ||||||
|         <Signal>HOMING</Signal> |         <Signal>HOMING</Signal> | ||||||
|         <Signal>RESET</Signal> |         <Signal>RESET</Signal> | ||||||
|  |         <Signal>SET_CENTER</Signal> | ||||||
|         <Signal>ALIVE_TIME</Signal> |         <Signal>ALIVE_TIME</Signal> | ||||||
|       </Message> |       </Message> | ||||||
|       <Message> |       <Message> | ||||||
| @@ -412,15 +360,15 @@ | |||||||
|       <Window_Position> |       <Window_Position> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>HIDE</WindowPlacement> |         <WindowPlacement>HIDE</WindowPlacement> | ||||||
|         <Top>157</Top> |         <Top>165</Top> | ||||||
|         <Left>596</Left> |         <Left>599</Left> | ||||||
|         <Right>1086</Right> |         <Right>1089</Right> | ||||||
|         <Bottom>387</Bottom> |         <Bottom>452</Bottom> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <COLUMN_WIDTH> |       <COLUMN_WIDTH> | ||||||
|         <MESSAGE_COLUMN>94</MESSAGE_COLUMN> |         <MESSAGE_COLUMN>147</MESSAGE_COLUMN> | ||||||
|         <Raw_Val_Column>178</Raw_Val_Column> |         <Raw_Val_Column>94</Raw_Val_Column> | ||||||
|         <Physical_Val_Column>189</Physical_Val_Column> |         <Physical_Val_Column>139</Physical_Val_Column> | ||||||
|         <Signal_Column>94</Signal_Column> |         <Signal_Column>94</Signal_Column> | ||||||
|       </COLUMN_WIDTH> |       </COLUMN_WIDTH> | ||||||
|     </CAN_Signal_Watch> |     </CAN_Signal_Watch> | ||||||
| @@ -434,10 +382,10 @@ | |||||||
|         <Bottom>300</Bottom> |         <Bottom>300</Bottom> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <COLUMN_WIDTH> |       <COLUMN_WIDTH> | ||||||
|         <MESSAGE_COLUMN>87</MESSAGE_COLUMN> |         <MESSAGE_COLUMN>94</MESSAGE_COLUMN> | ||||||
|         <Raw_Val_Column>87</Raw_Val_Column> |         <Raw_Val_Column>94</Raw_Val_Column> | ||||||
|         <Physical_Val_Column>174</Physical_Val_Column> |         <Physical_Val_Column>189</Physical_Val_Column> | ||||||
|         <Signal_Column>87</Signal_Column> |         <Signal_Column>94</Signal_Column> | ||||||
|       </COLUMN_WIDTH> |       </COLUMN_WIDTH> | ||||||
|     </J1939_Signal_Watch> |     </J1939_Signal_Watch> | ||||||
|     <LIN_Signal_Watch> |     <LIN_Signal_Watch> | ||||||
| @@ -450,10 +398,10 @@ | |||||||
|         <Bottom>300</Bottom> |         <Bottom>300</Bottom> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <COLUMN_WIDTH> |       <COLUMN_WIDTH> | ||||||
|         <MESSAGE_COLUMN>87</MESSAGE_COLUMN> |         <MESSAGE_COLUMN>94</MESSAGE_COLUMN> | ||||||
|         <Raw_Val_Column>87</Raw_Val_Column> |         <Raw_Val_Column>94</Raw_Val_Column> | ||||||
|         <Physical_Val_Column>174</Physical_Val_Column> |         <Physical_Val_Column>189</Physical_Val_Column> | ||||||
|         <Signal_Column>87</Signal_Column> |         <Signal_Column>94</Signal_Column> | ||||||
|       </COLUMN_WIDTH> |       </COLUMN_WIDTH> | ||||||
|     </LIN_Signal_Watch> |     </LIN_Signal_Watch> | ||||||
|     <CAN_Signal_Graph> |     <CAN_Signal_Graph> | ||||||
| @@ -472,28 +420,42 @@ | |||||||
|         <Show_Grid>TRUE</Show_Grid> |         <Show_Grid>TRUE</Show_Grid> | ||||||
|         <Display_Type>NORMAL</Display_Type> |         <Display_Type>NORMAL</Display_Type> | ||||||
|       </GRAPH_PARAMETERS> |       </GRAPH_PARAMETERS> | ||||||
|  |       <GRAPH_ELEMENT> | ||||||
|  |         <Message_ID>321</Message_ID> | ||||||
|  |         <Message_Name>DRIVE_POWER</Message_Name> | ||||||
|  |         <Frame_Format/> | ||||||
|  |         <Element_Name>Power</Element_Name> | ||||||
|  |         <Value_Type>Physical</Value_Type> | ||||||
|  |         <Line_Type>SOLID</Line_Type> | ||||||
|  |         <Line_Color>16711680</Line_Color> | ||||||
|  |         <Point_Type>1</Point_Type> | ||||||
|  |         <Point_Color>8388736</Point_Color> | ||||||
|  |         <Visibility>TRUE</Visibility> | ||||||
|  |         <Enable>TRUE</Enable> | ||||||
|  |         <Display_Type>NORMAL</Display_Type> | ||||||
|  |       </GRAPH_ELEMENT> | ||||||
|       <Window_Position> |       <Window_Position> | ||||||
|         <Visibility>HIDE</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <Window_Position>HIDE</Window_Position> |         <Window_Position>SHOWNORMAL</Window_Position> | ||||||
|         <Top>-1</Top> |         <Top>291</Top> | ||||||
|         <Left>0</Left> |         <Left>205</Left> | ||||||
|         <Bottom>0</Bottom> |         <Bottom>957</Bottom> | ||||||
|         <Right>0</Right> |         <Right>1530</Right> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <Splitter_Window_Col_0> |       <Splitter_Window_Col_0> | ||||||
|         <CxIdeal>-1</CxIdeal> |         <CxIdeal>479</CxIdeal> | ||||||
|         <CxMin>0</CxMin> |         <CxMin>0</CxMin> | ||||||
|       </Splitter_Window_Col_0> |       </Splitter_Window_Col_0> | ||||||
|       <Splitter_Window_Col_1> |       <Splitter_Window_Col_1> | ||||||
|         <CxIdeal>0</CxIdeal> |         <CxIdeal>819</CxIdeal> | ||||||
|         <CxMin>0</CxMin> |         <CxMin>0</CxMin> | ||||||
|       </Splitter_Window_Col_1> |       </Splitter_Window_Col_1> | ||||||
|       <Splitter_Window_Row_0> |       <Splitter_Window_Row_0> | ||||||
|         <CxIdeal>0</CxIdeal> |         <CxIdeal>308</CxIdeal> | ||||||
|         <CxMin>0</CxMin> |         <CxMin>0</CxMin> | ||||||
|       </Splitter_Window_Row_0> |       </Splitter_Window_Row_0> | ||||||
|       <Splitter_Window_Row_1> |       <Splitter_Window_Row_1> | ||||||
|         <CxIdeal>0</CxIdeal> |         <CxIdeal>308</CxIdeal> | ||||||
|         <CxMin>0</CxMin> |         <CxMin>0</CxMin> | ||||||
|       </Splitter_Window_Row_1> |       </Splitter_Window_Row_1> | ||||||
|     </CAN_Signal_Graph> |     </CAN_Signal_Graph> | ||||||
| @@ -528,26 +490,29 @@ | |||||||
|     </J1939_Simulated_Systems> |     </J1939_Simulated_Systems> | ||||||
|     <CAN_Replay/> |     <CAN_Replay/> | ||||||
|     <CAN_Message_Window> |     <CAN_Message_Window> | ||||||
|       <Append_Buffer_Size>2025155376</Append_Buffer_Size> |       <Append_Buffer_Size>1489464112</Append_Buffer_Size> | ||||||
|       <Overwrite_Buffer_Size>24800128</Overwrite_Buffer_Size> |       <Overwrite_Buffer_Size>26186104</Overwrite_Buffer_Size> | ||||||
|       <Display_Update_Time>2025155348</Display_Update_Time> |       <Display_Update_Time>1489464084</Display_Update_Time> | ||||||
|       <Filter IsEnabled="0">notAlive</Filter> |       <Filter IsEnabled="0">display</Filter> | ||||||
|  |       <Filter IsEnabled="0">drive</Filter> | ||||||
|  |       <Filter IsEnabled="0">joy</Filter> | ||||||
|  |       <Filter IsEnabled="1">noAlive</Filter> | ||||||
|       <Filter IsEnabled="0">steering</Filter> |       <Filter IsEnabled="0">steering</Filter> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID/> |         <ID/> | ||||||
|         <Order>1</Order> |         <Order>5</Order> | ||||||
|         <IsVisible>0</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>0</Width> |         <Width>19</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>Time</ID> |         <ID>Time</ID> | ||||||
|         <Order>5</Order> |         <Order>4</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>129</Width> |         <Width>129</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <COLUMN> |       <COLUMN> | ||||||
|         <ID>Tx/Rx</ID> |         <ID>Tx/Rx</ID> | ||||||
|         <Order>4</Order> |         <Order>1</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>53</Width> |         <Width>53</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
| @@ -585,15 +550,15 @@ | |||||||
|         <ID>Data Byte(s)</ID> |         <ID>Data Byte(s)</ID> | ||||||
|         <Order>9</Order> |         <Order>9</Order> | ||||||
|         <IsVisible>1</IsVisible> |         <IsVisible>1</IsVisible> | ||||||
|         <Width>158</Width> |         <Width>139</Width> | ||||||
|       </COLUMN> |       </COLUMN> | ||||||
|       <IsHex>1</IsHex> |       <IsHex>1</IsHex> | ||||||
|       <IsAppend>1</IsAppend> |       <IsAppend>0</IsAppend> | ||||||
|       <IsInterpret>0</IsInterpret> |       <IsInterpret>1</IsInterpret> | ||||||
|       <Time_Mode>SYSTEM</Time_Mode> |       <Time_Mode>SYSTEM</Time_Mode> | ||||||
|       <Window_Position> |       <Window_Position> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>SETMINPOSITION</WindowPlacement> | ||||||
|         <Top>0</Top> |         <Top>0</Top> | ||||||
|         <Left>0</Left> |         <Left>0</Left> | ||||||
|         <Bottom>810</Bottom> |         <Bottom>810</Bottom> | ||||||
| @@ -688,12 +653,12 @@ | |||||||
|         <Width>720</Width> |         <Width>720</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> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>SETMINPOSITION</WindowPlacement> | ||||||
|         <Top>0</Top> |         <Top>0</Top> | ||||||
|         <Left>0</Left> |         <Left>0</Left> | ||||||
|         <Bottom>549</Bottom> |         <Bottom>549</Bottom> | ||||||
| @@ -773,12 +738,12 @@ | |||||||
|         <Width>734</Width> |         <Width>734</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> | ||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement> |         <WindowPlacement>SETMINPOSITION</WindowPlacement> | ||||||
|         <Top>0</Top> |         <Top>0</Top> | ||||||
|         <Left>0</Left> |         <Left>0</Left> | ||||||
|         <Bottom>549</Bottom> |         <Bottom>549</Bottom> | ||||||
| @@ -798,11 +763,83 @@ | |||||||
|         <Visibility>SHOWNORMAL</Visibility> |         <Visibility>SHOWNORMAL</Visibility> | ||||||
|         <WindowPlacement>SETMINPOSITION</WindowPlacement> |         <WindowPlacement>SETMINPOSITION</WindowPlacement> | ||||||
|         <Top>3</Top> |         <Top>3</Top> | ||||||
|         <Left>1055</Left> |         <Left>1052</Left> | ||||||
|         <Bottom>658</Bottom> |         <Bottom>658</Bottom> | ||||||
|         <Right>1915</Right> |         <Right>1912</Right> | ||||||
|       </Window_Position> |       </Window_Position> | ||||||
|       <Message_List> |       <Message_List> | ||||||
|  |         <Message> | ||||||
|  |           <Channel>1</Channel> | ||||||
|  |           <Message_ID>16</Message_ID> | ||||||
|  |           <IsExtended>FALSE</IsExtended> | ||||||
|  |           <IsRtr>FALSE</IsRtr> | ||||||
|  |           <DLC>4</DLC> | ||||||
|  |           <DataBytes>0,0,0,10</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>17</Message_ID> | ||||||
|  |           <IsExtended>FALSE</IsExtended> | ||||||
|  |           <IsRtr>FALSE</IsRtr> | ||||||
|  |           <DLC>4</DLC> | ||||||
|  |           <DataBytes>0,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>18</Message_ID> | ||||||
|  |           <IsExtended>FALSE</IsExtended> | ||||||
|  |           <IsRtr>FALSE</IsRtr> | ||||||
|  |           <DLC>4</DLC> | ||||||
|  |           <DataBytes>0,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>19</Message_ID> | ||||||
|  |           <IsExtended>FALSE</IsExtended> | ||||||
|  |           <IsRtr>FALSE</IsRtr> | ||||||
|  |           <DLC>4</DLC> | ||||||
|  |           <DataBytes>0,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>20</Message_ID> | ||||||
|  |           <IsExtended>FALSE</IsExtended> | ||||||
|  |           <IsRtr>FALSE</IsRtr> | ||||||
|  |           <DLC>2</DLC> | ||||||
|  |           <DataBytes>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>21</Message_ID> | ||||||
|  |           <IsExtended>FALSE</IsExtended> | ||||||
|  |           <IsRtr>FALSE</IsRtr> | ||||||
|  |           <DLC>4</DLC> | ||||||
|  |           <DataBytes>0,0,0,0</DataBytes> | ||||||
|  |           <Repetion>10</Repetion> | ||||||
|  |           <Repetition_Enabled>FALSE</Repetition_Enabled> | ||||||
|  |           <Key_Value>a</Key_Value> | ||||||
|  |           <Key_Enabled>FALSE</Key_Enabled> | ||||||
|  |         </Message> | ||||||
|         <Message> |         <Message> | ||||||
|           <Channel>1</Channel> |           <Channel>1</Channel> | ||||||
|           <Message_ID>22</Message_ID> |           <Message_ID>22</Message_ID> | ||||||
| @@ -815,66 +852,6 @@ | |||||||
|           <Key_Value>a</Key_Value> |           <Key_Value>a</Key_Value> | ||||||
|           <Key_Enabled>FALSE</Key_Enabled> |           <Key_Enabled>FALSE</Key_Enabled> | ||||||
|         </Message> |         </Message> | ||||||
|         <Message> |  | ||||||
|           <Channel>1</Channel> |  | ||||||
|           <Message_ID>16</Message_ID> |  | ||||||
|           <IsExtended>FALSE</IsExtended> |  | ||||||
|           <IsRtr>FALSE</IsRtr> |  | ||||||
|           <DLC>4</DLC> |  | ||||||
|           <DataBytes>0,0,0,50</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>306</Message_ID> |  | ||||||
|           <IsExtended>FALSE</IsExtended> |  | ||||||
|           <IsRtr>FALSE</IsRtr> |  | ||||||
|           <DLC>2</DLC> |  | ||||||
|           <DataBytes>0,100</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>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> |  | ||||||
|           <Key_Enabled>FALSE</Key_Enabled> |  | ||||||
|         </Message> |  | ||||||
|       </Message_List> |       </Message_List> | ||||||
|     </CAN_Tx_Window> |     </CAN_Tx_Window> | ||||||
|     <CAN_Wave_Form_Genarator> |     <CAN_Wave_Form_Genarator> | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ | |||||||
|  |  | ||||||
| [BUSMASTER_VERSION] [3.2.2] | [BUSMASTER_VERSION] [3.2.2] | ||||||
|  |  | ||||||
| [NUMBER_OF_MESSAGES] 26 | [NUMBER_OF_MESSAGES] 29 | ||||||
|  |  | ||||||
| [START_MSG] JOY_MEASURE,529,3,3,1,S | [START_MSG] JOY_MEASURE,529,3,3,1,S | ||||||
| [START_SIGNALS] posX,8,1,0,I,127,-128,1,0.000000,1.000000,%, | [START_SIGNALS] posX,8,1,0,I,127,-128,1,0.000000,1.000000,%, | ||||||
| @@ -72,7 +72,7 @@ | |||||||
| [VALUE_DESCRIPTION] No alive message,0 | [VALUE_DESCRIPTION] No alive message,0 | ||||||
| [END_MSG] | [END_MSG] | ||||||
|  |  | ||||||
| [START_MSG] DISPLAY_SETUP,48,4,1,1,S | [START_MSG] DISPLAY_SETUP,304,4,1,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, | ||||||
| [END_MSG] | [END_MSG] | ||||||
|  |  | ||||||
| @@ -159,3 +159,21 @@ | |||||||
| [START_SIGNALS] DeltaY,8,3,0,U,255,0,1,0.000000,1.000000,val, | [START_SIGNALS] DeltaY,8,3,0,U,255,0,1,0.000000,1.000000,val, | ||||||
| [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, | ||||||
| [END_MSG] | [END_MSG] | ||||||
|  |  | ||||||
|  | [START_MSG] CONTROL_SETUP_DRIVE,23,4,3,1,S | ||||||
|  | [START_SIGNALS] driveAliveTime,8,1,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [START_SIGNALS] driveSpeedTime,8,2,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [START_SIGNALS] driveStopTime,8,3,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [END_MSG] | ||||||
|  |  | ||||||
|  | [START_MSG] CONTROL_SETUP_PARAM_BATTERY,24,4,4,1,S | ||||||
|  | [START_SIGNALS] batteryVoltTime,8,1,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [START_SIGNALS] batteryCurentTime,8,2,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [START_SIGNALS] batteryEnergyTime,8,3,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [START_SIGNALS] batteryAliveTime,8,4,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [END_MSG] | ||||||
|  |  | ||||||
|  | [START_MSG] CONTROL_SETUP_PARAM,21,4,2,1,S | ||||||
|  | [START_SIGNALS] displayAliveTime,8,1,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [START_SIGNALS] steeringAliveTime,8,2,0,U,255,0,1,0.000000,10.000000,ms, | ||||||
|  | [END_MSG] | ||||||
		Reference in New Issue
	
	Block a user