add option to use can channels for local input pins

This commit is contained in:
darren siepka 2018-06-29 23:03:56 +01:00
parent 637dd94eec
commit a480996cfc
5 changed files with 558 additions and 258 deletions

View File

@ -59,6 +59,22 @@
fuelLoadMax = scalar, U08, "", 1, 0, 0, 511, 0 fuelLoadMax = scalar, U08, "", 1, 0, 0, 511, 0
ignLoadMax = scalar, U08, "", 1, 0, 0, 511, 0 ignLoadMax = scalar, U08, "", 1, 0, 0, 511, 0
AUXin00Alias = string, ASCII, 20
AUXin01Alias = string, ASCII, 20
AUXin02Alias = string, ASCII, 20
AUXin03Alias = string, ASCII, 20
AUXin04Alias = string, ASCII, 20
AUXin05Alias = string, ASCII, 20
AUXin06Alias = string, ASCII, 20
AUXin07Alias = string, ASCII, 20
AUXin08Alias = string, ASCII, 20
AUXin09Alias = string, ASCII, 20
AUXin10Alias = string, ASCII, 20
AUXin11Alias = string, ASCII, 20
AUXin12Alias = string, ASCII, 20
AUXin13Alias = string, ASCII, 20
AUXin14Alias = string, ASCII, 20
AUXin15Alias = string, ASCII, 20
[Constants] [Constants]
@ -114,7 +130,7 @@
endianness = little endianness = little
nPages = 10 nPages = 10
pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 128, 192 pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 192, 192
;burnCommand = "B" ;burnCommand = "B"
;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013" ;pageActivate = "P\001", "P\002", "P\003", "P\004", "P\005", "P\006", "P\007", "P\010", "P\011", "P\012", "P\013"
@ -122,7 +138,7 @@
;pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v" ;pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v"
; New commands ; New commands
;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 128, 192 ;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 192, 192
pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A" pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A"
burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i" burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i"
pageReadCommand = "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v" pageReadCommand = "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v", "p%2i%2o%2c%v"
@ -142,8 +158,12 @@
#define PIN_OUT10inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" #define PIN_OUT10inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
#define PIN_OUT16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" #define PIN_OUT16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
#define PIN_16inv = "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
#define tsCanId_list = "CAN ID 0", "CAN ID 1", "CAN ID 2", "CAN ID 3", "CAN ID 4", "CAN ID 5", "CAN ID 6", "CAN ID 7", "CAN ID 8", "CAN ID 9", "CAN ID 10","CAN ID 11","CAN ID 12","CAN ID 13","CAN ID 14","INVALID" #define ANALOG_PIN = "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A8", "A10", "A11", "A12", "A13", "A14", "A15"
#define DIGITAL_PIN = "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
#define ANALOG_DIG_PIN_LIST = $DIGITAL_PIN, $ANALOG_PIN, $PIN_16inv
#define tsCanId_list = "CAN ID 0", "CAN ID 1", "CAN ID 2", "CAN ID 3", "CAN ID 4", "CAN ID 5", "CAN ID 6", "CAN ID 7", "CAN ID 8", "CAN ID 9", "CAN ID 10","CAN ID 11","CAN ID 12","CAN ID 13","CAN ID 14","INVALID"
#define CAN_ADDRESS_HEX_inv255 = $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT10inv, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" #define CAN_ADDRESS_HEX_inv255 = $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT16inv, $PIN_OUT10inv, "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
#define CAN_ADDRESS_HEX_00XX = "INVALID", "0x001", "0x002", "0x003", "0x004", "0x005", "0x006", "0x007", "0x008", "0x009", "0x00A", "0x00B", "0x00C", "0x00D", "0x00E", "0x00F", "0x010", "0x011", "0x012", "0x013", "0x014", "0x015", "0x016", "0x017", "0x018", "0x019", "0x01A", "0x01B", "0x01C", "0x01D", "0x01E", "0x01F", "0x020", "0x021", "0x022", "0x023", "0x024", "0x025", "0x026", "0x027", "0x028", "0x029", "0x02A", "0x02B", "0x02C", "0x02D", "0x02E", "0x02F", "0x030", "0x031", "0x032", "0x033", "0x034", "0x035", "0x036", "0x037", "0x038", "0x039", "0x03A", "0x03B", "0x03C", "0x03D", "0x03E", "0x03F", "0x040", "0x041", "0x042", "0x043", "0x044", "0x045", "0x046", "0x047", "0x048", "0x049", "0x04A", "0x04B", "0x04C", "0x04D", "0x04E", "0x04F", "0x050", "0x051", "0x052", "0x053", "0x054", "0x055", "0x056", "0x057", "0x058", "0x059", "0x05A", "0x05B", "0x05C", "0x05D", "0x05E", "0x05F" ,"0x060", "0x061", "0x062", "0x063", "0x064", "0x065", "0x066", "0x067", "0x068", "0x069", "0x06A", "0x06B", "0x06C", "0x06D", "0x06E", "0x06F", "0x070", "0x071", "0x072", "0x073", "0x074", "0x075", "0x076", "0x077", "0x078", "0x079", "0x07A", "0x07B", "0x07C", "0x07D", "0x07E", "0x07F", "0x080", "0x081", "0x082", "0x083", "0x084", "0x085", "0x086", "0x087", "0x088", "0x089", "0x08A", "0x08B", "0x08C", "0x08D", "0x08E", "0x08F" ,"0x090", "0x091", "0x092", "0x093", "0x094", "0x095", "0x096", "0x097", "0x098", "0x099", "0x09A", "0x09B", "0x09C", "0x09D", "0x09E", "0x09F", "0x0A0", "0x0A1", "0x0A2", "0x0A3", "0x0A4", "0x0A5", "0x0A6", "0x0A7", "0x0A8", "0x0A9", "0x0AA", "0x0AB", "0x0AC", "0x0AD", "0x0AE", "0x0AF", "0x0B0", "0x0B1", "0x0B2", "0x0B3", "0x0B4", "0x0B5", "0x0B6", "0x0B7", "0x0B8", "0x0B9", "0x0BA", "0x0BB", "0x0BC", "0x0BD", "0x0BE", "0x0BF" ,"0x0C0", "0x0C1", "0x0C2", "0x0C3", "0x0C4", "0x0C5", "0x0C6", "0x0C7", "0x0C8", "0x0C9", "0x0CA", "0x0CB", "0x0CC", "0x0CD", "0x0CE", "0x0CF", "0x0D0", "0x0D1", "0x0D2", "0x0D3", "0x0D4", "0x0D5", "0x0D6", "0x0D7", "0x0D8", "0x0D9", "0x0DA", "0x0DB", "0x0DC", "0x0DD", "0x0DE", "0x0DF", "0x0E0", "0x0E1", "0x0E2", "0x0E3", "0x0E4", "0x0E5", "0x0E6", "0x0E7", "0x0E8", "0x0E9", "0x0EA", "0x0EB", "0x0EC", "0x0ED", "0x0EE", "0x0EF" ,"0x0F0", "0x0F1", "0x0F2", "0x0F3", "0x0F4", "0x0F5", "0x0F6", "0x0F7", "0x0F8", "0x0F9", "0x0FA", "0x0FB", "0x0FC", "0x0FD", "0x0FE", "0x0FF" #define CAN_ADDRESS_HEX_00XX = "INVALID", "0x001", "0x002", "0x003", "0x004", "0x005", "0x006", "0x007", "0x008", "0x009", "0x00A", "0x00B", "0x00C", "0x00D", "0x00E", "0x00F", "0x010", "0x011", "0x012", "0x013", "0x014", "0x015", "0x016", "0x017", "0x018", "0x019", "0x01A", "0x01B", "0x01C", "0x01D", "0x01E", "0x01F", "0x020", "0x021", "0x022", "0x023", "0x024", "0x025", "0x026", "0x027", "0x028", "0x029", "0x02A", "0x02B", "0x02C", "0x02D", "0x02E", "0x02F", "0x030", "0x031", "0x032", "0x033", "0x034", "0x035", "0x036", "0x037", "0x038", "0x039", "0x03A", "0x03B", "0x03C", "0x03D", "0x03E", "0x03F", "0x040", "0x041", "0x042", "0x043", "0x044", "0x045", "0x046", "0x047", "0x048", "0x049", "0x04A", "0x04B", "0x04C", "0x04D", "0x04E", "0x04F", "0x050", "0x051", "0x052", "0x053", "0x054", "0x055", "0x056", "0x057", "0x058", "0x059", "0x05A", "0x05B", "0x05C", "0x05D", "0x05E", "0x05F" ,"0x060", "0x061", "0x062", "0x063", "0x064", "0x065", "0x066", "0x067", "0x068", "0x069", "0x06A", "0x06B", "0x06C", "0x06D", "0x06E", "0x06F", "0x070", "0x071", "0x072", "0x073", "0x074", "0x075", "0x076", "0x077", "0x078", "0x079", "0x07A", "0x07B", "0x07C", "0x07D", "0x07E", "0x07F", "0x080", "0x081", "0x082", "0x083", "0x084", "0x085", "0x086", "0x087", "0x088", "0x089", "0x08A", "0x08B", "0x08C", "0x08D", "0x08E", "0x08F" ,"0x090", "0x091", "0x092", "0x093", "0x094", "0x095", "0x096", "0x097", "0x098", "0x099", "0x09A", "0x09B", "0x09C", "0x09D", "0x09E", "0x09F", "0x0A0", "0x0A1", "0x0A2", "0x0A3", "0x0A4", "0x0A5", "0x0A6", "0x0A7", "0x0A8", "0x0A9", "0x0AA", "0x0AB", "0x0AC", "0x0AD", "0x0AE", "0x0AF", "0x0B0", "0x0B1", "0x0B2", "0x0B3", "0x0B4", "0x0B5", "0x0B6", "0x0B7", "0x0B8", "0x0B9", "0x0BA", "0x0BB", "0x0BC", "0x0BD", "0x0BE", "0x0BF" ,"0x0C0", "0x0C1", "0x0C2", "0x0C3", "0x0C4", "0x0C5", "0x0C6", "0x0C7", "0x0C8", "0x0C9", "0x0CA", "0x0CB", "0x0CC", "0x0CD", "0x0CE", "0x0CF", "0x0D0", "0x0D1", "0x0D2", "0x0D3", "0x0D4", "0x0D5", "0x0D6", "0x0D7", "0x0D8", "0x0D9", "0x0DA", "0x0DB", "0x0DC", "0x0DD", "0x0DE", "0x0DF", "0x0E0", "0x0E1", "0x0E2", "0x0E3", "0x0E4", "0x0E5", "0x0E6", "0x0E7", "0x0E8", "0x0E9", "0x0EA", "0x0EB", "0x0EC", "0x0ED", "0x0EE", "0x0EF" ,"0x0F0", "0x0F1", "0x0F2", "0x0F3", "0x0F4", "0x0F5", "0x0F6", "0x0F7", "0x0F8", "0x0F9", "0x0FA", "0x0FB", "0x0FC", "0x0FD", "0x0FE", "0x0FF"
#define CAN_ADDRESS_HEX_01XX = "0x100", "0x101", "0x102", "0x103", "0x104", "0x105", "0x106", "0x107", "0x108", "0x109", "0x10A", "0x10B", "0x10C", "0x10D", "0x10E", "0x10F", "0x110", "0x111", "0x112", "0x113", "0x114", "0x115", "0x116", "0x117", "0x118", "0x119", "0x11A", "0x11B", "0x11C", "0x11D", "0x11E", "0x11F", "0x120", "0x121", "0x122", "0x123", "0x124", "0x125", "0x126", "0x127", "0x128", "0x129", "0x12A", "0x12B", "0x12C", "0x12D", "0x12E", "0x12F", "0x130", "0x131", "0x132", "0x133", "0x134", "0x135", "0x136", "0x137", "0x138", "0x139", "0x13A", "0x13B", "0x13C", "0x13D", "0x13E", "0x13F", "0x140", "0x141", "0x142", "0x143", "0x144", "0x145", "0x146", "0x147", "0x148", "0x149", "0x14A", "0x14B", "0x14C", "0x14D", "0x14E", "0x14F", "0x150", "0x151", "0x152", "0x153", "0x154", "0x155", "0x156", "0x157", "0x158", "0x159", "0x15A", "0x15B", "0x15C", "0x15D", "0x15E", "0x15F" ,"0x160", "0x161", "0x162", "0x163", "0x164", "0x165", "0x166", "0x167", "0x168", "0x169", "0x16A", "0x16B", "0x16C", "0x16D", "0x16E", "0x16F", "0x170", "0x171", "0x172", "0x173", "0x174", "0x175", "0x176", "0x177", "0x178", "0x179", "0x17A", "0x17B", "0x17C", "0x17D", "0x17E", "0x17F", "0x180", "0x181", "0x182", "0x183", "0x184", "0x185", "0x186", "0x187", "0x188", "0x189", "0x18A", "0x18B", "0x18C", "0x18D", "0x18E", "0x18F" ,"0x190", "0x191", "0x192", "0x193", "0x194", "0x195", "0x196", "0x197", "0x198", "0x199", "0x19A", "0x19B", "0x19C", "0x19D", "0x19E", "0x19F", "0x1A0", "0x1A1", "0x1A2", "0x1A3", "0x1A4", "0x1A5", "0x1A6", "0x1A7", "0x1A8", "0x1A9", "0x1AA", "0x1AB", "0x1AC", "0x1AD", "0x1AE", "0x1AF", "0x1B0", "0x1B1", "0x1B2", "0x1B3", "0x1B4", "0x1B5", "0x1B6", "0x1B7", "0x1B8", "0x1B9", "0x1BA", "0x1BB", "0x1BC", "0x1BD", "0x1BE", "0x1BF" ,"0x1C0", "0x1C1", "0x1C2", "0x1C3", "0x1C4", "0x1C5", "0x1C6", "0x1C7", "0x1C8", "0x1C9", "0x1CA", "0x1CB", "0x1CC", "0x1CD", "0x1CE", "0x1CF", "0x1D0", "0x1D1", "0x1D2", "0x1D3", "0x1D4", "0x1D5", "0x1D6", "0x1D7", "0x1D8", "0x1D9", "0x1DA", "0x1DB", "0x1DC", "0x1DD", "0x1DE", "0x1DF", "0x1E0", "0x1E1", "0x1E2", "0x1E3", "0x1E4", "0x1E5", "0x1E6", "0x1E7", "0x1E8", "0x1E9", "0x1EA", "0x1EB", "0x1EC", "0x1ED", "0x1EE", "0x1EF" ,"0x1F0", "0x1F1", "0x1F2", "0x1F3", "0x1F4", "0x1F5", "0x1F6", "0x1F7", "0x1F8", "0x1F9", "0x1FA", "0x1FB", "0x1FC", "0x1FD", "0x1FE", "0x1FF" #define CAN_ADDRESS_HEX_01XX = "0x100", "0x101", "0x102", "0x103", "0x104", "0x105", "0x106", "0x107", "0x108", "0x109", "0x10A", "0x10B", "0x10C", "0x10D", "0x10E", "0x10F", "0x110", "0x111", "0x112", "0x113", "0x114", "0x115", "0x116", "0x117", "0x118", "0x119", "0x11A", "0x11B", "0x11C", "0x11D", "0x11E", "0x11F", "0x120", "0x121", "0x122", "0x123", "0x124", "0x125", "0x126", "0x127", "0x128", "0x129", "0x12A", "0x12B", "0x12C", "0x12D", "0x12E", "0x12F", "0x130", "0x131", "0x132", "0x133", "0x134", "0x135", "0x136", "0x137", "0x138", "0x139", "0x13A", "0x13B", "0x13C", "0x13D", "0x13E", "0x13F", "0x140", "0x141", "0x142", "0x143", "0x144", "0x145", "0x146", "0x147", "0x148", "0x149", "0x14A", "0x14B", "0x14C", "0x14D", "0x14E", "0x14F", "0x150", "0x151", "0x152", "0x153", "0x154", "0x155", "0x156", "0x157", "0x158", "0x159", "0x15A", "0x15B", "0x15C", "0x15D", "0x15E", "0x15F" ,"0x160", "0x161", "0x162", "0x163", "0x164", "0x165", "0x166", "0x167", "0x168", "0x169", "0x16A", "0x16B", "0x16C", "0x16D", "0x16E", "0x16F", "0x170", "0x171", "0x172", "0x173", "0x174", "0x175", "0x176", "0x177", "0x178", "0x179", "0x17A", "0x17B", "0x17C", "0x17D", "0x17E", "0x17F", "0x180", "0x181", "0x182", "0x183", "0x184", "0x185", "0x186", "0x187", "0x188", "0x189", "0x18A", "0x18B", "0x18C", "0x18D", "0x18E", "0x18F" ,"0x190", "0x191", "0x192", "0x193", "0x194", "0x195", "0x196", "0x197", "0x198", "0x199", "0x19A", "0x19B", "0x19C", "0x19D", "0x19E", "0x19F", "0x1A0", "0x1A1", "0x1A2", "0x1A3", "0x1A4", "0x1A5", "0x1A6", "0x1A7", "0x1A8", "0x1A9", "0x1AA", "0x1AB", "0x1AC", "0x1AD", "0x1AE", "0x1AF", "0x1B0", "0x1B1", "0x1B2", "0x1B3", "0x1B4", "0x1B5", "0x1B6", "0x1B7", "0x1B8", "0x1B9", "0x1BA", "0x1BB", "0x1BC", "0x1BD", "0x1BE", "0x1BF" ,"0x1C0", "0x1C1", "0x1C2", "0x1C3", "0x1C4", "0x1C5", "0x1C6", "0x1C7", "0x1C8", "0x1C9", "0x1CA", "0x1CB", "0x1CC", "0x1CD", "0x1CE", "0x1CF", "0x1D0", "0x1D1", "0x1D2", "0x1D3", "0x1D4", "0x1D5", "0x1D6", "0x1D7", "0x1D8", "0x1D9", "0x1DA", "0x1DB", "0x1DC", "0x1DD", "0x1DE", "0x1DF", "0x1E0", "0x1E1", "0x1E2", "0x1E3", "0x1E4", "0x1E5", "0x1E6", "0x1E7", "0x1E8", "0x1E9", "0x1EA", "0x1EB", "0x1EC", "0x1ED", "0x1EE", "0x1EF" ,"0x1F0", "0x1F1", "0x1F2", "0x1F3", "0x1F4", "0x1F5", "0x1F6", "0x1F7", "0x1F8", "0x1F9", "0x1FA", "0x1FB", "0x1FC", "0x1FD", "0x1FE", "0x1FF"
@ -558,7 +578,7 @@ page = 8
#endif #endif
;-------------------------------------------------- ;--------------------------------------------------
;CANBUS control (Page 9) ;CANBUS control and Auxillary io(Page 9)
;-------------------------------------------------- ;--------------------------------------------------
page = 9 page = 9
#if CAN_COMMANDS #if CAN_COMMANDS
@ -567,147 +587,211 @@ page = 9
enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "INVALID", "INVALID" enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "INVALID", "INVALID"
#endif #endif
enable_candata_in = bits, U08, 0, [2:2], "Off", "On" enable_candata_in = bits, U08, 0, [2:2], "Off", "On"
#if CAN_COMMANDS
caninput_sel0 = bits, U16, 1, [0:0], "Off", "On" caninput_sel0 = bits, U08, 1, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel1 = bits, U16, 1, [1:1], "Off", "On" caninput_sel1 = bits, U08, 2, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel2 = bits, U16, 1, [2:2], "Off", "On" caninput_sel2 = bits, U08, 3, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel3 = bits, U16, 1, [3:3], "Off", "On" caninput_sel3 = bits, U08, 4, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel4 = bits, U16, 1, [4:4], "Off", "On" caninput_sel4 = bits, U08, 5, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel5 = bits, U16, 1, [5:5], "Off", "On" caninput_sel5 = bits, U08, 6, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel6 = bits, U16, 1, [6:6], "Off", "On" caninput_sel6 = bits, U08, 7, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel7 = bits, U16, 1, [7:7], "Off", "On" caninput_sel7 = bits, U08, 8, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel8 = bits, U16, 1, [8:8], "Off", "On" caninput_sel8 = bits, U08, 9, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel9 = bits, U16, 1, [9:9], "Off", "On" caninput_sel9 = bits, U08, 10, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel10 = bits, U16, 1, [10:10], "Off", "On" caninput_sel10 = bits, U08, 11, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel11 = bits, U16, 1, [11:11], "Off", "On" caninput_sel11 = bits, U08, 12, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel12 = bits, U16, 1, [12:12], "Off", "On" caninput_sel12 = bits, U08, 13, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel13 = bits, U16, 1, [13:13], "Off", "On" caninput_sel13 = bits, U08, 14, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel14 = bits, U16, 1, [14:14], "Off", "On" caninput_sel14 = bits, U08, 15, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
caninput_sel15 = bits, U16, 1, [15:15], "Off", "On" caninput_sel15 = bits, U08, 16, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
#else
;caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0 caninput_sel0 = bits, U08, 1, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address0 = bits, U16, 3, [0:10], $CAN_ADDRESS_HEX caninput_sel1 = bits, U08, 2, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address1 = bits, U16, 5, [0:10], $CAN_ADDRESS_HEX caninput_sel2 = bits, U08, 3, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address2 = bits, U16, 7, [0:10], $CAN_ADDRESS_HEX caninput_sel3 = bits, U08, 4, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address3 = bits, U16, 9, [0:10], $CAN_ADDRESS_HEX caninput_sel4 = bits, U08, 5, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address4 = bits, U16, 11, [0:10], $CAN_ADDRESS_HEX caninput_sel5 = bits, U08, 6, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address5 = bits, U16, 13, [0:10], $CAN_ADDRESS_HEX caninput_sel6 = bits, U08, 7, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address6 = bits, U16, 15, [0:10], $CAN_ADDRESS_HEX caninput_sel7 = bits, U08, 8, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address7 = bits, U16, 17, [0:10], $CAN_ADDRESS_HEX caninput_sel8 = bits, U08, 9, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address8 = bits, U16, 19, [0:10], $CAN_ADDRESS_HEX caninput_sel9 = bits, U08, 10, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address9 = bits, U16, 21, [0:10], $CAN_ADDRESS_HEX caninput_sel10 = bits, U08, 11, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address10 = bits, U16, 23, [0:10], $CAN_ADDRESS_HEX caninput_sel11 = bits, U08, 12, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address11 = bits, U16, 25, [0:10], $CAN_ADDRESS_HEX caninput_sel12 = bits, U08, 13, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address12 = bits, U16, 27, [0:10], $CAN_ADDRESS_HEX caninput_sel13 = bits, U08, 14, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address13 = bits, U16, 29, [0:10], $CAN_ADDRESS_HEX caninput_sel14 = bits, U08, 15, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address14 = bits, U16, 31, [0:10], $CAN_ADDRESS_HEX caninput_sel15 = bits, U08, 16, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
caninput_source_can_address15 = bits, U16, 33, [0:10], $CAN_ADDRESS_HEX #endif
;caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0
caninput_source_can_address0 = bits, U16, 17, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address1 = bits, U16, 19, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address2 = bits, U16, 21, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address3 = bits, U16, 23, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address4 = bits, U16, 25, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address5 = bits, U16, 27, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address6 = bits, U16, 29, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address7 = bits, U16, 31, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address8 = bits, U16, 33, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address9 = bits, U16, 35, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address10 = bits, U16, 37, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address11 = bits, U16, 39, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address12 = bits, U16, 41, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address13 = bits, U16, 43, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address14 = bits, U16, 45, [0:10], $CAN_ADDRESS_HEX
caninput_source_can_address15 = bits, U16, 47, [0:10], $CAN_ADDRESS_HEX
caninput_source_start_byte0 = bits, U08, 35, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte0 = bits, U08, 49, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte1 = bits, U08, 36, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte1 = bits, U08, 50, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte2 = bits, U08, 37, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte2 = bits, U08, 51, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte3 = bits, U08, 38, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte3 = bits, U08, 52, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte4 = bits, U08, 39, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte4 = bits, U08, 53, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte5 = bits, U08, 40, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte5 = bits, U08, 54, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte6 = bits, U08, 41, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte6 = bits, U08, 55, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte7 = bits, U08, 42, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte7 = bits, U08, 56, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte8 = bits, U08, 43, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte8 = bits, U08, 57, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte9 = bits, U08, 44, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte9 = bits, U08, 58, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte10 = bits, U08, 45, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte10 = bits, U08, 59, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte11 = bits, U08, 46, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte11 = bits, U08, 60, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte12 = bits, U08, 47, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte12 = bits, U08, 61, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte13 = bits, U08, 48, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte13 = bits, U08, 62, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte14 = bits, U08, 49, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte14 = bits, U08, 63, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_start_byte15 = bits, U08, 50, [0:2], "0", "1", "2", "3", "4", "5", "6", "7" caninput_source_start_byte15 = bits, U08, 64, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
caninput_source_num_bytes0 = bits, U16, 51, [0:0], "1", "2" caninput_source_num_bytes0 = bits, U16, 65, [0:0], "1", "2"
caninput_source_num_bytes1 = bits, U16, 51, [1:1], "1", "2" caninput_source_num_bytes1 = bits, U16, 65, [1:1], "1", "2"
caninput_source_num_bytes2 = bits, U16, 51, [2:2], "1", "2" caninput_source_num_bytes2 = bits, U16, 65, [2:2], "1", "2"
caninput_source_num_bytes3 = bits, U16, 51, [3:3], "1", "2" caninput_source_num_bytes3 = bits, U16, 65, [3:3], "1", "2"
caninput_source_num_bytes4 = bits, U16, 51, [4:4], "1", "2" caninput_source_num_bytes4 = bits, U16, 65, [4:4], "1", "2"
caninput_source_num_bytes5 = bits, U16, 51, [5:5], "1", "2" caninput_source_num_bytes5 = bits, U16, 65, [5:5], "1", "2"
caninput_source_num_bytes6 = bits, U16, 51, [6:6], "1", "2" caninput_source_num_bytes6 = bits, U16, 65, [6:6], "1", "2"
caninput_source_num_bytes7 = bits, U16, 51, [7:7], "1", "2" caninput_source_num_bytes7 = bits, U16, 65, [7:7], "1", "2"
caninput_source_num_bytes8 = bits, U16, 51, [8:8], "1", "2" caninput_source_num_bytes8 = bits, U16, 65, [8:8], "1", "2"
caninput_source_num_bytes9 = bits, U16, 51, [9:9], "1", "2" caninput_source_num_bytes9 = bits, U16, 65, [9:9], "1", "2"
caninput_source_num_bytes10 = bits, U16, 51, [10:10], "1", "2" caninput_source_num_bytes10 = bits, U16, 65, [10:10], "1", "2"
caninput_source_num_bytes11 = bits, U16, 51, [11:11], "1", "2" caninput_source_num_bytes11 = bits, U16, 65, [11:11], "1", "2"
caninput_source_num_bytes12 = bits, U16, 51, [12:12], "1", "2" caninput_source_num_bytes12 = bits, U16, 65, [12:12], "1", "2"
caninput_source_num_bytes13 = bits, U16, 51, [13:13], "1", "2" caninput_source_num_bytes13 = bits, U16, 65, [13:13], "1", "2"
caninput_source_num_bytes14 = bits, U16, 51, [14:14], "1", "2" caninput_source_num_bytes14 = bits, U16, 65, [14:14], "1", "2"
caninput_source_num_bytes15 = bits, U16, 51, [15:15], "1", "2" caninput_source_num_bytes15 = bits, U16, 65, [15:15], "1", "2"
unused10_53 = scalar, U08, 53, "", 1, 0, 0, 255, 0 unused10_67 = scalar, U08, 67, "", 1, 0, 0, 255, 0
unused10_54 = scalar, U08, 54, "", 1, 0, 0, 255, 0 unused10_68 = scalar, U08, 68, "", 1, 0, 0, 255, 0
enable_candata_out = bits, U08, 55, [0:0], "Off", "On"
canoutput_sel0 = bits, U08, 56, [0:0], "Off", "On"
canoutput_sel1 = bits, U08, 57, [0:0], "Off", "On"
canoutput_sel2 = bits, U08, 58, [0:0], "Off", "On"
canoutput_sel3 = bits, U08, 59, [0:0], "Off", "On"
canoutput_sel4 = bits, U08, 60, [0:0], "Off", "On"
canoutput_sel5 = bits, U08, 61, [0:0], "Off", "On"
canoutput_sel6 = bits, U08, 62, [0:0], "Off", "On"
canoutput_sel7 = bits, U08, 63, [0:0], "Off", "On"
canoutput_param_group = array , U16, 64, [ 8], "", 1, 0, 0, 65535, 0
canoutput_param_start_byte0 = bits, U08, 80, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte1 = bits, U08, 81, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte2 = bits, U08, 82, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte3 = bits, U08, 83, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte4 = bits, U08, 84, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte5 = bits, U08, 85, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte6 = bits, U08, 86, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte7 = bits, U08, 87, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_num_bytes0 = bits, U08, 88, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes1 = bits, U08, 89, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes2 = bits, U08, 90, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes3 = bits, U08, 91, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes4 = bits, U08, 92, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes5 = bits, U08, 93, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes6 = bits, U08, 94, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes7 = bits, U08, 95, [0:1], "INVALID", "1", "2", "INVALID"
unused10_96 = scalar, U08, 96, "", 1, 0, 0, 255, 0 enable_candata_out = bits, U08, 69, [0:0], "Off", "On"
unused10_97 = scalar, U08, 97, "", 1, 0, 0, 255, 0 canoutput_sel0 = bits, U08, 70, [0:0], "Off", "On"
unused10_98 = scalar, U08, 98, "", 1, 0, 0, 255, 0 canoutput_sel1 = bits, U08, 71, [0:0], "Off", "On"
unused10_99 = scalar, U08, 99, "", 1, 0, 0, 255, 0 canoutput_sel2 = bits, U08, 72, [0:0], "Off", "On"
canoutput_sel3 = bits, U08, 73, [0:0], "Off", "On"
canoutput_sel4 = bits, U08, 74, [0:0], "Off", "On"
canoutput_sel5 = bits, U08, 75, [0:0], "Off", "On"
canoutput_sel6 = bits, U08, 76, [0:0], "Off", "On"
canoutput_sel7 = bits, U08, 77, [0:0], "Off", "On"
canoutput_param_group = array , U16, 78, [ 8], "", 1, 0, 0, 65535, 0
canoutput_param_start_byte0 = bits, U08, 94, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte1 = bits, U08, 95, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte2 = bits, U08, 96, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte3 = bits, U08, 97, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte4 = bits, U08, 98, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte5 = bits, U08, 99, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte6 = bits, U08, 100, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_start_byte7 = bits, U08, 101, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
canoutput_param_num_bytes0 = bits, U08, 102, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes1 = bits, U08, 103, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes2 = bits, U08, 104, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes3 = bits, U08, 105, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes4 = bits, U08, 106, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes5 = bits, U08, 107, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes6 = bits, U08, 108, [0:1], "INVALID", "1", "2", "INVALID"
canoutput_param_num_bytes7 = bits, U08, 109, [0:1], "INVALID", "1", "2", "INVALID"
speeduino_tsCanId = bits, U08, 100, [0:3], $tsCanId_list unused10_110 = scalar, U08, 110, "", 1, 0, 0, 255, 0
true_address = bits, U16, 101, [0:10], $CAN_ADDRESS_HEX unused10_111 = scalar, U08, 111, "", 1, 0, 0, 255, 0
realtime_base_address = bits, U16, 103, [0:10], $CAN_ADDRESS_HEX unused10_112 = scalar, U08, 112, "", 1, 0, 0, 255, 0
obd_address = bits, U16, 105, [0:10], $CAN_ADDRESS_HEX unused10_113 = scalar, U08, 113, "", 1, 0, 0, 255, 0
speeduino_tsCanId = bits, U08, 114, [0:3], $tsCanId_list
;unused10_101 = scalar, U16, 101, "", 1, 0, 0, 255, 0 true_address = bits, U16, 115, [0:10], $CAN_ADDRESS_HEX
;unused10_103 = scalar, U16, 103, "", 1, 0, 0, 255, 0 realtime_base_address = bits, U16, 117, [0:10], $CAN_ADDRESS_HEX
;unused10_105 = scalar, U16, 105, "", 1, 0, 0, 255, 0 obd_address = bits, U16, 119, [0:10], $CAN_ADDRESS_HEX
;AFR offset for WUE VeAnalyze ;AFR offset for WUE VeAnalyze
;wueAFRRates = array, U08, 107, [10], "%", 1.0, 0.0, 0.0, 255, 0 ;wueAFRRates = array, U08, 107, [10], "%", 1.0, 0.0, 0.0, 255, 0
;wueAFRBins = array, U08, 117, [10], "C", 1.0, -40, -40, 102.0, 0 ;wueAFRBins = array, U08, 117, [10], "C", 1.0, -40, -40, 102.0, 0
unused10_107 = scalar, U08, 107, "", 1, 0, 0, 255, 0 Auxin0pin = bits, U08, 121, [0:6], $ANALOG_DIG_PIN_LIST
unused10_108 = scalar, U08, 108, "", 1, 0, 0, 255, 0 Auxin1pin = bits, U08, 122, [0:6], $ANALOG_DIG_PIN_LIST
unused10_109 = scalar, U08, 109, "", 1, 0, 0, 255, 0 Auxin2pin = bits, U08, 123, [0:6], $ANALOG_DIG_PIN_LIST
unused10_110 = scalar, U08, 110, "", 1, 0, 0, 255, 0 Auxin3pin = bits, U08, 124, [0:6], $ANALOG_DIG_PIN_LIST
unused10_111 = scalar, U08, 111, "", 1, 0, 0, 255, 0 Auxin4pin = bits, U08, 125, [0:6], $ANALOG_DIG_PIN_LIST
unused10_112 = scalar, U08, 112, "", 1, 0, 0, 255, 0 Auxin5pin = bits, U08, 126, [0:6], $ANALOG_DIG_PIN_LIST
unused10_113 = scalar, U08, 113, "", 1, 0, 0, 255, 0 Auxin6pin = bits, U08, 127, [0:6], $ANALOG_DIG_PIN_LIST
unused10_114 = scalar, U08, 114, "", 1, 0, 0, 255, 0 Auxin7pin = bits, U08, 128, [0:6], $ANALOG_DIG_PIN_LIST
unused10_115 = scalar, U08, 115, "", 1, 0, 0, 255, 0 Auxin8pin = bits, U08, 129, [0:6], $ANALOG_DIG_PIN_LIST
unused10_116 = scalar, U08, 116, "", 1, 0, 0, 255, 0 Auxin9pin = bits, U08, 130, [0:6], $ANALOG_DIG_PIN_LIST
unused10_117 = scalar, U08, 117, "", 1, 0, 0, 255, 0 Auxin10pin = bits, U08, 131, [0:6], $ANALOG_DIG_PIN_LIST
unused10_118 = scalar, U08, 118, "", 1, 0, 0, 255, 0 Auxin11pin = bits, U08, 132, [0:6], $ANALOG_DIG_PIN_LIST
unused10_119 = scalar, U08, 119, "", 1, 0, 0, 255, 0 Auxin12pin = bits, U08, 133, [0:6], $ANALOG_DIG_PIN_LIST
unused10_120 = scalar, U08, 120, "", 1, 0, 0, 255, 0 Auxin13pin = bits, U08, 134, [0:6], $ANALOG_DIG_PIN_LIST
unused10_121 = scalar, U08, 121, "", 1, 0, 0, 255, 0 Auxin14pin = bits, U08, 135, [0:6], $ANALOG_DIG_PIN_LIST
unused10_122 = scalar, U08, 122, "", 1, 0, 0, 255, 0 Auxin15pin = bits, U08, 136, [0:6], $ANALOG_DIG_PIN_LIST
unused10_123 = scalar, U08, 123, "", 1, 0, 0, 255, 0
unused10_124 = scalar, U08, 124, "", 1, 0, 0, 255, 0 unused10_137 = scalar, U08, 137, "", 1, 0, 0, 255, 0
unused10_125 = scalar, U08, 125, "", 1, 0, 0, 255, 0 unused10_138 = scalar, U08, 138, "", 1, 0, 0, 255, 0
unused10_126 = scalar, U08, 126, "", 1, 0, 0, 255, 0 unused10_139 = scalar, U08, 139, "", 1, 0, 0, 255, 0
unused10_127 = scalar, U08, 127, "", 1, 0, 0, 255, 0 unused10_140 = scalar, U08, 140, "", 1, 0, 0, 255, 0
unused10_141 = scalar, U08, 141, "", 1, 0, 0, 255, 0
unused10_142 = scalar, U08, 142, "", 1, 0, 0, 255, 0
unused10_143 = scalar, U08, 143, "", 1, 0, 0, 255, 0
unused10_144 = scalar, U08, 144, "", 1, 0, 0, 255, 0
unused10_145 = scalar, U08, 145, "", 1, 0, 0, 255, 0
unused10_146 = scalar, U08, 146, "", 1, 0, 0, 255, 0
unused10_147 = scalar, U08, 147, "", 1, 0, 0, 255, 0
unused10_148 = scalar, U08, 148, "", 1, 0, 0, 255, 0
unused10_149 = scalar, U08, 149, "", 1, 0, 0, 255, 0
unused10_150 = scalar, U08, 150, "", 1, 0, 0, 255, 0
unused10_151 = scalar, U08, 151, "", 1, 0, 0, 255, 0
unused10_152 = scalar, U08, 152, "", 1, 0, 0, 255, 0
unused10_153 = scalar, U08, 153, "", 1, 0, 0, 255, 0
unused10_154 = scalar, U08, 154, "", 1, 0, 0, 255, 0
unused10_155 = scalar, U08, 155, "", 1, 0, 0, 255, 0
unused10_156 = scalar, U08, 156, "", 1, 0, 0, 255, 0
unused10_157 = scalar, U08, 157, "", 1, 0, 0, 255, 0
unused10_158 = scalar, U08, 158, "", 1, 0, 0, 255, 0
unused10_159 = scalar, U08, 159, "", 1, 0, 0, 255, 0
unused10_160 = scalar, U08, 160, "", 1, 0, 0, 255, 0
unused10_161 = scalar, U08, 161, "", 1, 0, 0, 255, 0
unused10_162 = scalar, U08, 162, "", 1, 0, 0, 255, 0
unused10_163 = scalar, U08, 163, "", 1, 0, 0, 255, 0
unused10_164 = scalar, U08, 164, "", 1, 0, 0, 255, 0
unused10_165 = scalar, U08, 165, "", 1, 0, 0, 255, 0
unused10_166 = scalar, U08, 166, "", 1, 0, 0, 255, 0
unused10_167 = scalar, U08, 167, "", 1, 0, 0, 255, 0
unused10_168 = scalar, U08, 168, "", 1, 0, 0, 255, 0
unused10_169 = scalar, U08, 169, "", 1, 0, 0, 255, 0
unused10_170 = scalar, U08, 170, "", 1, 0, 0, 255, 0
unused10_171 = scalar, U08, 171, "", 1, 0, 0, 255, 0
unused10_172 = scalar, U08, 172, "", 1, 0, 0, 255, 0
unused10_173 = scalar, U08, 173, "", 1, 0, 0, 255, 0
unused10_174 = scalar, U08, 174, "", 1, 0, 0, 255, 0
unused10_175 = scalar, U08, 175, "", 1, 0, 0, 255, 0
unused10_176 = scalar, U08, 176, "", 1, 0, 0, 255, 0
unused10_177 = scalar, U08, 177, "", 1, 0, 0, 255, 0
unused10_178 = scalar, U08, 178, "", 1, 0, 0, 255, 0
unused10_179 = scalar, U08, 179, "", 1, 0, 0, 255, 0
unused10_180 = scalar, U08, 180, "", 1, 0, 0, 255, 0
unused10_181 = scalar, U08, 181, "", 1, 0, 0, 255, 0
unused10_182 = scalar, U08, 182, "", 1, 0, 0, 255, 0
unused10_183 = scalar, U08, 183, "", 1, 0, 0, 255, 0
unused10_184 = scalar, U08, 184, "", 1, 0, 0, 255, 0
unused10_185 = scalar, U08, 185, "", 1, 0, 0, 255, 0
unused10_186 = scalar, U08, 186, "", 1, 0, 0, 255, 0
unused10_187 = scalar, U08, 187, "", 1, 0, 0, 255, 0
unused10_188 = scalar, U08, 188, "", 1, 0, 0, 255, 0
unused10_189 = scalar, U08, 189, "", 1, 0, 0, 255, 0
unused10_190 = scalar, U08, 190, "", 1, 0, 0, 255, 0
unused10_191 = scalar, U08, 191, "", 1, 0, 0, 255, 0
page = 10 page = 10
#if CELSIUS #if CELSIUS
@ -946,11 +1030,13 @@ menuDialog = main
#if CAN_COMMANDS #if CAN_COMMANDS
subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface" subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface"
subMenu = std_separator subMenu = std_separator
subMenu = Canin_config, "External Data Input Configuration", {enable_canbus} subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_canbus}
subMenu = Auxin_config, "Local Auxillary Input Channel Configuration"
;subMenu = std_separator ;subMenu = std_separator
;subMenu = Canout_config, "Canbus Output Configuration" ;subMenu = Canout_config, "Canbus Output Configuration"
#else #else
subMenu = serial3IO, "Secondary Serial IO Interface" subMenu = serial3IO, "Secondary Serial IO Interface"
subMenu = Auxin_config, "Local Auxillary Input Channel Configuration"
#endif #endif
menuDialog = main menuDialog = main
@ -1062,22 +1148,38 @@ menuDialog = main
true_address = "This is the 11bit Can address of the Speeduino ECU " true_address = "This is the 11bit Can address of the Speeduino ECU "
realtime_base_address = "This is the 11bit CAN address of the realtime data broadcast from the Speeduino ECU. This MUST be at least 0x16 greater than the true address" realtime_base_address = "This is the 11bit CAN address of the realtime data broadcast from the Speeduino ECU. This MUST be at least 0x16 greater than the true address"
;obd_address = "The 11bit Can address that the Speeduino ECU responds to for OBD2 diagnostic requests" ;obd_address = "The 11bit Can address that the Speeduino ECU responds to for OBD2 diagnostic requests"
caninput_sel0 = "This Enables CAN data input channel 0 " AUXin00Alias = "The Ascii alias asigned to Aux input channel 0"
caninput_sel1 = "This Enables CAN data input channel 1 " AUXin01Alias = "The Ascii alias asigned to Aux input channel 1"
caninput_sel2 = "This Enables CAN data input channel 2 " AUXin02Alias = "The Ascii alias asigned to Aux input channel 2"
caninput_sel3 = "This Enables CAN data input channel 3 " AUXin03Alias = "The Ascii alias asigned to Aux input channel 3"
caninput_sel4 = "This Enables CAN data input channel 4 " AUXin04Alias = "The Ascii alias asigned to Aux input channel 4"
caninput_sel5 = "This Enables CAN data input channel 5 " AUXin05Alias = "The Ascii alias asigned to Aux input channel 5"
caninput_sel6 = "This Enables CAN data input channel 6 " AUXin06Alias = "The Ascii alias asigned to Aux input channel 6"
caninput_sel7 = "This Enables CAN data input channel 7 " AUXin07Alias = "The Ascii alias asigned to Aux input channel 7"
caninput_sel8 = "This Enables CAN data input channel 8 " AUXin08Alias = "The Ascii alias asigned to Aux input channel 8"
caninput_sel9 = "This Enables CAN data input channel 9 " AUXin09Alias = "The Ascii alias asigned to Aux input channel 9"
caninput_sel10 = "This Enables CAN data input channel 10 " AUXin10Alias = "The Ascii alias asigned to Aux input channel 10"
caninput_sel11 = "This Enables CAN data input channel 11 " AUXin11Alias = "The Ascii alias asigned to Aux input channel 11"
caninput_sel12 = "This Enables CAN data input channel 12 " AUXin12Alias = "The Ascii alias asigned to Aux input channel 12"
caninput_sel13 = "This Enables CAN data input channel 13 " AUXin13Alias = "The Ascii alias asigned to Aux input channel 13"
caninput_sel14 = "This Enables CAN data input channel 14 " AUXin14Alias = "The Ascii alias asigned to Aux input channel 14"
caninput_sel15 = "This Enables CAN data input channel 15 " AUXin15Alias = "The Ascii alias asigned to Aux input channel 15"
caninput_sel0 = "This Enables External/CAN data or local analog/digital on input channel 0 "
caninput_sel1 = "This Enables External/CAN data or local analog/digital on input channel 1 "
caninput_sel2 = "This Enables External/CAN data or local analog/digital on input channel 2 "
caninput_sel3 = "This Enables External/CAN data or local analog/digital on input channel 3 "
caninput_sel4 = "This Enables External/CAN data or local analog/digital on input channel 4 "
caninput_sel5 = "This Enables External/CAN data or local analog/digital on input channel 5 "
caninput_sel6 = "This Enables External/CAN data or local analog/digital on input channel 6 "
caninput_sel7 = "This Enables External/CAN data or local analog/digital on input channel 7 "
caninput_sel8 = "This Enables External/CAN data or local analog/digital on input channel 8 "
caninput_sel9 = "This Enables External/CAN data or local analog/digital on input channel 9 "
caninput_sel10 = "This Enables External/CAN data or local analog/digital on input channel 10 "
caninput_sel11 = "This Enables External/CAN data or local analog/digital on input channel 11 "
caninput_sel12 = "This Enables External/CAN data or local analog/digital on input channel 12 "
caninput_sel13 = "This Enables External/CAN data or local analog/digital on input channel 13 "
caninput_sel14 = "This Enables External/CAN data or local analog/digital on input channel 14 "
caninput_sel15 = "This Enables External/CAN data or local analog/digital on input channel 15 "
caninput_source_can_address0 = "The source 11bit CAN address of the data for channel 0" caninput_source_can_address0 = "The source 11bit CAN address of the data for channel 0"
caninput_source_can_address1 = "The source 11bit CAN address of the data for channel 1" caninput_source_can_address1 = "The source 11bit CAN address of the data for channel 1"
caninput_source_can_address2 = "The source 11bit CAN address of the data for channel 2" caninput_source_can_address2 = "The source 11bit CAN address of the data for channel 2"
@ -1672,6 +1774,25 @@ menuDialog = main
;panel = outputtest_io2 ;panel = outputtest_io2
panel = outputtest_warningmessage panel = outputtest_warningmessage
dialog = canAuxinput_alias, "", yAxis
field = "Input Alias"
field = "", AUXin00Alias , {caninput_sel0}
field = "", AUXin01Alias , {caninput_sel1}
field = "", AUXin02Alias , {caninput_sel2}
field = "", AUXin03Alias , {caninput_sel3}
field = "", AUXin04Alias , {caninput_sel4}
field = "", AUXin05Alias , {caninput_sel5}
field = "", AUXin06Alias , {caninput_sel6}
field = "", AUXin07Alias , {caninput_sel7}
field = "", AUXin08Alias , {caninput_sel8}
field = "", AUXin09Alias , {caninput_sel9}
field = "", AUXin10Alias , {caninput_sel10}
field = "", AUXin11Alias , {caninput_sel11}
field = "", AUXin12Alias , {caninput_sel12}
field = "", AUXin13Alias , {caninput_sel13}
field = "", AUXin14Alias , {caninput_sel14}
field = "", AUXin15Alias , {caninput_sel15}
dialog = caninput_sel, "" dialog = caninput_sel, ""
;CAN inputs ;CAN inputs
field = " CAN Input Channel on/off" field = " CAN Input Channel on/off"
@ -1694,65 +1815,67 @@ menuDialog = main
dialog = caninput_parameter_group, "", yAxis dialog = caninput_parameter_group, "", yAxis
field = " Source CAN Address" field = " Source CAN Address"
field = "", caninput_source_can_address0, { caninput_sel0 && enable_candata_in } field = "", caninput_source_can_address0, { caninput_sel0 == 1 && enable_candata_in }
field = "", caninput_source_can_address1, { caninput_sel1 && enable_candata_in } field = "", caninput_source_can_address1, { caninput_sel1 == 1 && enable_candata_in }
field = "", caninput_source_can_address2, { caninput_sel2 && enable_candata_in } field = "", caninput_source_can_address2, { caninput_sel2 == 1 && enable_candata_in }
field = "", caninput_source_can_address3, { caninput_sel3 && enable_candata_in } field = "", caninput_source_can_address3, { caninput_sel3 == 1 && enable_candata_in }
field = "", caninput_source_can_address4, { caninput_sel4 && enable_candata_in } field = "", caninput_source_can_address4, { caninput_sel4 == 1 && enable_candata_in }
field = "", caninput_source_can_address5, { caninput_sel5 && enable_candata_in } field = "", caninput_source_can_address5, { caninput_sel5 == 1 && enable_candata_in }
field = "", caninput_source_can_address6, { caninput_sel6 && enable_candata_in } field = "", caninput_source_can_address6, { caninput_sel6 == 1 && enable_candata_in }
field = "", caninput_source_can_address7, { caninput_sel7 && enable_candata_in } field = "", caninput_source_can_address7, { caninput_sel7 == 1 && enable_candata_in }
field = "", caninput_source_can_address8, { caninput_sel8 && enable_candata_in } field = "", caninput_source_can_address8, { caninput_sel8 == 1 && enable_candata_in }
field = "", caninput_source_can_address9, { caninput_sel9 && enable_candata_in } field = "", caninput_source_can_address9, { caninput_sel9 == 1 && enable_candata_in }
field = "", caninput_source_can_address10, { caninput_sel10 && enable_candata_in } field = "", caninput_source_can_address10, { caninput_sel10 == 1 && enable_candata_in }
field = "", caninput_source_can_address11, { caninput_sel11 && enable_candata_in } field = "", caninput_source_can_address11, { caninput_sel11 == 1 && enable_candata_in }
field = "", caninput_source_can_address12, { caninput_sel12 && enable_candata_in } field = "", caninput_source_can_address12, { caninput_sel12 == 1 && enable_candata_in }
field = "", caninput_source_can_address13, { caninput_sel13 && enable_candata_in } field = "", caninput_source_can_address13, { caninput_sel13 == 1 && enable_candata_in }
field = "", caninput_source_can_address14, { caninput_sel14 && enable_candata_in } field = "", caninput_source_can_address14, { caninput_sel14 == 1 && enable_candata_in }
field = "", caninput_source_can_address15, { caninput_sel15 && enable_candata_in } field = "", caninput_source_can_address15, { caninput_sel15 == 1 && enable_candata_in }
dialog = caninput_parameter_start_byte, "", yAxis dialog = caninput_parameter_start_byte, "", yAxis
field = " source data start byte" field = " source data start byte"
field = "", caninput_source_start_byte0, { caninput_sel0 && enable_candata_in } field = "", caninput_source_start_byte0, { caninput_sel0 == 1 && enable_candata_in }
field = "", caninput_source_start_byte1, { caninput_sel1 && enable_candata_in } field = "", caninput_source_start_byte1, { caninput_sel1 == 1 && enable_candata_in }
field = "", caninput_source_start_byte2, { caninput_sel2 && enable_candata_in } field = "", caninput_source_start_byte2, { caninput_sel2 == 1 && enable_candata_in }
field = "", caninput_source_start_byte3, { caninput_sel3 && enable_candata_in } field = "", caninput_source_start_byte3, { caninput_sel3 == 1 && enable_candata_in }
field = "", caninput_source_start_byte4, { caninput_sel4 && enable_candata_in } field = "", caninput_source_start_byte4, { caninput_sel4 == 1 && enable_candata_in }
field = "", caninput_source_start_byte5, { caninput_sel5 && enable_candata_in } field = "", caninput_source_start_byte5, { caninput_sel5 == 1 && enable_candata_in }
field = "", caninput_source_start_byte6, { caninput_sel6 && enable_candata_in } field = "", caninput_source_start_byte6, { caninput_sel6 == 1 && enable_candata_in }
field = "", caninput_source_start_byte7, { caninput_sel7 && enable_candata_in } field = "", caninput_source_start_byte7, { caninput_sel7 == 1 && enable_candata_in }
field = "", caninput_source_start_byte8, { caninput_sel8 && enable_candata_in } field = "", caninput_source_start_byte8, { caninput_sel8 == 1 && enable_candata_in }
field = "", caninput_source_start_byte9, { caninput_sel9 && enable_candata_in } field = "", caninput_source_start_byte9, { caninput_sel9 == 1 && enable_candata_in }
field = "", caninput_source_start_byte10, { caninput_sel10 && enable_candata_in } field = "", caninput_source_start_byte10, { caninput_sel10 == 1 && enable_candata_in }
field = "", caninput_source_start_byte11, { caninput_sel11 && enable_candata_in } field = "", caninput_source_start_byte11, { caninput_sel11 == 1 && enable_candata_in }
field = "", caninput_source_start_byte12, { caninput_sel12 && enable_candata_in } field = "", caninput_source_start_byte12, { caninput_sel12 == 1 && enable_candata_in }
field = "", caninput_source_start_byte13, { caninput_sel13 && enable_candata_in } field = "", caninput_source_start_byte13, { caninput_sel13 == 1 && enable_candata_in }
field = "", caninput_source_start_byte14, { caninput_sel14 && enable_candata_in } field = "", caninput_source_start_byte14, { caninput_sel14 == 1 && enable_candata_in }
field = "", caninput_source_start_byte15, { caninput_sel15 && enable_candata_in } field = "", caninput_source_start_byte15, { caninput_sel15 == 1 && enable_candata_in }
dialog = caninput_parameter_num_byte, "", yAxis dialog = caninput_parameter_num_byte, "", yAxis
field = "Input Parameter Number of Bytes" field = "Input Parameter Number of Bytes"
field = "", caninput_source_num_bytes0, { caninput_sel0 && enable_candata_in } field = "", caninput_source_num_bytes0, { caninput_sel0 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes1, { caninput_sel1 && enable_candata_in } field = "", caninput_source_num_bytes1, { caninput_sel1 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes2, { caninput_sel3 && enable_candata_in } field = "", caninput_source_num_bytes2, { caninput_sel3 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes3, { caninput_sel3 && enable_candata_in } field = "", caninput_source_num_bytes3, { caninput_sel3 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes4, { caninput_sel4 && enable_candata_in } field = "", caninput_source_num_bytes4, { caninput_sel4 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes5, { caninput_sel5 && enable_candata_in } field = "", caninput_source_num_bytes5, { caninput_sel5 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes6, { caninput_sel6 && enable_candata_in } field = "", caninput_source_num_bytes6, { caninput_sel6 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes7, { caninput_sel7 && enable_candata_in } field = "", caninput_source_num_bytes7, { caninput_sel7 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes8, { caninput_sel8 && enable_candata_in } field = "", caninput_source_num_bytes8, { caninput_sel8 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes9, { caninput_sel9 && enable_candata_in } field = "", caninput_source_num_bytes9, { caninput_sel9 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes10, { caninput_sel10 && enable_candata_in } field = "", caninput_source_num_bytes10, { caninput_sel10 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes11, { caninput_sel11 && enable_candata_in } field = "", caninput_source_num_bytes11, { caninput_sel11 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes12, { caninput_sel12 && enable_candata_in } field = "", caninput_source_num_bytes12, { caninput_sel12 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes13, { caninput_sel13 && enable_candata_in } field = "", caninput_source_num_bytes13, { caninput_sel13 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes14, { caninput_sel14 && enable_candata_in } field = "", caninput_source_num_bytes14, { caninput_sel14 == 1 && enable_candata_in }
field = "", caninput_source_num_bytes15, { caninput_sel15 && enable_candata_in } field = "", caninput_source_num_bytes15, { caninput_sel15 == 1 && enable_candata_in }
dialog = caninconfig_blank1,"" dialog = caninconfig_blank1,""
field = "" field = ""
dialog = Canin_config1, "", xAxis dialog = Canin_config1, "", xAxis
panel = canAuxinput_alias
panel = caninconfig_blank1
panel = caninput_sel panel = caninput_sel
panel = caninconfig_blank1 panel = caninconfig_blank1
panel = caninput_parameter_group panel = caninput_parameter_group
@ -1769,7 +1892,26 @@ menuDialog = main
panel = Canin_config2, North panel = Canin_config2, North
panel = Canin_config1, South panel = Canin_config1, South
dialog = canoutput_sel, "" dialog = canAuxoutput_alias, "", yAxis
field = "Input Alias"
field = "", AUXin00Alias , {caninput_sel0}
field = "", AUXin01Alias , {caninput_sel1}
field = "", AUXin02Alias , {caninput_sel2}
field = "", AUXin03Alias , {caninput_sel3}
field = "", AUXin04Alias , {caninput_sel4}
field = "", AUXin05Alias , {caninput_sel5}
field = "", AUXin06Alias , {caninput_sel6}
field = "", AUXin07Alias , {caninput_sel7}
field = "", AUXin08Alias , {caninput_sel8}
field = "", AUXin09Alias , {caninput_sel9}
field = "", AUXin10Alias , {caninput_sel10}
field = "", AUXin11Alias , {caninput_sel11}
field = "", AUXin12Alias , {caninput_sel12}
field = "", AUXin13Alias , {caninput_sel13}
field = "", AUXin14Alias , {caninput_sel14}
field = "", AUXin15Alias , {caninput_sel15}
dialog = canoutput_sel, "", yAxis
;CAN outputs ;CAN outputs
field = "CAN Output Channel on/off" field = "CAN Output Channel on/off"
field = "CAN Output 0", canoutput_sel0, { enable_candata_out} field = "CAN Output 0", canoutput_sel0, { enable_candata_out}
@ -1850,7 +1992,9 @@ menuDialog = main
field = "" field = ""
dialog = Canout_config1, "", xAxis dialog = Canout_config1, "", xAxis
panel = canoutput_sel panel = canAuxoutput_alias
panel = canoutconfig_blank1
panel = canoutput_sel
panel = canoutconfig_blank1 panel = canoutconfig_blank1
panel = canoutput_parameter_group panel = canoutput_parameter_group
panel = canoutconfig_blank1 panel = canoutconfig_blank1
@ -1884,6 +2028,67 @@ menuDialog = main
field = "Control Type", resetControl field = "Control Type", resetControl
field = "Control Pin", resetControlPin field = "Control Pin", resetControlPin
dialog = Auxinput_pin_selection, "Pin", yAxis
field = "", Auxin0pin , {caninput_sel0 == 2 || caninput_sel0 == 3 }
field = "", Auxin1pin , {caninput_sel1 == 2 || caninput_sel0 == 3}
field = "", Auxin2pin , {caninput_sel2 == 2 || caninput_sel0 == 3}
field = "", Auxin3pin , {caninput_sel3 == 2 || caninput_sel0 == 3}
field = "", Auxin4pin , {caninput_sel4 == 2 || caninput_sel0 == 3}
field = "", Auxin5pin , {caninput_sel5 == 2 || caninput_sel0 == 3}
field = "", Auxin6pin , {caninput_sel6 == 2 || caninput_sel0 == 3}
field = "", Auxin7pin , {caninput_sel7 == 2 || caninput_sel0 == 3}
field = "", Auxin8pin , {caninput_sel8 == 2 || caninput_sel0 == 3}
field = "", Auxin9pin , {caninput_sel9 == 2 || caninput_sel0 == 3}
field = "", Auxin10pin , {caninput_sel10 == 2 || caninput_sel0 == 3}
field = "", Auxin11pin , {caninput_sel11 == 2 || caninput_sel0 == 3}
field = "", Auxin12pin , {caninput_sel12 == 2 || caninput_sel0 == 3}
field = "", Auxin13pin , {caninput_sel13 == 2 || caninput_sel0 == 3}
field = "", Auxin14pin , {caninput_sel14 == 2 || caninput_sel0 == 3}
field = "", Auxin15pin , {caninput_sel15 == 2 || caninput_sel0 == 3}
dialog = Auxinput_alias, "", yAxis
field = "Input Alias"
field = "", AUXin00Alias , {caninput_sel0}
field = "", AUXin01Alias , {caninput_sel1}
field = "", AUXin02Alias , {caninput_sel2}
field = "", AUXin03Alias , {caninput_sel3}
field = "", AUXin04Alias , {caninput_sel4}
field = "", AUXin05Alias , {caninput_sel5}
field = "", AUXin06Alias , {caninput_sel6}
field = "", AUXin07Alias , {caninput_sel7}
field = "", AUXin08Alias , {caninput_sel8}
field = "", AUXin09Alias , {caninput_sel9}
field = "", AUXin10Alias , {caninput_sel10}
field = "", AUXin11Alias , {caninput_sel11}
field = "", AUXin12Alias , {caninput_sel12}
field = "", AUXin13Alias , {caninput_sel13}
field = "", AUXin14Alias , {caninput_sel14}
field = "", AUXin15Alias , {caninput_sel15}
dialog = Auxinput_channelenable, "", yAxis
field = " Aux Input Channel Enable"
field = "AUX Input 0", caninput_sel0
field = "AUX Input 1", caninput_sel1
field = "AUX Input 2", caninput_sel2
field = "AUX Input 3", caninput_sel3
field = "AUX Input 4", caninput_sel4
field = "AUX Input 5", caninput_sel5
field = "AUX Input 6", caninput_sel6
field = "AUX Input 7", caninput_sel7
field = "AUX Input 8", caninput_sel8
field = "AUX Input 9", caninput_sel9
field = "AUX Input 10", caninput_sel10
field = "AUX Input 11", caninput_sel11
field = "AUX Input 12", caninput_sel12
field = "AUX Input 13", caninput_sel13
field = "AUX Input 14", caninput_sel14
field = "AUX Input 15", caninput_sel15
dialog = Auxin_config, "Auxillary Input Configuration",xAxis
panel = Auxinput_alias
panel = Auxinput_channelenable
panel = Auxinput_pin_selection
;------------------------------------------------------------------------------- ;-------------------------------------------------------------------------------
; General help text ; General help text

View File

@ -191,7 +191,7 @@ const char TSfirmwareVersion[] = "Speeduino 2016.09";
const byte data_structure_version = 2; //This identifies the data structure when reading / writing. const byte data_structure_version = 2; //This identifies the data structure when reading / writing.
//const byte page_size = 64; //const byte page_size = 64;
const int16_t npage_size[11] = {0,288,128,288,128,288,128,240,192,128,192}; const int16_t npage_size[11] = {0,288,128,288,128,288,128,240,192,192,192};
//const byte page11_size = 128; //const byte page11_size = 128;
#define MAP_PAGE_SIZE 288 #define MAP_PAGE_SIZE 288
@ -653,39 +653,27 @@ struct config6 {
struct config9 { struct config9 {
byte enable_canbus:2; byte enable_canbus:2;
byte enable_candata_in:1; byte enable_candata_in:1;
uint16_t caninput_sel; //bit status on/off if input is enabled byte caninput_sel[16]; //bit status on/Can/analog_local/digtal_local if input is enabled
uint16_t caninput_source_can_address[16]; //u16 [15] array holding can address of input uint16_t caninput_source_can_address[16]; //u16 [15] array holding can address of input
uint8_t caninput_source_start_byte[16]; //u08 [15] array holds the start byte number(value of 0-7) uint8_t caninput_source_start_byte[16]; //u08 [15] array holds the start byte number(value of 0-7)
uint16_t caninput_source_num_bytes; //u16 bit status of the number of bytes length 1 or 2 uint16_t caninput_source_num_bytes; //u16 bit status of the number of bytes length 1 or 2
byte unused10_53; byte unused10_67;
byte unused10_54; byte unused10_68;
byte enable_candata_out : 1; byte enable_candata_out : 1;
byte canoutput_sel[8]; byte canoutput_sel[8];
uint16_t canoutput_param_group[8]; uint16_t canoutput_param_group[8];
uint8_t canoutput_param_start_byte[8]; uint8_t canoutput_param_start_byte[8];
byte canoutput_param_num_bytes[8]; byte canoutput_param_num_bytes[8];
byte unused10_97;
byte unused10_98;
byte unused10_99;
byte speeduino_tsCanId:4; //speeduino TS canid (0-14)
uint16_t true_address; //speeduino 11bit can address
uint16_t realtime_base_address; //speeduino 11 bit realtime base address
uint16_t obd_address; //speeduino OBD diagnostic address
byte unused10_107;
byte unused10_108;
byte unused10_109;
byte unused10_110; byte unused10_110;
byte unused10_111; byte unused10_111;
byte unused10_112; byte unused10_112;
byte unused10_113; byte unused10_113;
byte unused10_114; byte speeduino_tsCanId:4; //speeduino TS canid (0-14)
byte unused10_115; uint16_t true_address; //speeduino 11bit can address
byte unused10_116; uint16_t realtime_base_address; //speeduino 11 bit realtime base address
byte unused10_117; uint16_t obd_address; //speeduino OBD diagnostic address
byte unused10_118; uint8_t Auxinpin[16];
byte unused10_119;
byte unused10_120;
byte unused10_121; byte unused10_121;
byte unused10_122; byte unused10_122;
byte unused10_123; byte unused10_123;
@ -693,6 +681,71 @@ struct config9 {
byte unused10_125; byte unused10_125;
byte unused10_126; byte unused10_126;
byte unused10_127; byte unused10_127;
byte unused10_128;
byte unused10_129;
byte unused10_130;
byte unused10_131;
byte unused10_132;
byte unused10_133;
byte unused10_134;
byte unused10_135;
byte unused10_136;
byte unused10_137;
byte unused10_138;
byte unused10_139;
byte unused10_140;
byte unused10_141;
byte unused10_142;
byte unused10_143;
byte unused10_144;
byte unused10_145;
byte unused10_146;
byte unused10_147;
byte unused10_148;
byte unused10_149;
byte unused10_150;
byte unused10_151;
byte unused10_152;
byte unused10_153;
byte unused10_154;
byte unused10_155;
byte unused10_156;
byte unused10_157;
byte unused10_158;
byte unused10_159;
byte unused10_160;
byte unused10_161;
byte unused10_162;
byte unused10_163;
byte unused10_164;
byte unused10_165;
byte unused10_166;
byte unused10_167;
byte unused10_168;
byte unused10_169;
byte unused10_170;
byte unused10_171;
byte unused10_172;
byte unused10_173;
byte unused10_174;
byte unused10_175;
byte unused10_176;
byte unused10_177;
byte unused10_178;
byte unused10_179;
byte unused10_180;
byte unused10_181;
byte unused10_182;
byte unused10_183;
byte unused10_184;
byte unused10_185;
byte unused10_186;
byte unused10_187;
byte unused10_188;
byte unused10_189;
byte unused10_190;
byte unused10_191;
#if defined(CORE_AVR) #if defined(CORE_AVR)
}; };
#else #else

View File

@ -43,7 +43,8 @@ static inline void readMAP() __attribute__((always_inline));
void readTPS(); void readTPS();
void readO2_2(); void readO2_2();
void flexPulse(); void flexPulse();
uint16_t readAuxanalog(uint8_t analogPin);
uint16_t readAuxdigital(uint8_t digitalPin);
#if defined(ANALOG_ISR) #if defined(ANALOG_ISR)
//Analog ISR interrupt routine //Analog ISR interrupt routine

View File

@ -318,3 +318,24 @@ void flexPulse()
{ {
++flexCounter; ++flexCounter;
} }
uint16_t readAuxanalog(uint8_t analogPin)
{
//read the Aux analog value for pin set by analogPin
unsigned int tempReading;
#if defined(ANALOG_ISR)
tempReading = fastMap1023toX(AnChannel[analogPin-A0], 511); //Get the current raw Auxanalog value
#else
tempReading = analogRead(analogPin);
tempReading = fastMap1023toX(analogRead(analogPin), 511); //Get the current raw Auxanalog value
#endif
return tempReading;
}
uint16_t readAuxdigital(uint8_t digitalPin)
{
//read the Aux digital value for pin set by digitalPin
unsigned int tempReading;
tempReading = digitalRead(digitalPin);
return tempReading;
}

View File

@ -963,45 +963,65 @@ void loop()
if(eepromWritesPending == true) { writeAllConfig(); } //Check for any outstanding EEPROM writes. if(eepromWritesPending == true) { writeAllConfig(); } //Check for any outstanding EEPROM writes.
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3 #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3
//if Can interface is enabled then check for external data requests. //check through the Aux input channels if enabed for Can or local use
if (configPage9.enable_candata_in) //if external data input is enabled for (byte AuxinChan = 0; AuxinChan <16 ; AuxinChan++)
{ {
if (configPage9.enable_canbus == 1) // megas only support can via secondary serial currentStatus.current_caninchannel = AuxinChan;
{ //currentStatus.canin[14] = currentStatus.current_caninchannel;
for (byte caninChan = 0; caninChan <16 ; caninChan++) //currentStatus.canin[13] = ((configPage9.caninput_source_can_address[currentStatus.current_caninchannel]&2047)+0x100);
if (configPage9.caninput_sel[currentStatus.current_caninchannel] == 1) //if current input channel is enabled as canbus
{
if (configPage9.enable_candata_in) //if external data input is enabled
{
if (configPage9.enable_canbus == 1) // megas only support can via secondary serial
{ {
currentStatus.current_caninchannel = caninChan; sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage9.caninput_source_can_address[currentStatus.current_caninchannel]&2047)+0x100));
//currentStatus.canin[14] = currentStatus.current_caninchannel; //send an R command for data from caninput_source_address[currentStatus.current_caninchannel]
currentStatus.canin[13] = ((configPage9.caninput_source_can_address[currentStatus.current_caninchannel]&2047)+0x100);
if (BIT_CHECK(configPage9.caninput_sel,currentStatus.current_caninchannel)) //if current input channel bit is enabled
{
sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage9.caninput_source_can_address[currentStatus.current_caninchannel]&2047)+0x100));
//send an R command for data from caninput_source_address[currentStatus.current_caninchannel]
}
} }
} }
} }
else if (configPage9.caninput_sel[currentStatus.current_caninchannel] == 2) //if current input channel is enabled as analog local pin
{
//read analog channel specified
canin[currentStatus.current_caninchannel] = readAuxanalog(configPage9.Auxinpin[currentStatus.current_caninchannel]);
}
else if (configPage9.caninput_sel[currentStatus.current_caninchannel] == 3) //if current input channel is enabled as digital local pin
{
//read digital channel specified
canin[currentStatus.current_caninchannel] = readAuxdigital(configPage9.Auxinpin[currentStatus.current_caninchannel]);
}
}
#elif defined(CORE_STM32) || defined(CORE_TEENSY) #elif defined(CORE_STM32) || defined(CORE_TEENSY)
//if serial3io is enabled then check for serial3 requests. //check through the Aux input channels if enabed for Can or local use
if (configPage9.enable_candata_in) for (byte AuxinChan = 0; AuxinChan <16 ; AuxinChan++)
{ {
for (byte caninChan = 0; caninChan <16 ; caninChan++) currentStatus.current_caninchannel = AuxinChan;
{ if (configPage9.caninput_sel[currentStatus.current_caninchannel] == 1) //if current input channel is enabled as canbus
currentStatus.current_caninchannel = caninChan; {
if (BIT_CHECK(configPage9.caninput_sel,currentStatus.current_caninchannel)) //if current input channel is enabled if (configPage9.enable_candata_in)
{
if (configPage9.enable_canbus == 1) //can via secondary serial
{ {
if (configPage9.enable_canbus == 1) //can via secondary serial sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage9.caninput_source_can_address[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel]
{
sendCancommand(2,0,currentStatus.current_caninchannel,0,((configPage9.caninput_source_can_address[currentStatus.current_caninchannel]&2047)+256)); //send an R command for data from paramgroup[currentStatus.current_caninchannel]
}
else if (configPage9.enable_canbus == 2) // can via internal can module
{
sendCancommand(3,configPage9.speeduino_tsCanId,currentStatus.current_caninchannel,0,configPage9.caninput_source_can_address[currentStatus.current_caninchannel]); //send via localcanbus the command for data from paramgroup[currentStatus.current_caninchannel]
}
} }
} else if (configPage9.enable_canbus == 2) // can via internal can module
} {
sendCancommand(3,configPage9.speeduino_tsCanId,currentStatus.current_caninchannel,0,configPage9.caninput_source_can_address[currentStatus.current_caninchannel]); //send via localcanbus the command for data from paramgroup[currentStatus.current_caninchannel]
}
}
}
else if (configPage9.caninput_sel[currentStatus.current_caninchannel] == 2) //if current input channel is enabled as analog local pin
{
//read analog channel specified
canin[currentStatus.current_caninchannel] = readAuxanalog(configPage9.Auxinpin[currentStatus.current_caninchannel]);
}
else if (configPage9.caninput_sel[currentStatus.current_caninchannel] == 3) //if current input channel is enabled as digital local pin
{
//read digital channel specified
canin[currentStatus.current_caninchannel] = readAuxdigital(configPage9.Auxinpin[currentStatus.current_caninchannel]);
}
}
#endif #endif
vvtControl(); vvtControl();
idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient. idleControl(); //Perform any idle related actions. Even at higher frequencies, running 4x per second is sufficient.