Merge pull request #4 from SummerSchool2023-RED/feature/watchdog-alive
Feature/watchdog alive
This commit is contained in:
commit
4d025d7ac4
99
306-controller_interface.X/app/can_message.c
Normal file
99
306-controller_interface.X/app/can_message.c
Normal file
@ -0,0 +1,99 @@
|
||||
/**
|
||||
* @author Rémi Heredero
|
||||
* @version 1.0.0
|
||||
* @date August 2023
|
||||
* @file can_message.c
|
||||
*/
|
||||
|
||||
#include "../middleware/can_interface.h"
|
||||
#include "car.h"
|
||||
#include "../app/factory/factory.h"
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
uint8_t byte0;
|
||||
uint8_t byte1;
|
||||
uint8_t byte2;
|
||||
uint8_t byte3;
|
||||
} separate;
|
||||
struct {
|
||||
uint32_t bytes;
|
||||
} full;
|
||||
} BYTES_4;
|
||||
|
||||
void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
|
||||
switch(idSender){
|
||||
case 0: // Broadcast / Debug
|
||||
break;
|
||||
|
||||
case 2: // Joystick
|
||||
if(idMsg == 0x1) { // JOY_MESURE
|
||||
|
||||
}
|
||||
|
||||
if(idMsg == 0xF) { // JOY_ALIVE
|
||||
ALIVE_CHECKER_ISALIVE(ACjoy());
|
||||
}
|
||||
break;
|
||||
|
||||
case 3: // Display
|
||||
break;
|
||||
|
||||
case 4: // Drive
|
||||
break;
|
||||
|
||||
case 5: // Steering
|
||||
break;
|
||||
|
||||
case 6: // Supply
|
||||
break;
|
||||
|
||||
case 7: // Undefined
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CM_CONTROLLER_ALIVE(void* p) {
|
||||
CAN_Send(0x0, 0xF, 0);
|
||||
}
|
||||
|
||||
void CM_JOY_SETUP(void* p) {
|
||||
BYTES_4 joy;
|
||||
joy.separate.byte0 = CAR_CST.JOYSTICK_MODE;
|
||||
joy.separate.byte1 = CAR_CST.JOYSTICK_PARAM1;
|
||||
joy.separate.byte2 = CAR_CST.JOYSTICK_PARAM2;
|
||||
joy.separate.byte3 = CAR_CST.JOYSTICK_ALIVE_TIME;
|
||||
CAN_Send(2, 0, joy.full.bytes);
|
||||
|
||||
}
|
||||
void CM_DISPLAY_SETUP(void* p) {
|
||||
|
||||
}
|
||||
|
||||
void CM_DISPLAY_SPEED(void* p) {
|
||||
|
||||
}
|
||||
|
||||
void CM_DISPLAY_DIRECTION(void* p) {
|
||||
|
||||
}
|
||||
|
||||
void CM_DRIVE_SETUP(void* p) {
|
||||
|
||||
}
|
||||
|
||||
void CM_DRIVE_POWER(void* p) {
|
||||
|
||||
}
|
||||
|
||||
void CM_STEERING_SETUP(void* p) {
|
||||
|
||||
}
|
||||
|
||||
void CM_STEERING_SET(void* p) {
|
||||
|
||||
}
|
||||
|
||||
void CM_SETUP_CONTROL(void* p) {
|
||||
|
||||
}
|
40
306-controller_interface.X/app/can_message.h
Normal file
40
306-controller_interface.X/app/can_message.h
Normal file
@ -0,0 +1,40 @@
|
||||
/**
|
||||
* @author Rémi Heredero
|
||||
* @version 1.0.0
|
||||
* @date August 2023
|
||||
* @file can_message.h
|
||||
*/
|
||||
|
||||
#ifndef CAN_MESSAGE_H
|
||||
#define CAN_MESSAGE_H
|
||||
|
||||
|
||||
/*
|
||||
S R M
|
||||
1 0 F CONTROL_ALIVE - - - -
|
||||
1 2 0 JOY_SETUP Mode Param1 Param2 aliveTime
|
||||
1 3 0 DISPLAY_SETUP reset - - aliveTime
|
||||
1 3 2 DISPLAY_SPEED valH valL - -
|
||||
1 3 3 DISPLAY_DIRECTION direction - - -
|
||||
1 4 0 DRIVE_SETUP Reset/init speedTime stopTime aliveTime
|
||||
1 4 1 DRIVE_POWER valH valL - -
|
||||
1 5 0 STEERING_SETUP Reset/init homing setCenter aliveTime
|
||||
1 5 1 STEERING_SET valHH valH valL valLL
|
||||
1 6 0 SETUP_CONTROL batteryVoltTime batteryCurrentTime batteryEnergyTime aliveTime
|
||||
*/
|
||||
|
||||
void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data);
|
||||
void CM_CONTROLLER_ALIVE(void* p);
|
||||
void CM_JOY_SETUP(void* p);
|
||||
void CM_DISPLAY_SETUP(void* p);
|
||||
void CM_DISPLAY_SPEED(void* p);
|
||||
void CM_DISPLAY_DIRECTION(void* p);
|
||||
void CM_DRIVE_SETUP(void* p);
|
||||
void CM_DRIVE_POWER(void* p);
|
||||
void CM_STEERING_SETUP(void* p);
|
||||
void CM_STEERING_SET(void* p);
|
||||
void CM_SETUP_CONTROL(void* p);
|
||||
|
||||
|
||||
#endif /* CAN_MESSAGE_H */
|
||||
|
@ -23,20 +23,23 @@
|
||||
/*******************
|
||||
* MEMORY ADRESSES *
|
||||
*******************/
|
||||
#define MEMADD_CONTROL_STEERING_MODE 0x00
|
||||
#define MEMADD_CONTROL_ALIVE_TIME 0x01
|
||||
#define MEMADD_CONTROL_SPEED_FACTOR 0x02
|
||||
#define MEMADD_CONTROL_POWER_FACTOR 0x06
|
||||
#define MEMADD_CONTROL_STEERING_FACTOR 0x0A
|
||||
#define MEMADD_CONTROL_MAX_SPEED_FW 0x0E
|
||||
#define MEMADD_CONTROL_MAX_SPEED_BW 0x0F
|
||||
#define MEMADD_JOYSTICK_ALIVE_TIME 0x10
|
||||
#define MEMADD_DISPLAY_ALIVE_TIME 0x11
|
||||
#define MEMADD_DRIVE_SPEED_TIME 0x12
|
||||
#define MEMADD_DRIVE_STOP_TIME 0x13
|
||||
#define MEMADD_DRIVE_ALIVE_TIME 0x14
|
||||
#define MEMADD_STEERING_ALIVE_TIME 0x15
|
||||
#define MEMADD_BATTERY_ALIVE_TIME 0x16
|
||||
#define MEMADD_CONTROL_STEERING_MODE 0x01
|
||||
#define MEMADD_CONTROL_ALIVE_TIME 0x02
|
||||
#define MEMADD_CONTROL_SPEED_FACTOR 0x03
|
||||
#define MEMADD_CONTROL_POWER_FACTOR 0x07
|
||||
#define MEMADD_CONTROL_STEERING_FACTOR 0x0B
|
||||
#define MEMADD_CONTROL_MAX_SPEED_FW 0x0F
|
||||
#define MEMADD_CONTROL_MAX_SPEED_BW 0x10
|
||||
#define MEMADD_JOYSTICK_MODE 0x11
|
||||
#define MEMADD_JOYSTICK_PARAM1 0x12
|
||||
#define MEMADD_JOYSTICK_PARAM2 0x13
|
||||
#define MEMADD_JOYSTICK_ALIVE_TIME 0x14
|
||||
#define MEMADD_DISPLAY_ALIVE_TIME 0x
|
||||
#define MEMADD_DRIVE_SPEED_TIME 0x
|
||||
#define MEMADD_DRIVE_STOP_TIME 0x
|
||||
#define MEMADD_DRIVE_ALIVE_TIME 0x
|
||||
#define MEMADD_STEERING_ALIVE_TIME 0x
|
||||
#define MEMADD_BATTERY_ALIVE_TIME 0x
|
||||
|
||||
typedef struct {
|
||||
uint8_t CONTROL_STEERING_MODE;
|
||||
@ -46,6 +49,10 @@ typedef struct {
|
||||
uint32_t CONTROL_STEERING_FACTOR;
|
||||
uint8_t CONTROL_MAX_SPEED_FW;
|
||||
uint8_t CONTROL_MAX_SPEED_BW;
|
||||
|
||||
uint8_t JOYSTICK_MODE;
|
||||
uint8_t JOYSTICK_PARAM1;
|
||||
uint8_t JOYSTICK_PARAM2;
|
||||
uint8_t JOYSTICK_ALIVE_TIME;
|
||||
uint8_t DISPLAY_ALIVE_TIME;
|
||||
uint8_t DRIVE_SPEED_TIME;
|
||||
|
@ -30,6 +30,14 @@ LED* l8() {
|
||||
return &theFactory.l8_;
|
||||
}
|
||||
|
||||
WATCHDOG* WDcontroller(){
|
||||
return &theFactory.WDcontroller_;
|
||||
}
|
||||
|
||||
ALIVE_CHECKER* ACjoy() {
|
||||
return &theFactory.ACjoy_;
|
||||
}
|
||||
|
||||
|
||||
//initialize all objects
|
||||
void Factory_init() {
|
||||
@ -54,24 +62,41 @@ void Factory_init() {
|
||||
CAN_init();
|
||||
CAN_setSender(1);
|
||||
LED_off(l1());
|
||||
}
|
||||
|
||||
void foo(uint8_t a, uint8_t b, uint32_t c){
|
||||
if(b){
|
||||
LED_on(l1());
|
||||
} else {
|
||||
LED_off(l1());
|
||||
}
|
||||
CAN_Send(a, b, c);
|
||||
// TODO init EPROM interface
|
||||
|
||||
// TODO init watchdog with EPROM CST
|
||||
WATCHDOG_init(WDcontroller());
|
||||
CAR_CST.CONTROL_ALIVE_TIME = 100;
|
||||
WATCHDOG_setTime(WDcontroller(), CAR_CST.CONTROL_ALIVE_TIME);
|
||||
|
||||
// TODO init ALIVE CHECKER with EPROM CST
|
||||
CAR_CST.JOYSTICK_MODE = 0;
|
||||
CAR_CST.JOYSTICK_PARAM1 = 100;
|
||||
CAR_CST.JOYSTICK_PARAM2 = 1;
|
||||
CAR_CST.JOYSTICK_ALIVE_TIME = 10;
|
||||
ALIVE_CHECKER_init(ACjoy());
|
||||
}
|
||||
|
||||
//connect objects if required
|
||||
void Factory_build() {
|
||||
ECAN_SetRXBnInterruptHandler(CAN_newMsg);
|
||||
CAN_onReceiveCan(foo);
|
||||
CAN_onReceiveCan(CM_processIncome);
|
||||
|
||||
WATCHDOG_onAlive(WDcontroller(), CM_CONTROLLER_ALIVE, NULL);
|
||||
ALIVE_CHECKER_onSetup(ACjoy(), CM_JOY_SETUP, NULL);
|
||||
ALIVE_CHECKER_setAliveTime(ACjoy(), CAR_CST.JOYSTICK_ALIVE_TIME);
|
||||
ALIVE_CHECKER_onBorn(ACjoy(), LED_on, l1());
|
||||
ALIVE_CHECKER_onDead(ACjoy(), LED_off, l1());
|
||||
|
||||
}
|
||||
|
||||
//start all state machines
|
||||
void Factory_start() {
|
||||
CAN_startBehaviour();
|
||||
WATCHDOG_startBehaviour(WDcontroller());
|
||||
ALIVE_CHECKER_startBehaviour(ACjoy());
|
||||
ALIVE_CHECKER_emitBorn(ACjoy(), 100, 0);
|
||||
ALIVE_CHECKER_emitReady(ACjoy(), 200, 0);
|
||||
|
||||
}
|
||||
|
@ -12,9 +12,13 @@
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "../car.h"
|
||||
#include "../can_message.h"
|
||||
#include "../../board/led/led.h"
|
||||
#include "../../board/button/button.h"
|
||||
#include "../../middleware/alive_checker.h"
|
||||
#include "../../middleware/can_interface.h"
|
||||
#include "../../middleware/watchdog.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
@ -27,6 +31,9 @@ typedef struct {
|
||||
LED l7_;
|
||||
LED l8_;
|
||||
|
||||
WATCHDOG WDcontroller_;
|
||||
ALIVE_CHECKER ACjoy_;
|
||||
|
||||
} Factory;
|
||||
|
||||
|
||||
@ -44,5 +51,8 @@ LED* l6();
|
||||
LED* l7();
|
||||
LED* l8();
|
||||
|
||||
WATCHDOG* WDcontroller();
|
||||
ALIVE_CHECKER* ACjoy();
|
||||
|
||||
|
||||
#endif
|
@ -56,6 +56,7 @@ bool ALIVE_CHECKER_processEvent(Event* ev) {
|
||||
} else {
|
||||
me->state = STAC_DEAD;
|
||||
}
|
||||
me->isAlive = false;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -101,7 +102,6 @@ bool ALIVE_CHECKER_processEvent(Event* ev) {
|
||||
break;
|
||||
|
||||
case STAC_WAIT:
|
||||
me->isAlive = false;
|
||||
if (me->wait.f != NULL) {
|
||||
me->wait.f(me->wait.p);
|
||||
}
|
||||
@ -168,7 +168,7 @@ void ALIVE_CHECKER_setAliveTime(ALIVE_CHECKER* me, uint8_t v) {
|
||||
}
|
||||
|
||||
void ALIVE_CHECKER_setIsAlive(ALIVE_CHECKER* me, bool v) {
|
||||
me->aliveTime = v;
|
||||
me->isAlive = v;
|
||||
}
|
||||
|
||||
void ALIVE_CHECKER_ISALIVE(ALIVE_CHECKER* me) {
|
||||
|
@ -92,13 +92,13 @@ bool CAN_processEvent(Event* ev) {
|
||||
canMsg.frame.idType = dSTANDARD_CAN_MSG_ID_2_0B; // standard
|
||||
canMsg.frame.dlc = 4; // 4 bytes to send
|
||||
canMsg.frame.rtr = 0; // no remote frame
|
||||
canMsg.frame.data3 = (uint8_t) data;
|
||||
data = data >> 8;
|
||||
canMsg.frame.data2 = (uint8_t) data;
|
||||
canMsg.frame.data0 = (uint8_t) data;
|
||||
data = data >> 8;
|
||||
canMsg.frame.data1 = (uint8_t) data;
|
||||
data = data >> 8;
|
||||
canMsg.frame.data0 = (uint8_t) data;
|
||||
canMsg.frame.data2 = (uint8_t) data;
|
||||
data = data >> 8;
|
||||
canMsg.frame.data3 = (uint8_t) data;
|
||||
data = data >> 8;
|
||||
canMsg.frame.id = (uint32_t) data;
|
||||
CAN_transmit(&canMsg);
|
||||
|
90
306-controller_interface.X/middleware/watchdog.c
Normal file
90
306-controller_interface.X/middleware/watchdog.c
Normal file
@ -0,0 +1,90 @@
|
||||
/**
|
||||
* @author Rémi Heredero
|
||||
* @version 1.0.0
|
||||
* @date August 2023
|
||||
* @file watchdog.c
|
||||
*/
|
||||
|
||||
#include "watchdog.h"
|
||||
|
||||
void WATCHDOG_init(WATCHDOG* me){
|
||||
me->state = STWD_INIT;
|
||||
me->time = 10;
|
||||
me->alive.f = NULL;
|
||||
}
|
||||
|
||||
void WATCHDOG_startBehaviour(WATCHDOG* me){
|
||||
POST(me, &WATCHDOG_processEvent, evWDinit, 0, 0);
|
||||
}
|
||||
|
||||
bool WATCHDOG_processEvent(Event* ev) {
|
||||
bool processed = false;
|
||||
WATCHDOG* me = (WATCHDOG*)Event_getTarget(ev);
|
||||
WATCHDOG_STATES oldState = me->state;
|
||||
evIDT evid = Event_getId(ev);
|
||||
uint64_t data = Event_getData(ev);
|
||||
|
||||
switch (me->state) { // onState
|
||||
case STWD_INIT:
|
||||
if (ev->id == evWDinit) {
|
||||
me->state = STWD_ALIVE;
|
||||
WATCHDOG_emitPoll(me, 10*me->time, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case STWD_ALIVE:
|
||||
if (ev->id == evWDpoll) {
|
||||
WATCHDOG_emitPoll(me, 10*me->time, 0);
|
||||
if (me->alive.f != NULL) {
|
||||
me->alive.f(me->alive.p);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if(oldState != me->state){
|
||||
switch (oldState) { // onExit
|
||||
case STWD_INIT:
|
||||
break;
|
||||
|
||||
case STWD_ALIVE:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (me->state) { // onEntry
|
||||
case STWD_INIT:
|
||||
break;
|
||||
|
||||
case STWD_ALIVE:
|
||||
break;
|
||||
}
|
||||
|
||||
processed = true;
|
||||
}
|
||||
return processed;
|
||||
}
|
||||
|
||||
/*************
|
||||
* Callbacks *
|
||||
*************/
|
||||
|
||||
void WATCHDOG_onAlive(WATCHDOG* me, WATCHDOG_CALLBACK_FUNCTION f, void* p) {
|
||||
me->alive.f = f;
|
||||
me->alive.p = p;
|
||||
}
|
||||
|
||||
/************
|
||||
* EMITTERS *
|
||||
************/
|
||||
|
||||
void WATCHDOG_emitPoll(WATCHDOG* me, uint16_t t, int64_t data) {
|
||||
POST(me, &WATCHDOG_processEvent, evWDpoll, t, data);
|
||||
}
|
||||
|
||||
/***********
|
||||
* SETTERS *
|
||||
***********/
|
||||
|
||||
void WATCHDOG_setTime(WATCHDOG* me, uint8_t v) {
|
||||
me->time = v;
|
||||
}
|
83
306-controller_interface.X/middleware/watchdog.h
Normal file
83
306-controller_interface.X/middleware/watchdog.h
Normal file
@ -0,0 +1,83 @@
|
||||
/**
|
||||
* @author Rémi Heredero
|
||||
* @version 1.0.0
|
||||
* @date August 2023
|
||||
* @file watchdog.h
|
||||
*/
|
||||
#ifndef WATCHDOG_H
|
||||
#define WATCHDOG_H
|
||||
|
||||
#include "../xf/xf.h"
|
||||
|
||||
typedef enum {
|
||||
STWD_INIT,
|
||||
STWD_ALIVE
|
||||
} WATCHDOG_STATES;
|
||||
|
||||
typedef enum {
|
||||
evWDinit = 20,
|
||||
evWDpoll
|
||||
} WATCHDOG_EVENTS;
|
||||
|
||||
typedef void (*WATCHDOG_CALLBACK_FUNCTION)(void*);
|
||||
typedef struct {
|
||||
WATCHDOG_CALLBACK_FUNCTION f; // function
|
||||
void* p; // param(s)
|
||||
} WATCHDOG_CALLBACK;
|
||||
|
||||
typedef struct {
|
||||
WATCHDOG_STATES state;
|
||||
uint8_t time;
|
||||
WATCHDOG_CALLBACK alive;
|
||||
} WATCHDOG;
|
||||
|
||||
/**
|
||||
* Initialize the WATCHDOG
|
||||
* @param me the WATCHDOG itself
|
||||
*/
|
||||
void WATCHDOG_init(WATCHDOG* me);
|
||||
|
||||
/**
|
||||
* Start the WATCHDOG state machine
|
||||
* @param me the WATCHDOG itself
|
||||
*/
|
||||
void WATCHDOG_startBehaviour(WATCHDOG* me);
|
||||
|
||||
/**
|
||||
* Process the event
|
||||
* @param ev the event to process
|
||||
* @return true if the event is processed
|
||||
*/
|
||||
bool WATCHDOG_processEvent(Event* ev);
|
||||
|
||||
/*************
|
||||
* Callbacks *
|
||||
*************/
|
||||
|
||||
/**
|
||||
* Set the callback function to call when the WATCHDOG is entering state alive
|
||||
* @param me the WATCHDOG itself
|
||||
* @param f the function to call
|
||||
* @param p the param(s) to pass to the function
|
||||
*/
|
||||
void WATCHDOG_onAlive(WATCHDOG* me, WATCHDOG_CALLBACK_FUNCTION f, void* p);
|
||||
|
||||
/************
|
||||
* EMITTERS *
|
||||
************/
|
||||
|
||||
/**
|
||||
* Emit the poll event
|
||||
* @param me the WATCHDOG itself
|
||||
* @param t time to wait in ms before triggering event
|
||||
* @param data data to put on the event for XF
|
||||
*/
|
||||
void WATCHDOG_emitPoll(WATCHDOG* me, uint16_t t, int64_t data);
|
||||
|
||||
/***********
|
||||
* SETTERS *
|
||||
***********/
|
||||
|
||||
void WATCHDOG_setTime(WATCHDOG* me, uint8_t v);
|
||||
|
||||
#endif
|
@ -7,6 +7,7 @@
|
||||
<logicalFolder name="app" displayName="app" projectFiles="true">
|
||||
<itemPath>app/factory/factory.h</itemPath>
|
||||
<itemPath>app/car.h</itemPath>
|
||||
<itemPath>app/can_message.h</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="board" displayName="board" projectFiles="true">
|
||||
<itemPath>board/led/led.h</itemPath>
|
||||
@ -25,6 +26,7 @@
|
||||
<logicalFolder name="middleware" displayName="middleware" projectFiles="true">
|
||||
<itemPath>middleware/can_interface.h</itemPath>
|
||||
<itemPath>middleware/alive_checker.h</itemPath>
|
||||
<itemPath>middleware/watchdog.h</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="xf" displayName="xf" projectFiles="true">
|
||||
<itemPath>xf/event.h</itemPath>
|
||||
@ -41,6 +43,7 @@
|
||||
projectFiles="true">
|
||||
<logicalFolder name="app" displayName="app" projectFiles="true">
|
||||
<itemPath>app/factory/factory.c</itemPath>
|
||||
<itemPath>app/can_message.c</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="board" displayName="board" projectFiles="true">
|
||||
<itemPath>board/led/led.c</itemPath>
|
||||
@ -59,6 +62,7 @@
|
||||
<logicalFolder name="middleware" displayName="middleware" projectFiles="true">
|
||||
<itemPath>middleware/can_interface.c</itemPath>
|
||||
<itemPath>middleware/alive_checker.c</itemPath>
|
||||
<itemPath>middleware/watchdog.c</itemPath>
|
||||
</logicalFolder>
|
||||
<logicalFolder name="xf" displayName="xf" projectFiles="true">
|
||||
<itemPath>xf/event.c</itemPath>
|
||||
@ -91,7 +95,7 @@
|
||||
<platform>3</platform>
|
||||
</toolsSet>
|
||||
<packs>
|
||||
<pack name="PIC18F-K_DFP" vendor="Microchip" version="1.5.114"/>
|
||||
<pack name="PIC18F-K_DFP" vendor="Microchip" version="1.7.134"/>
|
||||
</packs>
|
||||
<ScriptingSettings>
|
||||
</ScriptingSettings>
|
||||
@ -210,7 +214,6 @@
|
||||
<property key="debugoptions.debug-startup" value="Use system settings"/>
|
||||
<property key="debugoptions.reset-behaviour" value="Use system settings"/>
|
||||
<property key="debugoptions.useswbreakpoints" value="false"/>
|
||||
<property key="firmware.download.all" value="false"/>
|
||||
<property key="hwtoolclock.frcindebug" value="false"/>
|
||||
<property key="memories.aux" value="false"/>
|
||||
<property key="memories.bootflash" value="true"/>
|
||||
@ -296,12 +299,15 @@
|
||||
</XC8-CO>
|
||||
<XC8-config-global>
|
||||
<property key="advanced-elf" value="true"/>
|
||||
<property key="constdata-progmem" value="true"/>
|
||||
<property key="gcc-opt-driver-new" value="true"/>
|
||||
<property key="gcc-opt-std" value="-std=c99"/>
|
||||
<property key="gcc-output-file-format" value="dwarf-3"/>
|
||||
<property key="mapped-progmem" value="false"/>
|
||||
<property key="omit-pack-options" value="false"/>
|
||||
<property key="omit-pack-options-new" value="1"/>
|
||||
<property key="output-file-format" value="-mcof,+elf"/>
|
||||
<property key="smart-io-format" value=""/>
|
||||
<property key="stack-size-high" value="auto"/>
|
||||
<property key="stack-size-low" value="auto"/>
|
||||
<property key="stack-size-main" value="auto"/>
|
||||
|
File diff suppressed because one or more lines are too long
74
UML/watchdog.uxf
Normal file
74
UML/watchdog.uxf
Normal file
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram program="umlet" version="15.0.0">
|
||||
<zoom_level>15</zoom_level>
|
||||
<element>
|
||||
<id>UMLSpecialState</id>
|
||||
<coordinates>
|
||||
<x>315</x>
|
||||
<y>270</y>
|
||||
<w>30</w>
|
||||
<h>30</h>
|
||||
</coordinates>
|
||||
<panel_attributes>type=initial</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>315</x>
|
||||
<y>285</y>
|
||||
<w>120</w>
|
||||
<h>105</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
evWDinit</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;50.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLState</id>
|
||||
<coordinates>
|
||||
<x>255</x>
|
||||
<y>360</y>
|
||||
<w>150</w>
|
||||
<h>60</h>
|
||||
</coordinates>
|
||||
<panel_attributes>STWD_ALIVE</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>180</x>
|
||||
<y>375</y>
|
||||
<w>270</w>
|
||||
<h>135</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
m1=evWDpoll</panel_attributes>
|
||||
<additional_attributes>100.0;30.0;100.0;70.0;10.0;70.0;10.0;10.0;50.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLNote</id>
|
||||
<coordinates>
|
||||
<x>480</x>
|
||||
<y>360</y>
|
||||
<w>150</w>
|
||||
<h>60</h>
|
||||
</coordinates>
|
||||
<panel_attributes>send alive
|
||||
by CAN</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLNote</id>
|
||||
<coordinates>
|
||||
<x>375</x>
|
||||
<y>225</y>
|
||||
<w>150</w>
|
||||
<h>60</h>
|
||||
</coordinates>
|
||||
<panel_attributes>read time on
|
||||
EPROM</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
</diagram>
|
588
busmaster_config.cfx
Normal file
588
busmaster_config.cfx
Normal file
@ -0,0 +1,588 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<BUSMASTER_CONFIGURATION>
|
||||
<Global_Configuration>
|
||||
<BUSMASTER_Version>3.2.2</BUSMASTER_Version>
|
||||
<IsMsgFilterEnabled>FALSE</IsMsgFilterEnabled>
|
||||
<IsMsgFilterEnabledLin>FALSE</IsMsgFilterEnabledLin>
|
||||
<IsReplayFilterEnabled>FALSE</IsReplayFilterEnabled>
|
||||
<IsLogFilterEnabled>FALSE</IsLogFilterEnabled>
|
||||
<IsLogFilterLINEnabled>FALSE</IsLogFilterLINEnabled>
|
||||
<IsLoggingEnabled>FALSE</IsLoggingEnabled>
|
||||
<IsMsgIntepretationEnabled>FALSE</IsMsgIntepretationEnabled>
|
||||
<IsOverWriteEnabled>TRUE</IsOverWriteEnabled>
|
||||
<DisplayTimeMode>SYSTEM</DisplayTimeMode>
|
||||
<DisplayNumericMode>FALSE</DisplayNumericMode>
|
||||
<LogOnConnect_CAN>FALSE</LogOnConnect_CAN>
|
||||
<LogOnConnect_J1939>FALSE</LogOnConnect_J1939>
|
||||
<LogOnConnect_LIN>FALSE</LogOnConnect_LIN>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>HIDE</WindowPlacement>
|
||||
<Top>655</Top>
|
||||
<Left>0</Left>
|
||||
<Bottom>874</Bottom>
|
||||
<Right>1532</Right>
|
||||
</Window_Position>
|
||||
</Global_Configuration>
|
||||
<Module_Configuration>
|
||||
<CAN_Database_Files>
|
||||
<FilePath>threewheeler.DBF</FilePath>
|
||||
</CAN_Database_Files>
|
||||
<J1939_Database_Files/>
|
||||
<CAN_DIL_Section>
|
||||
<DriverName>MHS Tiny-CAN</DriverName>
|
||||
<ControllerMode>Bus Off</ControllerMode>
|
||||
<ControllerSettings>
|
||||
<Channel>
|
||||
<BaudRate>250</BaudRate>
|
||||
<CNF1>7</CNF1>
|
||||
<CNF2>B8</CNF2>
|
||||
<CNF3>5</CNF3>
|
||||
<BTR0>00</BTR0>
|
||||
<BTR1>1C</BTR1>
|
||||
<Clock>16</Clock>
|
||||
<SamplePerc>75</SamplePerc>
|
||||
<Sampling>1</Sampling>
|
||||
<BTLCycles>10</BTLCycles>
|
||||
<Warning_Limit>96</Warning_Limit>
|
||||
<Propagation_Delay>ALL</Propagation_Delay>
|
||||
<SJW>4</SJW>
|
||||
<AccCodeByte1_0>0</AccCodeByte1_0>
|
||||
<AccCodeByte1_1>0</AccCodeByte1_1>
|
||||
<AccCodeByte2_0>0</AccCodeByte2_0>
|
||||
<AccCodeByte2_1>0</AccCodeByte2_1>
|
||||
<AccCodeByte3_0>0</AccCodeByte3_0>
|
||||
<AccCodeByte3_1>0</AccCodeByte3_1>
|
||||
<AccCodeByte4_0>0</AccCodeByte4_0>
|
||||
<AccCodeByte4_1>0</AccCodeByte4_1>
|
||||
<AccMaskByte1_0>FF</AccMaskByte1_0>
|
||||
<AccMaskByte1_1>FF</AccMaskByte1_1>
|
||||
<AccMaskByte2_0>FF</AccMaskByte2_0>
|
||||
<AccMaskByte2_1>FF</AccMaskByte2_1>
|
||||
<AccMaskByte3_0>FF</AccMaskByte3_0>
|
||||
<AccMaskByte3_1>FF</AccMaskByte3_1>
|
||||
<AccMaskByte4_0>FF</AccMaskByte4_0>
|
||||
<AccMaskByte4_1>FF</AccMaskByte4_1>
|
||||
<HardwareDesc>Simulation</HardwareDesc>
|
||||
<ItemUnderFocus>64</ItemUnderFocus>
|
||||
<BTR0BTR1>0</BTR0BTR1>
|
||||
<AccFilterMode>0</AccFilterMode>
|
||||
<ControllerMode>1</ControllerMode>
|
||||
<SelfReception>1</SelfReception>
|
||||
<HWFilterType_0>0</HWFilterType_0>
|
||||
<HWFilterType_1>0</HWFilterType_1>
|
||||
<Debug>0</Debug>
|
||||
<PassiveMode>0</PassiveMode>
|
||||
<HWTimestamps>0</HWTimestamps>
|
||||
<Location/>
|
||||
<LowSpeed>0</LowSpeed>
|
||||
<CANFD_BaudRate>2000000</CANFD_BaudRate>
|
||||
<CANFD_SamplePoint>70</CANFD_SamplePoint>
|
||||
<CANFD_BTLCycles>10</CANFD_BTLCycles>
|
||||
<CANFD_SJW>3</CANFD_SJW>
|
||||
<CANFD_TxDelayCompensation>0</CANFD_TxDelayCompensation>
|
||||
<CANFD_TxSecondarySamplePoint>0</CANFD_TxSecondarySamplePoint>
|
||||
</Channel>
|
||||
</ControllerSettings>
|
||||
</CAN_DIL_Section>
|
||||
<CAN_Signal_Watch>
|
||||
<Message>
|
||||
<Id>288</Id>
|
||||
<Signal>DeltaY</Signal>
|
||||
<Signal>aliveTime</Signal>
|
||||
<Signal>timeMeasureOrDeltaX</Signal>
|
||||
<Signal>mode</Signal>
|
||||
</Message>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>HIDE</WindowPlacement>
|
||||
<Top>622</Top>
|
||||
<Left>86</Left>
|
||||
<Right>816</Right>
|
||||
<Bottom>998</Bottom>
|
||||
</Window_Position>
|
||||
<COLUMN_WIDTH>
|
||||
<MESSAGE_COLUMN>142</MESSAGE_COLUMN>
|
||||
<Raw_Val_Column>174</Raw_Val_Column>
|
||||
<Physical_Val_Column>285</Physical_Val_Column>
|
||||
<Signal_Column>142</Signal_Column>
|
||||
</COLUMN_WIDTH>
|
||||
</CAN_Signal_Watch>
|
||||
<J1939_Signal_Watch>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>HIDE</WindowPlacement>
|
||||
<Top>70</Top>
|
||||
<Left>10</Left>
|
||||
<Right>500</Right>
|
||||
<Bottom>300</Bottom>
|
||||
</Window_Position>
|
||||
<COLUMN_WIDTH>
|
||||
<MESSAGE_COLUMN>87</MESSAGE_COLUMN>
|
||||
<Raw_Val_Column>87</Raw_Val_Column>
|
||||
<Physical_Val_Column>174</Physical_Val_Column>
|
||||
<Signal_Column>87</Signal_Column>
|
||||
</COLUMN_WIDTH>
|
||||
</J1939_Signal_Watch>
|
||||
<LIN_Signal_Watch>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>HIDE</WindowPlacement>
|
||||
<Top>70</Top>
|
||||
<Left>10</Left>
|
||||
<Right>500</Right>
|
||||
<Bottom>300</Bottom>
|
||||
</Window_Position>
|
||||
<COLUMN_WIDTH>
|
||||
<MESSAGE_COLUMN>87</MESSAGE_COLUMN>
|
||||
<Raw_Val_Column>87</Raw_Val_Column>
|
||||
<Physical_Val_Column>174</Physical_Val_Column>
|
||||
<Signal_Column>87</Signal_Column>
|
||||
</COLUMN_WIDTH>
|
||||
</LIN_Signal_Watch>
|
||||
<CAN_Signal_Graph>
|
||||
<GRAPH_PARAMETERS>
|
||||
<Buffer_Size>5000</Buffer_Size>
|
||||
<Refresh_Rate>1000</Refresh_Rate>
|
||||
<Frame_Color>21760</Frame_Color>
|
||||
<Frame_Style>1</Frame_Style>
|
||||
<Plot_Area_Color>0</Plot_Area_Color>
|
||||
<Grid_Color>12632256</Grid_Color>
|
||||
<Axis_Color>255</Axis_Color>
|
||||
<X_Grid_Lines>10</X_Grid_Lines>
|
||||
<Y_Grid_Lines>5</Y_Grid_Lines>
|
||||
<Active_Axis>2</Active_Axis>
|
||||
<Selected_Action>0</Selected_Action>
|
||||
<Show_Grid>TRUE</Show_Grid>
|
||||
<Display_Type>NORMAL</Display_Type>
|
||||
</GRAPH_PARAMETERS>
|
||||
<Window_Position>
|
||||
<Visibility>HIDE</Visibility>
|
||||
<Window_Position>HIDE</Window_Position>
|
||||
<Top>-1</Top>
|
||||
<Left>0</Left>
|
||||
<Bottom>0</Bottom>
|
||||
<Right>0</Right>
|
||||
</Window_Position>
|
||||
<Splitter_Window_Col_0>
|
||||
<CxIdeal>-1</CxIdeal>
|
||||
<CxMin>0</CxMin>
|
||||
</Splitter_Window_Col_0>
|
||||
<Splitter_Window_Col_1>
|
||||
<CxIdeal>0</CxIdeal>
|
||||
<CxMin>0</CxMin>
|
||||
</Splitter_Window_Col_1>
|
||||
<Splitter_Window_Row_0>
|
||||
<CxIdeal>0</CxIdeal>
|
||||
<CxMin>0</CxMin>
|
||||
</Splitter_Window_Row_0>
|
||||
<Splitter_Window_Row_1>
|
||||
<CxIdeal>0</CxIdeal>
|
||||
<CxMin>0</CxMin>
|
||||
</Splitter_Window_Row_1>
|
||||
</CAN_Signal_Graph>
|
||||
<CAN_Log>
|
||||
<LogOnConnect>0</LogOnConnect>
|
||||
</CAN_Log>
|
||||
<J1939_Log>
|
||||
<LogOnConnect>0</LogOnConnect>
|
||||
</J1939_Log>
|
||||
<LIN_Log>
|
||||
<LogOnConnect>0</LogOnConnect>
|
||||
</LIN_Log>
|
||||
<CAN_Simulated_Systems>
|
||||
<Window_Position>
|
||||
<Visibility>HIDE</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>0</Top>
|
||||
<Left>0</Left>
|
||||
<Bottom>0</Bottom>
|
||||
<Right>0</Right>
|
||||
</Window_Position>
|
||||
</CAN_Simulated_Systems>
|
||||
<J1939_Simulated_Systems>
|
||||
<Window_Position>
|
||||
<Visibility>HIDE</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>0</Top>
|
||||
<Left>0</Left>
|
||||
<Bottom>0</Bottom>
|
||||
<Right>0</Right>
|
||||
</Window_Position>
|
||||
</J1939_Simulated_Systems>
|
||||
<CAN_Replay/>
|
||||
<CAN_Message_Window>
|
||||
<Append_Buffer_Size>5000</Append_Buffer_Size>
|
||||
<Overwrite_Buffer_Size>2000</Overwrite_Buffer_Size>
|
||||
<Display_Update_Time>100</Display_Update_Time>
|
||||
<COLUMN>
|
||||
<ID/>
|
||||
<Order>1</Order>
|
||||
<IsVisible>0</IsVisible>
|
||||
<Width>0</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Time</ID>
|
||||
<Order>2</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>138</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Tx/Rx</ID>
|
||||
<Order>3</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>85</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Channel</ID>
|
||||
<Order>4</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>92</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Msg Type</ID>
|
||||
<Order>5</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>71</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>ID</ID>
|
||||
<Order>6</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>69</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Message</ID>
|
||||
<Order>7</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>174</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>DLC</ID>
|
||||
<Order>8</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>75</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Data Byte(s)</ID>
|
||||
<Order>9</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>198</Width>
|
||||
</COLUMN>
|
||||
<IsHex>1</IsHex>
|
||||
<IsAppend>0</IsAppend>
|
||||
<IsInterpret>0</IsInterpret>
|
||||
<Time_Mode>SYSTEM</Time_Mode>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>0</Top>
|
||||
<Left>0</Left>
|
||||
<Bottom>295</Bottom>
|
||||
<Right>909</Right>
|
||||
</Window_Position>
|
||||
<Interpretation_Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>271</Top>
|
||||
<Left>879</Left>
|
||||
<Bottom>958</Bottom>
|
||||
<Right>1552</Right>
|
||||
</Interpretation_Window_Position>
|
||||
</CAN_Message_Window>
|
||||
<J1939_Message_Window>
|
||||
<COLUMN>
|
||||
<ID/>
|
||||
<Order>1</Order>
|
||||
<IsVisible>0</IsVisible>
|
||||
<Width>0</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Time</ID>
|
||||
<Order>2</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>91</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Channel</ID>
|
||||
<Order>3</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>88</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>CAN ID</ID>
|
||||
<Order>4</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>88</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>PGN</ID>
|
||||
<Order>5</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>84</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>PGN Name</ID>
|
||||
<Order>6</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>118</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Type</ID>
|
||||
<Order>7</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>75</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Src</ID>
|
||||
<Order>8</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>60</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Dest</ID>
|
||||
<Order>9</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>57</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Priority</ID>
|
||||
<Order>10</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>74</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Tx/Rx</ID>
|
||||
<Order>11</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>73</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>DLC</ID>
|
||||
<Order>12</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>70</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Data Byte(s)</ID>
|
||||
<Order>13</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>720</Width>
|
||||
</COLUMN>
|
||||
<IsHex>1</IsHex>
|
||||
<IsAppend>0</IsAppend>
|
||||
<IsInterpret>0</IsInterpret>
|
||||
<Time_Mode>SYSTEM</Time_Mode>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>0</Top>
|
||||
<Left>0</Left>
|
||||
<Bottom>543</Bottom>
|
||||
<Right>1614</Right>
|
||||
</Window_Position>
|
||||
<Interpretation_Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>179</Top>
|
||||
<Left>10</Left>
|
||||
<Bottom>457</Bottom>
|
||||
<Right>359</Right>
|
||||
</Interpretation_Window_Position>
|
||||
</J1939_Message_Window>
|
||||
<LIN_Message_Window>
|
||||
<Append_Buffer_Size>5000</Append_Buffer_Size>
|
||||
<Overwrite_Buffer_Size>2000</Overwrite_Buffer_Size>
|
||||
<Display_Update_Time>100</Display_Update_Time>
|
||||
<COLUMN>
|
||||
<ID/>
|
||||
<Order>1</Order>
|
||||
<IsVisible>0</IsVisible>
|
||||
<Width>0</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Time</ID>
|
||||
<Order>2</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>95</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Message</ID>
|
||||
<Order>3</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>99</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Message Type</ID>
|
||||
<Order>4</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>135</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Tx/Rx</ID>
|
||||
<Order>5</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>85</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Channel</ID>
|
||||
<Order>6</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>80</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>DLC</ID>
|
||||
<Order>7</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>70</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>ID</ID>
|
||||
<Order>8</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>65</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Data Byte(s)</ID>
|
||||
<Order>9</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>235</Width>
|
||||
</COLUMN>
|
||||
<COLUMN>
|
||||
<ID>Checksum</ID>
|
||||
<Order>10</Order>
|
||||
<IsVisible>1</IsVisible>
|
||||
<Width>734</Width>
|
||||
</COLUMN>
|
||||
<IsHex>1</IsHex>
|
||||
<IsAppend>0</IsAppend>
|
||||
<IsInterpret>0</IsInterpret>
|
||||
<Time_Mode>SYSTEM</Time_Mode>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>0</Top>
|
||||
<Left>0</Left>
|
||||
<Bottom>543</Bottom>
|
||||
<Right>1614</Right>
|
||||
</Window_Position>
|
||||
<Interpretation_Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>179</Top>
|
||||
<Left>10</Left>
|
||||
<Bottom>457</Bottom>
|
||||
<Right>359</Right>
|
||||
</Interpretation_Window_Position>
|
||||
</LIN_Message_Window>
|
||||
<CAN_Tx_Window>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>SETMINPOSITION</WindowPlacement>
|
||||
<Top>12</Top>
|
||||
<Left>989</Left>
|
||||
<Bottom>667</Bottom>
|
||||
<Right>1849</Right>
|
||||
</Window_Position>
|
||||
<Message_List>
|
||||
<Message>
|
||||
<Channel>1</Channel>
|
||||
<Message_ID>528</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>529</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>288</Message_ID>
|
||||
<IsExtended>FALSE</IsExtended>
|
||||
<IsRtr>FALSE</IsRtr>
|
||||
<DLC>4</DLC>
|
||||
<DataBytes>0,255,1,5</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>543</Message_ID>
|
||||
<IsExtended>FALSE</IsExtended>
|
||||
<IsRtr>FALSE</IsRtr>
|
||||
<DLC>1</DLC>
|
||||
<DataBytes>0</DataBytes>
|
||||
<Repetion>10</Repetion>
|
||||
<Repetition_Enabled>FALSE</Repetition_Enabled>
|
||||
<Key_Value>a</Key_Value>
|
||||
<Key_Enabled>FALSE</Key_Enabled>
|
||||
</Message>
|
||||
</Message_List>
|
||||
</CAN_Tx_Window>
|
||||
<CAN_Wave_Form_Genarator>
|
||||
<Default_Sampling_Period>125</Default_Sampling_Period>
|
||||
<SignalDefiner_AutoCorrect>1</SignalDefiner_AutoCorrect>
|
||||
</CAN_Wave_Form_Genarator>
|
||||
<LIN_Simulated_Systems>
|
||||
<Window_Position>
|
||||
<Visibility>HIDE</Visibility>
|
||||
<WindowPlacement>RESTORETOMAXIMIZED</WindowPlacement>
|
||||
<Top>0</Top>
|
||||
<Left>0</Left>
|
||||
<Bottom>0</Bottom>
|
||||
<Right>0</Right>
|
||||
</Window_Position>
|
||||
</LIN_Simulated_Systems>
|
||||
<LIN_Cluster_Config>
|
||||
<CHANNEL>
|
||||
<Index>0</Index>
|
||||
<HWUri>Hardware</HWUri>
|
||||
<BaudRate>19200</BaudRate>
|
||||
<ProtocolVersion>LIN 2.0</ProtocolVersion>
|
||||
<Overwrite_Settings>1</Overwrite_Settings>
|
||||
<MasterMode>0</MasterMode>
|
||||
<ECU/>
|
||||
</CHANNEL>
|
||||
</LIN_Cluster_Config>
|
||||
<LIN_Tx_Window>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>SETMINPOSITION</WindowPlacement>
|
||||
<Top>1</Top>
|
||||
<Left>4</Left>
|
||||
<Bottom>661</Bottom>
|
||||
<Right>864</Right>
|
||||
</Window_Position>
|
||||
<Message_List/>
|
||||
</LIN_Tx_Window>
|
||||
<LIN_Schedule_Table>
|
||||
<Window_Position>
|
||||
<Visibility>SHOWNORMAL</Visibility>
|
||||
<WindowPlacement>SETMINPOSITION</WindowPlacement>
|
||||
<Top>183</Top>
|
||||
<Left>535</Left>
|
||||
<Bottom>716</Bottom>
|
||||
<Right>1185</Right>
|
||||
</Window_Position>
|
||||
<Channel>
|
||||
<Index>1</Index>
|
||||
</Channel>
|
||||
</LIN_Schedule_Table>
|
||||
</Module_Configuration>
|
||||
</BUSMASTER_CONFIGURATION>
|
Reference in New Issue
Block a user