• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

PJSC(Pump Jet Solenoid Controller)はArduinoを使用したバイク用燃料噴射コントローラです。このプロジェクトは、オープンソースECUプロジェクト『Speeduino』をベースにしています。


Commit MetaInfo

Revision25 (tree)
Time2019-01-01 15:43:38
Authormaharu

Log Message

Speeduino Oct.2018 version

Change Summary

Incremental Difference

--- branches/Speeduino/README.md (revision 24)
+++ branches/Speeduino/README.md (revision 25)
@@ -1,8 +1,9 @@
11
22 | | |
33 | --- | --- |
4-| **Dev Status** | ![Unstable](https://img.shields.io/badge/Status-Unstable--Use%20Release-red.svg) |
5-| **Build** | [![Build status](https://img.shields.io/travis/noisymime/speeduino.svg)](https://travis-ci.org/noisymime/speeduino/) |
4+| **Dev Status** | ![Mostly stable](https://img.shields.io/badge/Status-Mostly--Stable-orange.svg) |
5+| **Latest Release** | [![GitHub release](https://img.shields.io/github/release/noisymime/speeduino.svg)](https://github.com/noisymime/speeduino/releases/tag/201808) |
6+| **MISRA Status** | [![MISRA](https://img.shields.io/travis/noisymime/speeduino.svg)](https://travis-ci.org/noisymime/speeduino/) |
67 | **Feature Bounties** | [![Bountysource](https://img.shields.io/bountysource/team/speeduino/activity.svg)](https://www.bountysource.com/teams/speeduino)
78
89 Speeduino
--- branches/Speeduino/reference/speeduino.ini (revision 24)
+++ branches/Speeduino/reference/speeduino.ini (revision 25)
@@ -6,7 +6,7 @@
66 MTversion = 2.25
77
88 queryCommand = "Q"
9- signature = "speeduino 201808"
9+ signature = "speeduino 201810"
1010 versionInfo = "S" ;This info is what is displayed to user
1111
1212 [TunerStudio]
@@ -76,8 +76,27 @@
7676 AUXin12Alias = string, ASCII, 20
7777 AUXin13Alias = string, ASCII, 20
7878 AUXin14Alias = string, ASCII, 20
79- AUXin15Alias = string, ASCII, 20
79+ AUXin15Alias = string, ASCII, 20
8080
81+ ;Define aliases for all the triggers. Naming pattern matches that used in decoders.ino
82+ #define trigger_missingTooth = 0
83+ #define trigger_BasicDistributor = 1
84+ #define trigger_DualWheel = 2
85+ #define trigger_GM7X = 3
86+ #define trigger_4G63 = 4
87+ #define trigger_24X = 5
88+ #define trigger_Jeep2000 = 6
89+ #define trigger_Audi135 = 7
90+ #define trigger_HondaD17 = 8
91+ #define trigger_Miata9905 = 9
92+ #define trigger_MazdaAU = 10
93+ #define trigger_non360 = 11
94+ #define trigger_Nissan360 = 12
95+ #define trigger_Subaru67 = 13
96+ #define trigger_Daihatsu = 14
97+ #define trigger_Harley = 15
98+ #define trigger_ThirtySixMinus222 = 16
99+
81100
82101 [Constants]
83102
@@ -306,11 +325,11 @@
306325 FixAng = scalar, S08, 2, "Deg", 1, 0, -64, 64, 0 ; Allow negative values here
307326 CrankAng = scalar, U08, 3, "Deg", 1, 0, -10, 80, 0
308327 TrigAngMul = scalar, U08, 4, "", 1, 0, 0, 88, 0 ; Multiplier for tooth counts that don't evenly divide into 360
309- TrigEdge = bits, U08, 5,[0:0], "Leading", "Trailing"
328+ TrigEdge = bits, U08, 5,[0:0], "RISING", "FALLING"
310329 TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed"
311330 IgInv = bits, U08, 5,[2:2], "Going Low", "Going High"
312331 TrigPattern= bits, U08, 5,[3:7], "Missing Tooth", "Basic Distributor", "Dual Wheel", "GM 7X", "4G63 / Miata / 3000GT", "GM 24X", "Jeep 2000", "Audi 135", "Honda D17", "Miata 99-05", "Mazda AU", "Non-360 Dual", "Nissan 360", "Subaru 6/7", "Daihatsu +1", "Harley EVO", "36-2-2-2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
313- TrigEdgeSec= bits, U08, 6,[0:0], "Leading", "Trailing"
332+ TrigEdgeSec= bits, U08, 6,[0:0], "RISING", "FALLING"
314333 fuelPumpPin= bits , U08, 6,[1:6], "Board Default", "INVALID", "INVALID", "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", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "INVALID"
315334 useResync = bits, U08, 6,[7:7], "No", "Yes"
316335 sparkDur = scalar, U08, 7, "ms", 0.1, 0, 0, 25.5, 1 ; Spark duration
@@ -374,11 +393,19 @@
374393 dfcoHyster = scalar, U08, 61, "RPM", 1.0, 0.0, 100, 255.0, 0
375394 dfcoTPSThresh= scalar, U08, 62, "%", 1.0, 0.0, 0, 100.0, 0
376395 ;Cranking ignition bypass
377- ignBypassEnable = bits, U08, 63, [0:0], "Off", "On"
378- ignBypassPin = bits , U08, 63, [1:6], "INVALID", "INVALID", "INVALID", "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"
379- ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH"
396+ ignBypassEnable = bits, U08, 63, [0:0], "Off", "On"
397+ ignBypassPin = bits , U08, 63, [1:6], "INVALID", "INVALID", "INVALID", "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"
398+ ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH"
399+;Analog input filter levels (Note max values are 254 so that default values of 255 can be overwirtten on bootup)
400+ ADCFILTER_TPS = scalar, U08, 64, "%", 1.0, 0.0, 0, 240, 0
401+ ADCFILTER_CLT = scalar, U08, 65, "%", 1.0, 0.0, 0, 240, 0
402+ ADCFILTER_IAT = scalar, U08, 66, "%", 1.0, 0.0, 0, 240, 0
403+ ADCFILTER_O2 = scalar, U08, 67, "%", 1.0, 0.0, 0, 240, 0
404+ ADCFILTER_BAT = scalar, U08, 68, "%", 1.0, 0.0, 0, 240, 0
405+ ADCFILTER_MAP = scalar, U08, 69, "%", 1.0, 0.0, 0, 240, 0
406+ ADCFILTER_BARO = scalar, U08, 70, "%", 1.0, 0.0, 0, 240, 0
380407
381- unused4-64 = array, U08, 64, [63], "%", 1.0, 0.0, 0.0, 255, 0
408+ unused4-64 = array, U08, 71, [56], "%", 1.0, 0.0, 0.0, 255, 0
382409 ;--------------------------------------------------
383410 ;Start AFR page
384411 ;--------------------------------------------------
@@ -584,48 +611,106 @@
584611 ;CANBUS control and Auxillary io(Page 9)
585612 ;--------------------------------------------------
586613 page = 9
587- #if CAN_COMMANDS
588- enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "ON via Internal CAN ", "INVALID"
589- #else
590- enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "INVALID", "INVALID"
591- #endif
592- enable_candata_in = bits, U08, 0, [2:2], "Off", "On"
593- #if CAN_COMMANDS
594- caninput_sel0 = bits, U08, 1, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
595- caninput_sel1 = bits, U08, 2, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
596- caninput_sel2 = bits, U08, 3, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
597- caninput_sel3 = bits, U08, 4, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
598- caninput_sel4 = bits, U08, 5, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
599- caninput_sel5 = bits, U08, 6, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
600- caninput_sel6 = bits, U08, 7, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
601- caninput_sel7 = bits, U08, 8, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
602- caninput_sel8 = bits, U08, 9, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
603- caninput_sel9 = bits, U08, 10, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
604- caninput_sel10 = bits, U08, 11, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
605- caninput_sel11 = bits, U08, 12, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
606- caninput_sel12 = bits, U08, 13, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
607- caninput_sel13 = bits, U08, 14, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
608- caninput_sel14 = bits, U08, 15, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
609- caninput_sel15 = bits, U08, 16, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
610- #else
611- caninput_sel0 = bits, U08, 1, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
612- caninput_sel1 = bits, U08, 2, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
613- caninput_sel2 = bits, U08, 3, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
614- caninput_sel3 = bits, U08, 4, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
615- caninput_sel4 = bits, U08, 5, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
616- caninput_sel5 = bits, U08, 6, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
617- caninput_sel6 = bits, U08, 7, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
618- caninput_sel7 = bits, U08, 8, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
619- caninput_sel8 = bits, U08, 9, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
620- caninput_sel9 = bits, U08, 10, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
621- caninput_sel10 = bits, U08, 11, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
622- caninput_sel11 = bits, U08, 12, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
623- caninput_sel12 = bits, U08, 13, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
624- caninput_sel13 = bits, U08, 14, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
625- caninput_sel14 = bits, U08, 15, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
626- caninput_sel15 = bits, U08, 16, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
627- #endif
628- ;caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0
614+ enable_secondarySerial = bits, U08, 0, [0:0], "Disable", "Enable"
615+ intcan_available = bits, U08, 0, [1:1], "Disable", "Enable"
616+ enable_intcan = bits, U08, 0, [2:2], "Disable", "Enable"
617+
618+ caninput_sel0a = bits, U08, 1, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
619+ caninput_sel0b = bits, U08, 1, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
620+ caninput_sel0extsourcea = bits, U08, 1, [5:5], "Via Secondary Serial", "INVALID"
621+ caninput_sel0extsourceb = bits, U08, 1, [6:6], "Via Secondary Serial", "Via Internal CAN"
622+ caninput_sel0extsourcec = bits, U08, 1, [7:7], "INVALID", "Via Internal CAN"
623+
624+ caninput_sel1a = bits, U08, 2, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
625+ caninput_sel1b = bits, U08, 2, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
626+ caninput_sel1extsourcea = bits, U08, 2, [5:5], "Via Secondary Serial", "INVALID"
627+ caninput_sel1extsourceb = bits, U08, 2, [6:6], "Via Secondary Serial", "Via Internal CAN"
628+ caninput_sel1extsourcec = bits, U08, 2, [7:7], "INVALID", "Via Internal CAN"
629+
630+ caninput_sel2a = bits, U08, 3, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
631+ caninput_sel2b = bits, U08, 3, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
632+ caninput_sel2extsourcea = bits, U08, 3, [5:5], "Via Secondary Serial", "INVALID"
633+ caninput_sel2extsourceb = bits, U08, 3, [6:6], "Via Secondary Serial", "Via Internal CAN"
634+ caninput_sel2extsourcec = bits, U08, 3, [7:7], "INVALID", "Via Internal CAN"
635+
636+ caninput_sel3a = bits, U08, 4, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
637+ caninput_sel3b = bits, U08, 4, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
638+ caninput_sel3extsourcea = bits, U08, 4, [5:5], "Via Secondary Serial", "INVALID"
639+ caninput_sel3extsourceb = bits, U08, 4, [6:6], "Via Secondary Serial", "Via Internal CAN"
640+ caninput_sel3extsourcec = bits, U08, 4, [7:7], "INVALID", "Via Internal CAN"
641+
642+ caninput_sel4a = bits, U08, 5, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
643+ caninput_sel4b = bits, U08, 5, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
644+ caninput_sel4extsourcea = bits, U08, 5, [5:5], "Via Secondary Serial", "INVALID"
645+ caninput_sel4extsourceb = bits, U08, 5, [6:6], "Via Secondary Serial", "Via Internal CAN"
646+ caninput_sel4extsourcec = bits, U08, 5, [7:7], "INVALID", "Via Internal CAN"
647+
648+ caninput_sel5a = bits, U08, 6, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
649+ caninput_sel5b = bits, U08, 6, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
650+ caninput_sel5extsourcea = bits, U08, 6, [5:5], "Via Secondary Serial", "INVALID"
651+ caninput_sel5extsourceb = bits, U08, 6, [6:6], "Via Secondary Serial", "Via Internal CAN"
652+ caninput_sel5extsourcec = bits, U08, 6, [7:7], "INVALID", "Via Internal CAN"
653+
654+ caninput_sel6a = bits, U08, 7, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
655+ caninput_sel6b = bits, U08, 7, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
656+ caninput_sel6extsourcea = bits, U08, 7, [5:5], "Via Secondary Serial", "INVALID"
657+ caninput_sel6extsourceb = bits, U08, 7, [6:6], "Via Secondary Serial", "Via Internal CAN"
658+ caninput_sel6extsourcec = bits, U08, 7, [7:7], "INVALID", "Via Internal CAN"
659+
660+ caninput_sel7a = bits, U08, 8, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
661+ caninput_sel7b = bits, U08, 8, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
662+ caninput_sel7extsourcea = bits, U08, 8, [5:5], "Via Secondary Serial", "INVALID"
663+ caninput_sel7extsourceb = bits, U08, 8, [6:6], "Via Secondary Serial", "Via Internal CAN"
664+ caninput_sel7extsourcec = bits, U08, 8, [7:7], "INVALID", "Via Internal CAN"
665+
666+ caninput_sel8a = bits, U08, 9, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
667+ caninput_sel8b = bits, U08, 9, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
668+ caninput_sel8extsourcea = bits, U08, 9, [5:5], "Via Secondary Serial", "INVALID"
669+ caninput_sel8extsourceb = bits, U08, 9, [6:6], "Via Secondary Serial", "Via Internal CAN"
670+ caninput_sel8extsourcec = bits, U08, 9, [7:7], "INVALID", "Via Internal CAN"
671+
672+ caninput_sel9a = bits, U08, 10, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
673+ caninput_sel9b = bits, U08, 10, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
674+ caninput_sel9extsourcea = bits, U08, 10, [5:5], "Via Secondary Serial", "INVALID"
675+ caninput_sel9extsourceb = bits, U08, 10, [6:6], "Via Secondary Serial", "Via Internal CAN"
676+ caninput_sel9extsourcec = bits, U08, 10, [7:7], "INVALID", "Via Internal CAN"
677+
678+ caninput_sel10a = bits, U08, 11, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
679+ caninput_sel10b = bits, U08, 11, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
680+ caninput_sel10extsourcea = bits, U08, 11, [5:5], "Via Secondary Serial", "INVALID"
681+ caninput_sel10extsourceb = bits, U08, 11, [6:6], "Via Secondary Serial", "Via Internal CAN"
682+ caninput_sel10extsourcec = bits, U08, 11, [7:7], "INVALID", "Via Internal CAN"
683+
684+ caninput_sel11a = bits, U08, 12, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
685+ caninput_sel11b = bits, U08, 12, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
686+ caninput_sel11extsourcea = bits, U08, 12, [5:5], "Via Secondary Serial", "INVALID"
687+ caninput_sel11extsourceb = bits, U08, 12, [6:6], "Via Secondary Serial", "Via Internal CAN"
688+ caninput_sel11extsourcec = bits, U08, 12, [7:7], "INVALID", "Via Internal CAN"
689+
690+ caninput_sel12a = bits, U08, 13, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
691+ caninput_sel12b = bits, U08, 13, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
692+ caninput_sel12extsourcea = bits, U08, 13, [5:5], "Via Secondary Serial", "INVALID"
693+ caninput_sel12extsourceb = bits, U08, 13, [6:6], "Via Secondary Serial", "Via Internal CAN"
694+ caninput_sel12extsourcec = bits, U08, 13, [7:7], "INVALID", "Via Internal CAN"
695+
696+ caninput_sel13a = bits, U08, 14, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
697+ caninput_sel13b = bits, U08, 14, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
698+ caninput_sel13extsourcea = bits, U08, 14, [5:5], "Via Secondary Serial", "INVALID"
699+ caninput_sel13extsourceb = bits, U08, 14, [6:6], "Via Secondary Serial", "Via Internal CAN"
700+ caninput_sel13extsourcec = bits, U08, 14, [7:7], "INVALID", "Via Internal CAN"
701+
702+ caninput_sel14a = bits, U08, 15, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
703+ caninput_sel14b = bits, U08, 15, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
704+ caninput_sel14extsourcea = bits, U08, 15, [5:5], "Via Secondary Serial", "INVALID"
705+ caninput_sel14extsourceb = bits, U08, 15, [6:6], "Via Secondary Serial", "Via Internal CAN"
706+ caninput_sel14extsourcec = bits, U08, 15, [7:7], "INVALID", "Via Internal CAN"
707+
708+ caninput_sel15a = bits, U08, 16, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
709+ caninput_sel15b = bits, U08, 16, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
710+ caninput_sel15extsourcea = bits, U08, 16, [5:5], "Via Secondary Serial", "INVALID"
711+ caninput_sel15extsourceb = bits, U08, 16, [6:6], "Via Secondary Serial", "Via Internal CAN"
712+ caninput_sel15extsourcec = bits, U08, 16, [7:7], "INVALID", "Via Internal CAN"
713+
629714 caninput_source_can_address0 = bits, U16, 17, [0:10], $CAN_ADDRESS_HEX
630715 caninput_source_can_address1 = bits, U16, 19, [0:10], $CAN_ADDRESS_HEX
631716 caninput_source_can_address2 = bits, U16, 21, [0:10], $CAN_ADDRESS_HEX
@@ -643,8 +728,6 @@
643728 caninput_source_can_address14 = bits, U16, 45, [0:10], $CAN_ADDRESS_HEX
644729 caninput_source_can_address15 = bits, U16, 47, [0:10], $CAN_ADDRESS_HEX
645730
646-
647-
648731 caninput_source_start_byte0 = bits, U08, 49, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
649732 caninput_source_start_byte1 = bits, U08, 50, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
650733 caninput_source_start_byte2 = bits, U08, 51, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
@@ -682,7 +765,7 @@
682765 unused10_67 = scalar, U08, 67, "", 1, 0, 0, 255, 0
683766 unused10_68 = scalar, U08, 68, "", 1, 0, 0, 255, 0
684767
685- enable_candata_out = bits, U08, 69, [0:0], "Off", "On"
768+ enable_intcandata_out = bits, U08, 69, [0:0], "Off", "On"
686769 canoutput_sel0 = bits, U08, 70, [0:0], "Off", "On"
687770 canoutput_sel1 = bits, U08, 71, [0:0], "Off", "On"
688771 canoutput_sel2 = bits, U08, 72, [0:0], "Off", "On"
@@ -719,10 +802,6 @@
719802 realtime_base_address = bits, U16, 117, [0:10], $CAN_ADDRESS_HEX
720803 obd_address = bits, U16, 119, [0:10], $CAN_ADDRESS_HEX
721804
722- ;AFR offset for WUE VeAnalyze
723- ;wueAFRRates = array, U08, 107, [10], "%", 1.0, 0.0, 0.0, 255, 0
724- ;wueAFRBins = array, U08, 117, [10], "C", 1.0, -40, -40, 102.0, 0
725-
726805 Auxin0pina = bits, U08, 121, [0:5], $ANALOG_PIN
727806 Auxin1pina = bits, U08, 122, [0:5], $ANALOG_PIN
728807 Auxin2pina = bits, U08, 123, [0:5], $ANALOG_PIN
@@ -950,7 +1029,41 @@
9501029 requiresPowerCycle = knock_pin
9511030 requiresPowerCycle = knock_trigger
9521031 requiresPowerCycle = knock_pullup
1032+ requiresPowerCycle = idleUpEnabled
9531033
1034+ requiresPowerCycle = caninput_sel0a
1035+ requiresPowerCycle = caninput_sel0b
1036+ requiresPowerCycle = caninput_sel1a
1037+ requiresPowerCycle = caninput_sel1b
1038+ requiresPowerCycle = caninput_sel2a
1039+ requiresPowerCycle = caninput_sel2b
1040+ requiresPowerCycle = caninput_sel3a
1041+ requiresPowerCycle = caninput_sel3b
1042+ requiresPowerCycle = caninput_sel4a
1043+ requiresPowerCycle = caninput_sel4b
1044+ requiresPowerCycle = caninput_sel5a
1045+ requiresPowerCycle = caninput_sel5b
1046+ requiresPowerCycle = caninput_sel6a
1047+ requiresPowerCycle = caninput_sel6b
1048+ requiresPowerCycle = caninput_sel7a
1049+ requiresPowerCycle = caninput_sel7b
1050+ requiresPowerCycle = caninput_sel8a
1051+ requiresPowerCycle = caninput_sel8b
1052+ requiresPowerCycle = caninput_sel9a
1053+ requiresPowerCycle = caninput_sel9b
1054+ requiresPowerCycle = caninput_sel10a
1055+ requiresPowerCycle = caninput_sel10b
1056+ requiresPowerCycle = caninput_sel11a
1057+ requiresPowerCycle = caninput_sel11b
1058+ requiresPowerCycle = caninput_sel12a
1059+ requiresPowerCycle = caninput_sel12b
1060+ requiresPowerCycle = caninput_sel13a
1061+ requiresPowerCycle = caninput_sel13b
1062+ requiresPowerCycle = caninput_sel14a
1063+ requiresPowerCycle = caninput_sel14b
1064+ requiresPowerCycle = caninput_sel15a
1065+ requiresPowerCycle = caninput_sel15b
1066+
9541067 defaultValue = pinLayout, 1
9551068 defaultValue = TrigPattern, 0
9561069 defaultValue = useResync, 1
@@ -1015,6 +1128,26 @@
10151128 defaultValue = perToothIgn, 0
10161129 defaultValue = resetControlPin, 0
10171130
1131+ ;Default ADC filter values
1132+ defaultValue = ADCFILTER_TPS 50
1133+ defaultValue = ADCFILTER_CLT 180
1134+ defaultValue = ADCFILTER_IAT 180
1135+ defaultValue = ADCFILTER_O2 100
1136+ defaultValue = ADCFILTER_BAT 128
1137+ defaultValue = ADCFILTER_MAP 20 ;This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response
1138+ defaultValue = ADCFILTER_BARO 64
1139+ ;Force the controller priority for the filters (Controller knows best here when in doubt)
1140+ controllerPriority = ADCFILTER_TPS
1141+ controllerPriority = ADCFILTER_CLT
1142+ controllerPriority = ADCFILTER_IAT
1143+ controllerPriority = ADCFILTER_O2
1144+ controllerPriority = ADCFILTER_BAT
1145+ controllerPriority = ADCFILTER_MAP
1146+ controllerPriority = ADCFILTER_BARO
1147+ ;Again, force the setting from the controller for the trigger edges. This is particularly useful for the Oct 2018 update where the names of the dges changed
1148+ controllerPriority = TrigEdge
1149+ controllerPriority = TrigEdgeSec
1150+
10181151 ;These are the limits for each of the load algorithms (Refer to the PC Variables section)
10191152 ;Order is: MAP TPS IMAP/EMAP ITB UNUSED UNUSED UNUSED UNUSED
10201153 defaultValue = algorithmLimits, 511 100 511 511 100 100 100 100
@@ -1136,12 +1269,14 @@
11361269 #if CAN_COMMANDS
11371270 subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface"
11381271 subMenu = std_separator
1139- subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_canbus}
1272+ subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_secondarySerial || (enable_intcan && intcan_available)}
11401273 subMenu = Auxin_config, "Local Auxillary Input Channel Configuration"
11411274 ;subMenu = std_separator
11421275 ;subMenu = Canout_config, "Canbus Output Configuration"
11431276 #else
1144- subMenu = serial3IO, "Secondary Serial IO Interface"
1277+ subMenu = serial3IO, "Canbus/Secondary Serial IO Interface"
1278+ subMenu = std_separator
1279+ subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_secondarySerial || (enable_intcan && intcan_available)}
11451280 subMenu = Auxin_config, "Local Auxillary Input Channel Configuration"
11461281 #endif
11471282
@@ -1150,6 +1285,7 @@
11501285 subMenu = mapCal, "Calibrate Pressure Sensors"
11511286 subMenu = std_ms2gentherm, "Calibrate Temperature Sensors", 0
11521287 subMenu = std_ms2geno2, "Calibrate AFR Sensor", 0
1288+ subMenu = sensorFilters, "Set analog sensor filters"
11531289
11541290 menuDialog = main
11551291 menu = "3D &Tuning Maps"
@@ -1250,11 +1386,8 @@
12501386 flatSRetard = "The absolute timing (BTDC) that will be used when within the soft limit window"
12511387 hardCutType = "How hard cuts should be performed for rev/launch limits. Full cut will stop all ignition events, Rolling cut will step through all ignition outputs, only cutting 1 per revolution"
12521388
1253- #if CAN_COMMANDS
1254- enable_canbus = "This Enables either the secondary serial port or output via internal Can module. Secondary serial is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor "
1255- #else
1256- enable_canbus = "This Enables the IO on the secondary serial port. This is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor "
1257- #endif
1389+ enable_secondarySerial = "This Enables the secondary serial port . Secondary serial is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor "
1390+
12581391 ;speeduino_tsCanId = "This is the TsCanId that the Speeduino ECU will respond to. This should match the main controller CAN ID in project properties if it is connected directy to TunerStudio, Otherwise the device ID if connected via CAN passthrough"
12591392 true_address = "This is the 11bit Can address of the Speeduino ECU "
12601393 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"
@@ -1275,22 +1408,41 @@
12751408 AUXin13Alias = "The Ascii alias asigned to Aux input channel 13"
12761409 AUXin14Alias = "The Ascii alias asigned to Aux input channel 14"
12771410 AUXin15Alias = "The Ascii alias asigned to Aux input channel 15"
1278- caninput_sel0 = "This Enables External/CAN data or local analog/digital on input channel 0 "
1279- caninput_sel1 = "This Enables External/CAN data or local analog/digital on input channel 1 "
1280- caninput_sel2 = "This Enables External/CAN data or local analog/digital on input channel 2 "
1281- caninput_sel3 = "This Enables External/CAN data or local analog/digital on input channel 3 "
1282- caninput_sel4 = "This Enables External/CAN data or local analog/digital on input channel 4 "
1283- caninput_sel5 = "This Enables External/CAN data or local analog/digital on input channel 5 "
1284- caninput_sel6 = "This Enables External/CAN data or local analog/digital on input channel 6 "
1285- caninput_sel7 = "This Enables External/CAN data or local analog/digital on input channel 7 "
1286- caninput_sel8 = "This Enables External/CAN data or local analog/digital on input channel 8 "
1287- caninput_sel9 = "This Enables External/CAN data or local analog/digital on input channel 9 "
1288- caninput_sel10 = "This Enables External/CAN data or local analog/digital on input channel 10 "
1289- caninput_sel11 = "This Enables External/CAN data or local analog/digital on input channel 11 "
1290- caninput_sel12 = "This Enables External/CAN data or local analog/digital on input channel 12 "
1291- caninput_sel13 = "This Enables External/CAN data or local analog/digital on input channel 13 "
1292- caninput_sel14 = "This Enables External/CAN data or local analog/digital on input channel 14 "
1293- caninput_sel15 = "This Enables External/CAN data or local analog/digital on input channel 15 "
1411+
1412+ caninput_sel0a = "This Enables local analog/digital on input channel 0 "
1413+ caninput_sel1a = "This Enables local analog/digital on input channel 1 "
1414+ caninput_sel2a = "This Enables local analog/digital on input channel 2 "
1415+ caninput_sel3a = "This Enables local analog/digital on input channel 3 "
1416+ caninput_sel4a = "This Enables local analog/digital on input channel 4 "
1417+ caninput_sel5a = "This Enables local analog/digital on input channel 5 "
1418+ caninput_sel6a = "This Enables local analog/digital on input channel 6 "
1419+ caninput_sel7a = "This Enables local analog/digital on input channel 7 "
1420+ caninput_sel8a = "This Enables local analog/digital on input channel 8 "
1421+ caninput_sel9a = "This Enables local analog/digital on input channel 9 "
1422+ caninput_sel10a = "This Enables local analog/digital on input channel 10 "
1423+ caninput_sel11a = "This Enables local analog/digital on input channel 11 "
1424+ caninput_sel12a = "This Enables local analog/digital on input channel 12 "
1425+ caninput_sel13a = "This Enables local analog/digital on input channel 13 "
1426+ caninput_sel14a = "This Enables local analog/digital on input channel 14 "
1427+ caninput_sel15a = "This Enables local analog/digital on input channel 15 "
1428+
1429+ caninput_sel0b = "This Enables External CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 0 "
1430+ caninput_sel1b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 1 "
1431+ caninput_sel2b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 2 "
1432+ caninput_sel3b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 3 "
1433+ caninput_sel4b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 4 "
1434+ caninput_sel5b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 5 "
1435+ caninput_sel6b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 6 "
1436+ caninput_sel7b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 7 "
1437+ caninput_sel8b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 8 "
1438+ caninput_sel9b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 9 "
1439+ caninput_sel10b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 10 "
1440+ caninput_sel11b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 11 "
1441+ caninput_sel12b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 12 "
1442+ caninput_sel13b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 13 "
1443+ caninput_sel14b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 14 "
1444+ caninput_sel15b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 15 "
1445+
12941446 caninput_source_can_address0 = "The source 11bit CAN address of the data for channel 0"
12951447 caninput_source_can_address1 = "The source 11bit CAN address of the data for channel 1"
12961448 caninput_source_can_address2 = "The source 11bit CAN address of the data for channel 2"
@@ -1351,6 +1503,14 @@
13511503 cmdtestspk350dc = "this will cycle the output at 50% Duty cycle"
13521504 cmdtestspk450dc = "this will cycle the output at 50% Duty cycle"
13531505
1506+ ADCFILTER_TPS = "Recommended value: 50"
1507+ ADCFILTER_CLT = "Recommended value: 180"
1508+ ADCFILTER_IAT = "Recommended value: 180"
1509+ ADCFILTER_O2 = "Recommended value: 128"
1510+ ADCFILTER_BAT = "Recommended value: 128"
1511+ ADCFILTER_MAP = "This setting is only available when using the Instantaneious MAP sampling method. Recommended value: 20"
1512+ ADCFILTER_BARO = "This setting is only available when using an external Baro sensor. Recommended value: 64"
1513+
13541514 boostIntv = "The closed loop control interval will run every this many ms. Generally values between 50% and 100% of the valve frequency work best"
13551515 VVTasOnOff = "Whether or not the VVT table should be treated as on and off control only. If you are using the VVT map to control a switch, this should be Yes. If you are using the VVT control to drive a PWM signal, this should be No"
13561516
@@ -1632,8 +1792,8 @@
16321792 field = "Trigger edge", TrigEdge { TrigPattern != 4 } ;4G63 uses both edges
16331793 field = "Secondary trigger edge", TrigEdgeSec, { (TrigPattern == 0 && TrigSpeed == 0) || TrigPattern == 2 || TrigPattern == 9 || TrigPattern == 12 } ;Missing tooth, dual wheel and Miata 9905
16341794 field = "Missing Tooth Secondary type" trigPatternSec, { (TrigPattern == 0&& TrigSpeed == 0) }
1635- field = "Trigger Filter", TrigFilter
1636- field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 || TrigPattern == 12 || TrigPattern == 9 } ;Dual wheel, 4G63, Audi 135, Nissan 360, Miata 99-05
1795+ field = "Trigger Filter", TrigFilter, { TrigPattern != 13 }
1796+ field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 || TrigPattern == 12 || TrigPattern == 9 || TrigPattern == 13 } ;Dual wheel, 4G63, Audi 135, Nissan 360, Miata 99-05
16371797
16381798 dialog = sparkSettings,"Spark Settings",4
16391799 field = "Ignition load source", ignAlgorithm
@@ -1646,7 +1806,7 @@
16461806 field = "#Note: During cranking the fixed/locked timing angle is overriden by the Cranking advance angle value above"
16471807 field = ""
16481808 field = "#The below option is currently in testing! If unsure what this is, please set to No"
1649- field = "User new ignition mode", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 12 } ;Only works for missing tooth, distributor, dual wheel, 4g63, nissan 360
1809+ field = "Use new ignition mode", perToothIgn, {TrigPattern == 0 || TrigPattern == 1 || TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 12 || TrigPattern == 13 } ;Only works for missing tooth, distributor, dual wheel, 4g63, nissan 360, Subaru 6/7
16501810
16511811 dialog = dwellSettings, "Dwell Settings", 4
16521812 topicHelp = "http://speeduino.com/wiki/index.php/Dwell"
@@ -1768,6 +1928,7 @@
17681928 settingOption = "MPX6400", mapMin=3, mapMax=416 ; https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf VOUT = VS x (0.002421xP–0.00842)
17691929 settingOption = "Denso 079800", mapMin=0, mapMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021
17701930 settingOption = "VW/Audi/Porsche 250kPa", mapMin=26, mapMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502
1931+ settingOption = "Bosch 3 Bar TMAP", mapMin=-6, mapMax=323
17711932
17721933 field = "kPa At 0.0 Volts", mapMin
17731934 field = "kPa At 5.0 Volts", mapMax
@@ -1787,6 +1948,7 @@
17871948 settingOption = "MPX6400", baroMin=3, baroMax=416 ; https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf VOUT = VS x (0.002421xP–0.00842)
17881949 settingOption = "Denso 079800", baroMin=0, baroMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021
17891950 settingOption = "VW/Audi/Porsche 250kPa", baroMin=26, baroMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502
1951+ settingOption = "Bosch 3 Bar TMAP", mapMin=-6, mapMax=323
17901952
17911953 field = "kPa At 0.0 Volts", baroMin, { useExtBaro }
17921954 field = "kPa At 5.0 Volts", baroMax, { useExtBaro }
@@ -1810,6 +1972,19 @@
18101972 field = "kPa At 0.0 Volts", EMAPMin, { useEMAP }
18111973 field = "kPa At 5.0 Volts", EMAPMax, { useEMAP }
18121974
1975+ dialog = sensorFilters, "Analog sensor filters"
1976+ field = "The values here set the amount of filtering to apply to each analog input"
1977+ field = "Higher values result in stronger filtering, but slower response times for readings"
1978+ field = "#Most setups will NOT require changes to the default filter values"
1979+ field = ""
1980+ slider = "Throttle Position Sensor", ADCFILTER_TPS, horizontal
1981+ slider = "Coolant Sensor", ADCFILTER_CLT, horizontal
1982+ slider = "Inlet Air Temp sensor", ADCFILTER_IAT, horizontal
1983+ slider = "O2 sensor", ADCFILTER_O2, horizontal
1984+ slider = "Battery voltage", ADCFILTER_BAT, horizontal
1985+ slider = "MAP sensor", ADCFILTER_MAP, horizontal
1986+ slider = "Baro sensor", ADCFILTER_BARO, horizontal, { useExtBaro > 0 }
1987+
18131988 dialog = boostSettings, "Boost Control"
18141989 topicHelp = "http://speeduino.com/wiki/index.php/Boost_Control"
18151990 field = "Boost Control Enabled", boostEnabled
@@ -1956,103 +2131,179 @@
19562131 panel = outputtest_spark
19572132 ;panel = outputtest_io2
19582133 panel = outputtest_warningmessage
1959-
2134+
2135+ dialog = Auxin_north
2136+ displayOnlyField = #"Secondary Serial ENABLED", blankfield, {enable_secondarySerial},{enable_secondarySerial}
2137+ displayOnlyField = !"Secondary Serial DISABLED", blankfield, {enable_secondarySerial == 0},{enable_secondarySerial == 0}
2138+ displayOnlyField = #"Internal CANBUS ENABLED", blankfield, {enable_intcan && intcan_available},{enable_intcan && intcan_available}
2139+ displayOnlyField = !"Internal CANBUS DISABLED", blankfield, {enable_intcan == 0 && intcan_available},{enable_intcan == 0 && intcan_available}
2140+ displayOnlyField = !"Internal CANBUS NOT AVAILABLE to MCU", blankfield, {enable_intcan == 1 && intcan_available == 0},{enable_intcan == 1 && intcan_available == 0}
2141+ displayOnlyField = !"Internal CANBUS NOT AVAILABLE to MCU", blankfield, {enable_intcan == 0 && intcan_available == 0},{enable_intcan == 0 && intcan_available == 0}
2142+ field = " If Secondary Serial or Internal CANBUS is DISABLED then any input channel assigned to that external source will NOT function"
2143+
19602144 dialog = canAuxinput_alias, "", yAxis
19612145 field = "Input Alias"
1962- field = "", AUXin00Alias , {caninput_sel0}
1963- field = "", AUXin01Alias , {caninput_sel1}
1964- field = "", AUXin02Alias , {caninput_sel2}
1965- field = "", AUXin03Alias , {caninput_sel3}
1966- field = "", AUXin04Alias , {caninput_sel4}
1967- field = "", AUXin05Alias , {caninput_sel5}
1968- field = "", AUXin06Alias , {caninput_sel6}
1969- field = "", AUXin07Alias , {caninput_sel7}
1970- field = "", AUXin08Alias , {caninput_sel8}
1971- field = "", AUXin09Alias , {caninput_sel9}
1972- field = "", AUXin10Alias , {caninput_sel10}
1973- field = "", AUXin11Alias , {caninput_sel11}
1974- field = "", AUXin12Alias , {caninput_sel12}
1975- field = "", AUXin13Alias , {caninput_sel13}
1976- field = "", AUXin14Alias , {caninput_sel14}
1977- field = "", AUXin15Alias , {caninput_sel15}
2146+ field = "", AUXin00Alias , {(caninput_sel0a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel0b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2147+ field = "", AUXin01Alias , {(caninput_sel1a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel1b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2148+ field = "", AUXin02Alias , {(caninput_sel2a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel2b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2149+ field = "", AUXin03Alias , {(caninput_sel3a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel3b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2150+ field = "", AUXin04Alias , {(caninput_sel4a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel4b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2151+ field = "", AUXin05Alias , {(caninput_sel5a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel5b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2152+ field = "", AUXin06Alias , {(caninput_sel6a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel6b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2153+ field = "", AUXin07Alias , {(caninput_sel7a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel7b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2154+ field = "", AUXin08Alias , {(caninput_sel8a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel8b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2155+ field = "", AUXin09Alias , {(caninput_sel9a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel9b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2156+ field = "", AUXin10Alias , {(caninput_sel10a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel10b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2157+ field = "", AUXin11Alias , {(caninput_sel11a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel11b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2158+ field = "", AUXin12Alias , {(caninput_sel12a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel12b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2159+ field = "", AUXin13Alias , {(caninput_sel13a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel13b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2160+ field = "", AUXin14Alias , {(caninput_sel14a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel14b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2161+ field = "", AUXin15Alias , {(caninput_sel15a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel15b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
19782162
19792163 dialog = caninput_sel, ""
19802164 ;CAN inputs
19812165 field = " CAN Input Channel on/off"
1982- field = "CAN Input 0", caninput_sel0, { enable_candata_in }
1983- field = "CAN Input 1", caninput_sel1, { enable_candata_in }
1984- field = "CAN Input 2", caninput_sel2, { enable_candata_in }
1985- field = "CAN Input 3", caninput_sel3, { enable_candata_in }
1986- field = "CAN Input 4", caninput_sel4, { enable_candata_in }
1987- field = "CAN Input 5", caninput_sel5, { enable_candata_in }
1988- field = "CAN Input 6", caninput_sel6, { enable_candata_in }
1989- field = "CAN Input 7", caninput_sel7, { enable_candata_in }
1990- field = "CAN Input 8", caninput_sel8, { enable_candata_in }
1991- field = "CAN Input 9", caninput_sel9, { enable_candata_in }
1992- field = "CAN Input 10", caninput_sel10, { enable_candata_in }
1993- field = "CAN Input 11", caninput_sel11, { enable_candata_in }
1994- field = "CAN Input 12", caninput_sel12, { enable_candata_in }
1995- field = "CAN Input 13", caninput_sel13, { enable_candata_in }
1996- field = "CAN Input 14", caninput_sel14, { enable_candata_in }
1997- field = "CAN Input 15", caninput_sel15, { enable_candata_in }
1998-
2166+ field = "CAN Input 0", caninput_sel0a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2167+ field = "CAN Input 0", caninput_sel0b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2168+ field = "CAN Input 1", caninput_sel1a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2169+ field = "CAN Input 1", caninput_sel1b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2170+ field = "CAN Input 2", caninput_sel2a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2171+ field = "CAN Input 2", caninput_sel2b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2172+ field = "CAN Input 3", caninput_sel3a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2173+ field = "CAN Input 3", caninput_sel3b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2174+ field = "CAN Input 4", caninput_sel4a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2175+ field = "CAN Input 4", caninput_sel4b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2176+ field = "CAN Input 5", caninput_sel5a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2177+ field = "CAN Input 5", caninput_sel5b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2178+ field = "CAN Input 6", caninput_sel6a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2179+ field = "CAN Input 6", caninput_sel6b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2180+ field = "CAN Input 7", caninput_sel7a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2181+ field = "CAN Input 7", caninput_sel7b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2182+ field = "CAN Input 8", caninput_sel8a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2183+ field = "CAN Input 8", caninput_sel8b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2184+ field = "CAN Input 9", caninput_sel9a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2185+ field = "CAN Input 9", caninput_sel9b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2186+ field = "CAN Input 10", caninput_sel10a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2187+ field = "CAN Input 10", caninput_sel10b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2188+ field = "CAN Input 11", caninput_sel11a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2189+ field = "CAN Input 11", caninput_sel11b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2190+ field = "CAN Input 12", caninput_sel12a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2191+ field = "CAN Input 12", caninput_sel12b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2192+ field = "CAN Input 13", caninput_sel13a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2193+ field = "CAN Input 13", caninput_sel13b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2194+ field = "CAN Input 14", caninput_sel14a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2195+ field = "CAN Input 14", caninput_sel14b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2196+ field = "CAN Input 15", caninput_sel15a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2197+ field = "CAN Input 15", caninput_sel15b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2198+
19992199 dialog = caninput_parameter_group, "", yAxis
20002200 field = " Source CAN Address"
2001- field = "", caninput_source_can_address0, { caninput_sel0 == 1 && enable_candata_in }
2002- field = "", caninput_source_can_address1, { caninput_sel1 == 1 && enable_candata_in }
2003- field = "", caninput_source_can_address2, { caninput_sel2 == 1 && enable_candata_in }
2004- field = "", caninput_source_can_address3, { caninput_sel3 == 1 && enable_candata_in }
2005- field = "", caninput_source_can_address4, { caninput_sel4 == 1 && enable_candata_in }
2006- field = "", caninput_source_can_address5, { caninput_sel5 == 1 && enable_candata_in }
2007- field = "", caninput_source_can_address6, { caninput_sel6 == 1 && enable_candata_in }
2008- field = "", caninput_source_can_address7, { caninput_sel7 == 1 && enable_candata_in }
2009- field = "", caninput_source_can_address8, { caninput_sel8 == 1 && enable_candata_in }
2010- field = "", caninput_source_can_address9, { caninput_sel9 == 1 && enable_candata_in }
2011- field = "", caninput_source_can_address10, { caninput_sel10 == 1 && enable_candata_in }
2012- field = "", caninput_source_can_address11, { caninput_sel11 == 1 && enable_candata_in }
2013- field = "", caninput_source_can_address12, { caninput_sel12 == 1 && enable_candata_in }
2014- field = "", caninput_source_can_address13, { caninput_sel13 == 1 && enable_candata_in }
2015- field = "", caninput_source_can_address14, { caninput_sel14 == 1 && enable_candata_in }
2016- field = "", caninput_source_can_address15, { caninput_sel15 == 1 && enable_candata_in }
2201+ field = "", caninput_source_can_address0, { (caninput_sel0a == 1 || caninput_sel0b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2202+ field = "", caninput_source_can_address1, { (caninput_sel1a == 1 || caninput_sel1b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2203+ field = "", caninput_source_can_address2, { (caninput_sel2a == 1 || caninput_sel2b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2204+ field = "", caninput_source_can_address3, { (caninput_sel3a == 1 || caninput_sel3b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2205+ field = "", caninput_source_can_address4, { (caninput_sel4a == 1 || caninput_sel4b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2206+ field = "", caninput_source_can_address5, { (caninput_sel5a == 1 || caninput_sel5b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2207+ field = "", caninput_source_can_address6, { (caninput_sel6a == 1 || caninput_sel6b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2208+ field = "", caninput_source_can_address7, { (caninput_sel7a == 1 || caninput_sel7b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2209+ field = "", caninput_source_can_address8, { (caninput_sel8a == 1 || caninput_sel8b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2210+ field = "", caninput_source_can_address9, { (caninput_sel9a == 1 || caninput_sel9b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2211+ field = "", caninput_source_can_address10, { (caninput_sel10a == 1 || caninput_sel10b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2212+ field = "", caninput_source_can_address11, { (caninput_sel11a == 1 || caninput_sel11b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2213+ field = "", caninput_source_can_address12, { (caninput_sel12a == 1 || caninput_sel12b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2214+ field = "", caninput_source_can_address13, { (caninput_sel13a == 1 || caninput_sel13b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2215+ field = "", caninput_source_can_address14, { (caninput_sel14a == 1 || caninput_sel14b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2216+ field = "", caninput_source_can_address15, { (caninput_sel15a == 1 || caninput_sel15b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
20172217
20182218 dialog = caninput_parameter_start_byte, "", yAxis
20192219 field = " source data start byte"
2020- field = "", caninput_source_start_byte0, { caninput_sel0 == 1 && enable_candata_in }
2021- field = "", caninput_source_start_byte1, { caninput_sel1 == 1 && enable_candata_in }
2022- field = "", caninput_source_start_byte2, { caninput_sel2 == 1 && enable_candata_in }
2023- field = "", caninput_source_start_byte3, { caninput_sel3 == 1 && enable_candata_in }
2024- field = "", caninput_source_start_byte4, { caninput_sel4 == 1 && enable_candata_in }
2025- field = "", caninput_source_start_byte5, { caninput_sel5 == 1 && enable_candata_in }
2026- field = "", caninput_source_start_byte6, { caninput_sel6 == 1 && enable_candata_in }
2027- field = "", caninput_source_start_byte7, { caninput_sel7 == 1 && enable_candata_in }
2028- field = "", caninput_source_start_byte8, { caninput_sel8 == 1 && enable_candata_in }
2029- field = "", caninput_source_start_byte9, { caninput_sel9 == 1 && enable_candata_in }
2030- field = "", caninput_source_start_byte10, { caninput_sel10 == 1 && enable_candata_in }
2031- field = "", caninput_source_start_byte11, { caninput_sel11 == 1 && enable_candata_in }
2032- field = "", caninput_source_start_byte12, { caninput_sel12 == 1 && enable_candata_in }
2033- field = "", caninput_source_start_byte13, { caninput_sel13 == 1 && enable_candata_in }
2034- field = "", caninput_source_start_byte14, { caninput_sel14 == 1 && enable_candata_in }
2035- field = "", caninput_source_start_byte15, { caninput_sel15 == 1 && enable_candata_in }
2220+ field = "", caninput_source_start_byte0, { (caninput_sel0a == 1 || caninput_sel0b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2221+ field = "", caninput_source_start_byte1, { (caninput_sel1a == 1 || caninput_sel1b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2222+ field = "", caninput_source_start_byte2, { (caninput_sel2a == 1 || caninput_sel2b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2223+ field = "", caninput_source_start_byte3, { (caninput_sel3a == 1 || caninput_sel3b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2224+ field = "", caninput_source_start_byte4, { (caninput_sel4a == 1 || caninput_sel4b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2225+ field = "", caninput_source_start_byte5, { (caninput_sel5a == 1 || caninput_sel5b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2226+ field = "", caninput_source_start_byte6, { (caninput_sel6a == 1 || caninput_sel6b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2227+ field = "", caninput_source_start_byte7, { (caninput_sel7a == 1 || caninput_sel7b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2228+ field = "", caninput_source_start_byte8, { (caninput_sel8a == 1 || caninput_sel8b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2229+ field = "", caninput_source_start_byte9, { (caninput_sel9a == 1 || caninput_sel9b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2230+ field = "", caninput_source_start_byte10, { (caninput_sel10a == 1 || caninput_sel10b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2231+ field = "", caninput_source_start_byte11, { (caninput_sel11a == 1 || caninput_sel11b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2232+ field = "", caninput_source_start_byte12, { (caninput_sel12a == 1 || caninput_sel12b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2233+ field = "", caninput_source_start_byte13, { (caninput_sel13a == 1 || caninput_sel13b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2234+ field = "", caninput_source_start_byte14, { (caninput_sel14a == 1 || caninput_sel14b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2235+ field = "", caninput_source_start_byte15, { (caninput_sel15a == 1 || caninput_sel15b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
20362236
20372237 dialog = caninput_parameter_num_byte, "", yAxis
20382238 field = "Input Parameter Number of Bytes"
2039- field = "", caninput_source_num_bytes0, { caninput_sel0 == 1 && enable_candata_in }
2040- field = "", caninput_source_num_bytes1, { caninput_sel1 == 1 && enable_candata_in }
2041- field = "", caninput_source_num_bytes2, { caninput_sel3 == 1 && enable_candata_in }
2042- field = "", caninput_source_num_bytes3, { caninput_sel3 == 1 && enable_candata_in }
2043- field = "", caninput_source_num_bytes4, { caninput_sel4 == 1 && enable_candata_in }
2044- field = "", caninput_source_num_bytes5, { caninput_sel5 == 1 && enable_candata_in }
2045- field = "", caninput_source_num_bytes6, { caninput_sel6 == 1 && enable_candata_in }
2046- field = "", caninput_source_num_bytes7, { caninput_sel7 == 1 && enable_candata_in }
2047- field = "", caninput_source_num_bytes8, { caninput_sel8 == 1 && enable_candata_in }
2048- field = "", caninput_source_num_bytes9, { caninput_sel9 == 1 && enable_candata_in }
2049- field = "", caninput_source_num_bytes10, { caninput_sel10 == 1 && enable_candata_in }
2050- field = "", caninput_source_num_bytes11, { caninput_sel11 == 1 && enable_candata_in }
2051- field = "", caninput_source_num_bytes12, { caninput_sel12 == 1 && enable_candata_in }
2052- field = "", caninput_source_num_bytes13, { caninput_sel13 == 1 && enable_candata_in }
2053- field = "", caninput_source_num_bytes14, { caninput_sel14 == 1 && enable_candata_in }
2054- field = "", caninput_source_num_bytes15, { caninput_sel15 == 1 && enable_candata_in }
2239+ field = "", caninput_source_num_bytes0, { (caninput_sel0a == 1 || caninput_sel0b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2240+ field = "", caninput_source_num_bytes1, { (caninput_sel1a == 1 || caninput_sel1b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2241+ field = "", caninput_source_num_bytes2, { (caninput_sel2a == 1 || caninput_sel2b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2242+ field = "", caninput_source_num_bytes3, { (caninput_sel3a == 1 || caninput_sel3b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2243+ field = "", caninput_source_num_bytes4, { (caninput_sel4a == 1 || caninput_sel4b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2244+ field = "", caninput_source_num_bytes5, { (caninput_sel5a == 1 || caninput_sel5b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2245+ field = "", caninput_source_num_bytes6, { (caninput_sel6a == 1 || caninput_sel6b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2246+ field = "", caninput_source_num_bytes7, { (caninput_sel7a == 1 || caninput_sel7b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2247+ field = "", caninput_source_num_bytes8, { (caninput_sel8a == 1 || caninput_sel8b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2248+ field = "", caninput_source_num_bytes9, { (caninput_sel9a == 1 || caninput_sel9b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2249+ field = "", caninput_source_num_bytes10, { (caninput_sel10a == 1 || caninput_sel10b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2250+ field = "", caninput_source_num_bytes11, { (caninput_sel11a == 1 || caninput_sel11b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2251+ field = "", caninput_source_num_bytes12, { (caninput_sel12a == 1 || caninput_sel12b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2252+ field = "", caninput_source_num_bytes13, { (caninput_sel13a == 1 || caninput_sel13b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2253+ field = "", caninput_source_num_bytes14, { (caninput_sel14a == 1 || caninput_sel14b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2254+ field = "", caninput_source_num_bytes15, { (caninput_sel15a == 1 || caninput_sel15b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
20552255
2256+ dialog = caninput_serial_can, "", yAxis
2257+ field = "Serial/CAN"
2258+ field = "", caninput_sel0extsourcea, {(caninput_sel0a == 1 || caninput_sel0b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2259+ field = "", caninput_sel0extsourceb, {(caninput_sel0a == 1 || caninput_sel0b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2260+ field = "", caninput_sel0extsourcec, {(caninput_sel0a == 1 || caninput_sel0b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2261+ field = "", caninput_sel1extsourcea, {(caninput_sel1a == 1 || caninput_sel1b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2262+ field = "", caninput_sel1extsourceb, {(caninput_sel1a == 1 || caninput_sel1b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2263+ field = "", caninput_sel1extsourcec, {(caninput_sel1a == 1 || caninput_sel1b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2264+ field = "", caninput_sel2extsourcea, {(caninput_sel2a == 1 || caninput_sel2b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2265+ field = "", caninput_sel2extsourceb, {(caninput_sel2a == 1 || caninput_sel2b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2266+ field = "", caninput_sel2extsourcec, {(caninput_sel2a == 1 || caninput_sel2b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2267+ field = "", caninput_sel3extsourcea, {(caninput_sel3a == 1 || caninput_sel3b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2268+ field = "", caninput_sel3extsourceb, {(caninput_sel3a == 1 || caninput_sel3b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2269+ field = "", caninput_sel3extsourcec, {(caninput_sel3a == 1 || caninput_sel3b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2270+ field = "", caninput_sel4extsourcea, {(caninput_sel4a == 1 || caninput_sel4b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2271+ field = "", caninput_sel4extsourceb, {(caninput_sel4a == 1 || caninput_sel4b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2272+ field = "", caninput_sel4extsourcec, {(caninput_sel4a == 1 || caninput_sel4b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2273+ field = "", caninput_sel5extsourcea, {(caninput_sel5a == 1 || caninput_sel5b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2274+ field = "", caninput_sel5extsourceb, {(caninput_sel5a == 1 || caninput_sel5b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2275+ field = "", caninput_sel5extsourcec, {(caninput_sel5a == 1 || caninput_sel5b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2276+ field = "", caninput_sel6extsourcea, {(caninput_sel6a == 1 || caninput_sel6b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2277+ field = "", caninput_sel6extsourceb, {(caninput_sel6a == 1 || caninput_sel6b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2278+ field = "", caninput_sel6extsourcec, {(caninput_sel6a == 1 || caninput_sel6b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2279+ field = "", caninput_sel7extsourcea, {(caninput_sel7a == 1 || caninput_sel7b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2280+ field = "", caninput_sel7extsourceb, {(caninput_sel7a == 1 || caninput_sel7b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2281+ field = "", caninput_sel7extsourcec, {(caninput_sel7a == 1 || caninput_sel7b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2282+ field = "", caninput_sel8extsourcea, {(caninput_sel8a == 1 || caninput_sel8b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2283+ field = "", caninput_sel8extsourceb, {(caninput_sel8a == 1 || caninput_sel8b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2284+ field = "", caninput_sel8extsourcec, {(caninput_sel8a == 1 || caninput_sel8b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2285+ field = "", caninput_sel9extsourcea, {(caninput_sel9a == 1 || caninput_sel9b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2286+ field = "", caninput_sel9extsourceb, {(caninput_sel9a == 1 || caninput_sel9b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2287+ field = "", caninput_sel9extsourcec, {(caninput_sel9a == 1 || caninput_sel9b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2288+ field = "", caninput_sel10extsourcea, {(caninput_sel10a == 1 || caninput_sel10b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2289+ field = "", caninput_sel10extsourceb, {(caninput_sel10a == 1 || caninput_sel10b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2290+ field = "", caninput_sel10extsourcec, {(caninput_sel10a == 1 || caninput_sel10b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2291+ field = "", caninput_sel11extsourcea, {(caninput_sel11a == 1 || caninput_sel11b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2292+ field = "", caninput_sel11extsourceb, {(caninput_sel11a == 1 || caninput_sel11b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2293+ field = "", caninput_sel11extsourcec, {(caninput_sel11a == 1 || caninput_sel11b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2294+ field = "", caninput_sel12extsourcea, {(caninput_sel12a == 1 || caninput_sel12b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}}
2295+ field = "", caninput_sel12extsourceb, {(caninput_sel12a == 1 || caninput_sel12b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2296+ field = "", caninput_sel12extsourcec, {(caninput_sel12a == 1 || caninput_sel12b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2297+ field = "", caninput_sel13extsourcea, {(caninput_sel13a == 1 || caninput_sel13b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}}
2298+ field = "", caninput_sel13extsourceb, {(caninput_sel13a == 1 || caninput_sel13b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2299+ field = "", caninput_sel13extsourcec, {(caninput_sel13a == 1 || caninput_sel13b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2300+ field = "", caninput_sel14extsourcea, {(caninput_sel14a == 1 || caninput_sel14b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}}
2301+ field = "", caninput_sel14extsourceb, {(caninput_sel14a == 1 || caninput_sel14b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2302+ field = "", caninput_sel14extsourcec, {(caninput_sel14a == 1 || caninput_sel14b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2303+ field = "", caninput_sel15extsourcea, {(caninput_sel15a == 1 || caninput_sel15b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}}
2304+ field = "", caninput_sel15extsourceb, {(caninput_sel15a == 1 || caninput_sel15b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2305+ field = "", caninput_sel15extsourcec, {(caninput_sel15a == 1 || caninput_sel15b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2306+
20562307 dialog = caninconfig_blank1,""
20572308 field = ""
20582309
@@ -2060,116 +2311,118 @@
20602311 panel = canAuxinput_alias
20612312 panel = caninconfig_blank1
20622313 panel = caninput_sel
2314+ panel = caninconfig_blank1
2315+ panel = caninput_serial_can
20632316 panel = caninconfig_blank1
20642317 panel = caninput_parameter_group
20652318 panel = caninconfig_blank1
20662319 panel = caninput_parameter_start_byte
20672320 panel = caninconfig_blank1
2068- panel = caninput_parameter_num_byte
2321+ panel = caninput_parameter_num_byte
20692322
2070- dialog = Canin_config2, "External Data Input"
2071- field = "Enable External data input", enable_candata_in
2323+ ;dialog = Canin_config2, "External Data Input"
2324+ ; field = "Enable External data input", enable_intcandata_in
20722325
2073- dialog = Canin_config, "", border
2326+ dialog = Canin_config, "",yAxis
20742327 topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface#Read_external_analog_data"
2075- panel = Canin_config2, North
2076- panel = Canin_config1, South
2328+ panel = Auxin_north
2329+ panel = Canin_config1
20772330
20782331 dialog = canAuxoutput_alias, "", yAxis
20792332 field = "Input Alias"
2080- field = "", AUXin00Alias , {caninput_sel0}
2081- field = "", AUXin01Alias , {caninput_sel1}
2082- field = "", AUXin02Alias , {caninput_sel2}
2083- field = "", AUXin03Alias , {caninput_sel3}
2084- field = "", AUXin04Alias , {caninput_sel4}
2085- field = "", AUXin05Alias , {caninput_sel5}
2086- field = "", AUXin06Alias , {caninput_sel6}
2087- field = "", AUXin07Alias , {caninput_sel7}
2088- field = "", AUXin08Alias , {caninput_sel8}
2089- field = "", AUXin09Alias , {caninput_sel9}
2090- field = "", AUXin10Alias , {caninput_sel10}
2091- field = "", AUXin11Alias , {caninput_sel11}
2092- field = "", AUXin12Alias , {caninput_sel12}
2093- field = "", AUXin13Alias , {caninput_sel13}
2094- field = "", AUXin14Alias , {caninput_sel14}
2095- field = "", AUXin15Alias , {caninput_sel15}
2333+ field = "", AUXin00Alias , {canoutput_sel0}
2334+ field = "", AUXin01Alias , {canoutput_sel1}
2335+ field = "", AUXin02Alias , {canoutput_sel2}
2336+ field = "", AUXin03Alias , {canoutput_sel3}
2337+ field = "", AUXin04Alias , {canoutput_sel4}
2338+ field = "", AUXin05Alias , {canoutput_sel5}
2339+ field = "", AUXin06Alias , {canoutput_sel6}
2340+ field = "", AUXin07Alias , {canoutput_sel7}
2341+ ;field = "", AUXin08Alias , {canoutput_sel8}
2342+ ;field = "", AUXin09Alias , {canoutput_sel9}
2343+ ;field = "", AUXin10Alias , {canoutput_sel10}
2344+ ;field = "", AUXin11Alias , {canoutput_sel11}
2345+ ;field = "", AUXin12Alias , {canoutput_sel12}
2346+ ;field = "", AUXin13Alias , {canoutput_sel13}
2347+ ;field = "", AUXin14Alias , {canoutput_sel14}
2348+ ;field = "", AUXin15Alias , {canoutput_sel15}
20962349
20972350 dialog = canoutput_sel, "", yAxis
20982351 ;CAN outputs
20992352 field = "CAN Output Channel on/off"
2100- field = "CAN Output 0", canoutput_sel0, { enable_candata_out}
2101- field = "CAN Output 1", canoutput_sel1, { enable_candata_out }
2102- field = "CAN Output 2", canoutput_sel2, { enable_candata_out }
2103- field = "CAN Output 3", canoutput_sel3, { enable_candata_out }
2104- field = "CAN Output 4", canoutput_sel4, { enable_candata_out }
2105- field = "CAN Output 5", canoutput_sel5, { enable_candata_out }
2106- field = "CAN Output 6", canoutput_sel6, { enable_candata_out }
2107- field = "CAN Output 7", canoutput_sel7, { enable_candata_out }
2108- ; field = "CAN Output 8", canoutput_sel8, { enable_candata_out}
2109- ; field = "CAN Output 9", canoutput_sel9, { enable_candata_out }
2110- ; field = "CAN Output 10", canoutput_sel10, { enable_candata_out }
2111- ; field = "CAN Output 11", canoutput_sel11, { enable_candata_out }
2112- ; field = "CAN Output 12", canoutput_sel12, { enable_candata_out }
2113- ; field = "CAN Output 13", canoutput_sel13, { enable_candata_out }
2114- ; field = "CAN Output 14", canoutput_sel14, { enable_candata_out }
2115- ; field = "CAN Output 15", canoutput_sel15, { enable_candata_out }
2353+ field = "CAN Output 0", canoutput_sel0, { enable_intcandata_out}
2354+ field = "CAN Output 1", canoutput_sel1, { enable_intcandata_out }
2355+ field = "CAN Output 2", canoutput_sel2, { enable_intcandata_out }
2356+ field = "CAN Output 3", canoutput_sel3, { enable_intcandata_out }
2357+ field = "CAN Output 4", canoutput_sel4, { enable_intcandata_out }
2358+ field = "CAN Output 5", canoutput_sel5, { enable_intcandata_out }
2359+ field = "CAN Output 6", canoutput_sel6, { enable_intcandata_out }
2360+ field = "CAN Output 7", canoutput_sel7, { enable_intcandata_out }
2361+ ; field = "CAN Output 8", canoutput_sel8, { enable_intcandata_out}
2362+ ; field = "CAN Output 9", canoutput_sel9, { enable_intcandata_out }
2363+ ; field = "CAN Output 10", canoutput_sel10, { enable_intcandata_out }
2364+ ; field = "CAN Output 11", canoutput_sel11, { enable_intcandata_out }
2365+ ; field = "CAN Output 12", canoutput_sel12, { enable_intcandata_out }
2366+ ; field = "CAN Output 13", canoutput_sel13, { enable_intcandata_out }
2367+ ; field = "CAN Output 14", canoutput_sel14, { enable_intcandata_out }
2368+ ; field = "CAN Output 15", canoutput_sel15, { enable_intcandata_out }
21162369
21172370 dialog = canoutput_parameter_group, "", yAxis
21182371 field = "Output Parameter Group"
2119- field = "", canoutput_param_group[0], { canoutput_sel0 && enable_candata_out }
2120- field = "", canoutput_param_group[1], { canoutput_sel1 && enable_candata_out }
2121- field = "", canoutput_param_group[2], { canoutput_sel3 && enable_candata_out }
2122- field = "", canoutput_param_group[3], { canoutput_sel3 && enable_candata_out }
2123- field = "", canoutput_param_group[4], { canoutput_sel4 && enable_candata_out }
2124- field = "", canoutput_param_group[5], { canoutput_sel5 && enable_candata_out }
2125- field = "", canoutput_param_group[6], { canoutput_sel6 && enable_candata_out }
2126- field = "", canoutput_param_group[7], { canoutput_sel7 && enable_candata_out }
2127- ; field = "", canoutput_param_group[8], { canoutput_sel9 && enable_candata_out }
2128- ; field = "", canoutput_param_group[9], { canoutput_sel10 && enable_candata_out }
2129- ; field = "", canoutput_param_group[10], { canoutput_sel1 && enable_candata_out }
2130- ; field = "", canoutput_param_group[11], { canoutput_sel2 && enable_candata_out }
2131- ; field = "", canoutput_param_group[12], { canoutput_sel3 && enable_candata_out }
2132- ; field = "", canoutput_param_group[13], { canoutput_sel4 && enable_candata_out }
2133- ; field = "", canoutput_param_group[14], { canoutput_sel5 && enable_candata_out }
2134- ; field = "", canoutput_param_group[15], { canoutput_sel6 && enable_candata_out }
2372+ field = "", canoutput_param_group[0], { canoutput_sel0 && enable_intcandata_out }
2373+ field = "", canoutput_param_group[1], { canoutput_sel1 && enable_intcandata_out }
2374+ field = "", canoutput_param_group[2], { canoutput_sel3 && enable_intcandata_out }
2375+ field = "", canoutput_param_group[3], { canoutput_sel3 && enable_intcandata_out }
2376+ field = "", canoutput_param_group[4], { canoutput_sel4 && enable_intcandata_out }
2377+ field = "", canoutput_param_group[5], { canoutput_sel5 && enable_intcandata_out }
2378+ field = "", canoutput_param_group[6], { canoutput_sel6 && enable_intcandata_out }
2379+ field = "", canoutput_param_group[7], { canoutput_sel7 && enable_intcandata_out }
2380+ ; field = "", canoutput_param_group[8], { canoutput_sel9 && enable_intcandata_out }
2381+ ; field = "", canoutput_param_group[9], { canoutput_sel10 && enable_intcandata_out }
2382+ ; field = "", canoutput_param_group[10], { canoutput_sel1 && enable_intcandata_out }
2383+ ; field = "", canoutput_param_group[11], { canoutput_sel2 && enable_intcandata_out }
2384+ ; field = "", canoutput_param_group[12], { canoutput_sel3 && enable_intcandata_out }
2385+ ; field = "", canoutput_param_group[13], { canoutput_sel4 && enable_intcandata_out }
2386+ ; field = "", canoutput_param_group[14], { canoutput_sel5 && enable_intcandata_out }
2387+ ; field = "", canoutput_param_group[15], { canoutput_sel6 && enable_intcandata_out }
21352388
21362389 dialog = canoutput_parameter_start_byte, "", yAxis
21372390 field = "Output Parameter Start Byte"
2138- field = "", canoutput_param_start_byte0, { canoutput_sel0 && enable_candata_out }
2139- field = "", canoutput_param_start_byte1, { canoutput_sel1 && enable_candata_out }
2140- field = "", canoutput_param_start_byte2, { canoutput_sel2 && enable_candata_out }
2141- field = "", canoutput_param_start_byte3, { canoutput_sel3 && enable_candata_out }
2142- field = "", canoutput_param_start_byte4, { canoutput_sel4 && enable_candata_out }
2143- field = "", canoutput_param_start_byte5, { canoutput_sel5 && enable_candata_out }
2144- field = "", canoutput_param_start_byte6, { canoutput_sel6 && enable_candata_out }
2145- field = "", canoutput_param_start_byte7, { canoutput_sel7 && enable_candata_out }
2146- ; field = "", canoutput_param_start_byte8, { canoutput_sel8 && enable_candata_out }
2147- ; field = "", canoutput_param_start_byte9, { canoutput_sel9 && enable_candata_out }
2148- ; field = "", canoutput_param_start_byte10, { canoutput_sel10 && enable_candata_out }
2149- ; field = "", canoutput_param_start_byte11, { canoutput_sel11 && enable_candata_out }
2150- ; field = "", canoutput_param_start_byte12, { canoutput_sel12 && enable_candata_out }
2151- ; field = "", canoutput_param_start_byte13, { canoutput_sel13 && enable_candata_out }
2152-; field = "", canoutput_param_start_byte14, { canoutput_sel14 && enable_candata_out }
2153- ; field = "", canoutput_param_start_byte15, { canoutput_sel15 && enable_candata_out }
2391+ field = "", canoutput_param_start_byte0, { canoutput_sel0 && enable_intcandata_out }
2392+ field = "", canoutput_param_start_byte1, { canoutput_sel1 && enable_intcandata_out }
2393+ field = "", canoutput_param_start_byte2, { canoutput_sel2 && enable_intcandata_out }
2394+ field = "", canoutput_param_start_byte3, { canoutput_sel3 && enable_intcandata_out }
2395+ field = "", canoutput_param_start_byte4, { canoutput_sel4 && enable_intcandata_out }
2396+ field = "", canoutput_param_start_byte5, { canoutput_sel5 && enable_intcandata_out }
2397+ field = "", canoutput_param_start_byte6, { canoutput_sel6 && enable_intcandata_out }
2398+ field = "", canoutput_param_start_byte7, { canoutput_sel7 && enable_intcandata_out }
2399+ ; field = "", canoutput_param_start_byte8, { canoutput_sel8 && enable_intcandata_out }
2400+ ; field = "", canoutput_param_start_byte9, { canoutput_sel9 && enable_intcandata_out }
2401+ ; field = "", canoutput_param_start_byte10, { canoutput_sel10 && enable_intcandata_out }
2402+ ; field = "", canoutput_param_start_byte11, { canoutput_sel11 && enable_intcandata_out }
2403+ ; field = "", canoutput_param_start_byte12, { canoutput_sel12 && enable_intcandata_out }
2404+ ; field = "", canoutput_param_start_byte13, { canoutput_sel13 && enable_intcandata_out }
2405+; field = "", canoutput_param_start_byte14, { canoutput_sel14 && enable_intcandata_out }
2406+ ; field = "", canoutput_param_start_byte15, { canoutput_sel15 && enable_intcandata_out }
21542407
21552408 dialog = canoutput_parameter_num_byte, "", yAxis
21562409 field = "Output Parameter Number of Bytes"
2157- field = "", canoutput_param_num_bytes0, { canoutput_sel0 && enable_candata_out }
2158- field = "", canoutput_param_num_bytes1, { canoutput_sel1 && enable_candata_out }
2159- field = "", canoutput_param_num_bytes2, { canoutput_sel2 && enable_candata_out }
2160- field = "", canoutput_param_num_bytes3, { canoutput_sel3 && enable_candata_out }
2161- field = "", canoutput_param_num_bytes4, { canoutput_sel4 && enable_candata_out }
2162- field = "", canoutput_param_num_bytes5, { canoutput_sel5 && enable_candata_out }
2163- field = "", canoutput_param_num_bytes6, { canoutput_sel6 && enable_candata_out }
2164- field = "", canoutput_param_num_bytes7, { canoutput_sel7 && enable_candata_out }
2165- ; field = "", canoutput_param_num_bytes8, { canoutput_sel8 && enable_candata_out }
2166- ; field = "", canoutput_param_num_bytes9, { canoutput_sel9 && enable_candata_out }
2167- ; field = "", canoutput_param_num_bytes10, { canoutput_sel10 && enable_candata_out }
2168- ; field = "", canoutput_param_num_bytes11, { canoutput_sel11 && enable_candata_out }
2169- ; field = "", canoutput_param_num_bytes12, { canoutput_sel12 && enable_candata_out }
2170- ; field = "", canoutput_param_num_bytes13, { canoutput_sel13 && enable_candata_out }
2171-; field = "", canoutput_param_num_bytes14, { canoutput_sel14 && enable_candata_out }
2172- ; field = "", canoutput_param_num_bytes15, { canoutput_sel15 && enable_candata_out }
2410+ field = "", canoutput_param_num_bytes0, { canoutput_sel0 && enable_intcandata_out }
2411+ field = "", canoutput_param_num_bytes1, { canoutput_sel1 && enable_intcandata_out }
2412+ field = "", canoutput_param_num_bytes2, { canoutput_sel2 && enable_intcandata_out }
2413+ field = "", canoutput_param_num_bytes3, { canoutput_sel3 && enable_intcandata_out }
2414+ field = "", canoutput_param_num_bytes4, { canoutput_sel4 && enable_intcandata_out }
2415+ field = "", canoutput_param_num_bytes5, { canoutput_sel5 && enable_intcandata_out }
2416+ field = "", canoutput_param_num_bytes6, { canoutput_sel6 && enable_intcandata_out }
2417+ field = "", canoutput_param_num_bytes7, { canoutput_sel7 && enable_intcandata_out }
2418+ ; field = "", canoutput_param_num_bytes8, { canoutput_sel8 && enable_intcandata_out }
2419+ ; field = "", canoutput_param_num_bytes9, { canoutput_sel9 && enable_intcandata_out }
2420+ ; field = "", canoutput_param_num_bytes10, { canoutput_sel10 && enable_intcandata_out }
2421+ ; field = "", canoutput_param_num_bytes11, { canoutput_sel11 && enable_intcandata_out }
2422+ ; field = "", canoutput_param_num_bytes12, { canoutput_sel12 && enable_intcandata_out }
2423+ ; field = "", canoutput_param_num_bytes13, { canoutput_sel13 && enable_intcandata_out }
2424+; field = "", canoutput_param_num_bytes14, { canoutput_sel14 && enable_intcandata_out }
2425+ ; field = "", canoutput_param_num_bytes15, { canoutput_sel15 && enable_intcandata_out }
21732426
21742427 dialog = canoutconfig_blank1,""
21752428 field = ""
@@ -2186,26 +2439,33 @@
21862439 panel = canoutput_parameter_num_byte
21872440
21882441 dialog = Canout_config2, "CAN Data Out"
2189- field = "Enable CanBus data Output", enable_candata_out
2442+ field = "Enable CanBus data Output", enable_intcandata_out
21902443
2191- dialog = Canout_config, "", border
2444+ dialog = Canout_config, "", yAxis
21922445 topicHelp = ""
2193- panel = Canout_config2, North
2194- panel = Canout_config1, South
2446+ panel = Canout_config2
2447+ panel = Canout_config1
21952448
2196- dialog = can_serial3IO, "CanBus/Serial3 IO interface"
2449+ dialog = can_serial3IO, "CanBus/Secondary Serial IO interface"
21972450 topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface"
2198- field = "Enable CanBus/Second Serial", enable_canbus
2451+ field = "Enable Second Serial", enable_secondarySerial
2452+ field = "Enable Internal Canbus", enable_intcan
21992453 ; field = "Speeduino TsCanId", speeduino_tsCanId
2200- field = "True Canbus Address", true_address {enable_canbus}
2201- field = "NOTE! Realtime Datat Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion"
2202- field = "Realtime Data Base Can Address", realtime_base_address {enable_canbus}
2454+ field = "True Canbus Address", true_address {enable_secondarySerial||enable_intcan}
2455+ field = "NOTE! Realtime Data Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion"
2456+ field = "Realtime Data Base Can Address", realtime_base_address {enable_secondarySerial||enable_intcan}
22032457 ; field = "Speeduino OBD address", obd_address
22042458
2205- dialog = serial3IO, "Serial3 IO interface"
2459+ dialog = serial3IO, "Secondary Serial IO interface"
22062460 topicHelp = "http://speeduino.com/wiki/index.php/Serial3_IO_interface"
2207- field = "Enable Second Serial", enable_canbus
2208-
2461+ field = "Enable Second Serial", enable_secondarySerial
2462+ field = "Enable Internal Canbus", enable_intcan {intcan_available}
2463+ ; field = "Speeduino TsCanId", speeduino_tsCanId
2464+ field = "True Canbus Address", true_address {enable_secondarySerial||enable_intcan}
2465+ field = "NOTE! Realtime Data Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion"
2466+ field = "Realtime Data Base Can Address", realtime_base_address {enable_secondarySerial||enable_intcan}
2467+ ; field = "Speeduino OBD address", obd_address
2468+
22092469 dialog = reset_control, "Reset Control"
22102470 ; Control type options for custom firmware
22112471 field = "Control Type", resetControl
@@ -2212,115 +2472,166 @@
22122472 field = "Control Pin", resetControlPin
22132473
22142474 dialog = Auxinput_pin_selection, "", yAxis
2215- field = " PIN"
2216- displayOnlyField = "Off", blankfield, {caninput_sel0 == 0},{caninput_sel0 == 0}
2217- field = "", caninput_source_can_address0, { caninput_sel0 == 1 && enable_candata_in }, {caninput_sel0 == 1}
2218- field = "", Auxin0pina , {caninput_sel0 == 2 || caninput_sel0 == 3 }, {caninput_sel0 == 2}
2219- field = "", Auxin0pinb , {caninput_sel0 == 2 || caninput_sel0 == 3 }, {caninput_sel0 == 3}
2220- displayOnlyField = "Off", blankfield, {caninput_sel1 == 0},{caninput_sel1 == 0}
2221- field = "", caninput_source_can_address1, { caninput_sel1 == 1 && enable_candata_in }, {caninput_sel1 == 1}
2222- field = "", Auxin1pina , {caninput_sel1 == 2 || caninput_sel1 == 3}, {caninput_sel1 == 2}
2223- field = "", Auxin1pinb , {caninput_sel1 == 2 || caninput_sel1 == 3}, {caninput_sel1 == 3}
2224- displayOnlyField = "Off", blankfield, {caninput_sel2 == 0},{caninput_sel2 == 0}
2225- field = "", caninput_source_can_address2, { caninput_sel2 == 1 && enable_candata_in }, {caninput_sel2 == 1}
2226- field = "", Auxin2pina , {caninput_sel2 == 2 || caninput_sel2 == 3}, {caninput_sel2 == 2}
2227- field = "", Auxin2pinb , {caninput_sel2 == 2 || caninput_sel2 == 3}, {caninput_sel2 == 3}
2228- displayOnlyField = "Off", blankfield, {caninput_sel3 == 0},{caninput_sel3 == 0}
2229- field = "", caninput_source_can_address3, { caninput_sel3 == 1 && enable_candata_in }, {caninput_sel3 == 1}
2230- field = "", Auxin3pina , {caninput_sel3 == 2 || caninput_sel3 == 3}, {caninput_sel3 == 2}
2231- field = "", Auxin3pinb , {caninput_sel3 == 2 || caninput_sel3 == 3}, {caninput_sel3 == 3}
2232- displayOnlyField = "Off", blankfield, {caninput_sel4 == 0},{caninput_sel4 == 0}
2233- field = "", caninput_source_can_address4, { caninput_sel4 == 1 && enable_candata_in }, {caninput_sel4 == 1}
2234- field = "", Auxin4pina , {caninput_sel4 == 2 || caninput_sel4 == 3}, {caninput_sel4 == 2}
2235- field = "", Auxin4pinb , {caninput_sel4 == 2 || caninput_sel4 == 3}, {caninput_sel4 == 3}
2236- displayOnlyField = "Off", blankfield, {caninput_sel5 == 0},{caninput_sel5 == 0}
2237- field = "", caninput_source_can_address5, { caninput_sel5 == 1 && enable_candata_in }, {caninput_sel5 == 1}
2238- field = "", Auxin5pina , {caninput_sel5 == 2 || caninput_sel5 == 3}, {caninput_sel5 == 2}
2239- field = "", Auxin5pinb , {caninput_sel5 == 2 || caninput_sel5 == 3}, {caninput_sel5 == 3}
2240- displayOnlyField = "Off", blankfield, {caninput_sel6 == 0},{caninput_sel6 == 0}
2241- field = "", caninput_source_can_address6, { caninput_sel6 == 1 && enable_candata_in }, {caninput_sel6 == 1}
2242- field = "", Auxin6pina , {caninput_sel6 == 2 || caninput_sel6 == 3}, {caninput_sel6 == 2}
2243- field = "", Auxin6pinb , {caninput_sel6 == 2 || caninput_sel6 == 3}, {caninput_sel6 == 3}
2244- displayOnlyField = "Off", blankfield, {caninput_sel7 == 0},{caninput_sel7 == 0}
2245- field = "", caninput_source_can_address7, { caninput_sel7 == 1 && enable_candata_in }, {caninput_sel7 == 1}
2246- field = "", Auxin7pina , {caninput_sel7 == 2 || caninput_sel7 == 3}, {caninput_sel7 == 2}
2247- field = "", Auxin7pinb , {caninput_sel7 == 2 || caninput_sel7 == 3}, {caninput_sel7 == 3}
2248- displayOnlyField = "Off", blankfield, {caninput_sel8 == 8},{caninput_sel8 == 0}
2249- field = "", caninput_source_can_address8, { caninput_sel8 == 1 && enable_candata_in }, {caninput_sel8 == 1}
2250- field = "", Auxin8pina , {caninput_sel8 == 2 || caninput_sel8 == 3}, {caninput_sel8 == 2}
2251- field = "", Auxin8pinb , {caninput_sel8 == 2 || caninput_sel8 == 3}, {caninput_sel8 == 3}
2252- displayOnlyField = "Off", blankfield, {caninput_sel9 == 0},{caninput_sel9 == 0}
2253- field = "", caninput_source_can_address9, { caninput_sel9 == 1 && enable_candata_in }, {caninput_sel9 == 1}
2254- field = "", Auxin9pina , {caninput_sel9 == 2 || caninput_sel9 == 3}, {caninput_sel9 == 2}
2255- field = "", Auxin9pinb , {caninput_sel9 == 2 || caninput_sel9 == 3}, {caninput_sel9 == 3}
2256- displayOnlyField = "Off", blankfield, {caninput_sel10 == 0},{caninput_sel10 == 0}
2257- field = "", caninput_source_can_address10, { caninput_sel10 == 1 && enable_candata_in }, {caninput_sel10 == 1}
2258- field = "", Auxin10pina , {caninput_sel10 == 2 || caninput_sel10 == 3}, {caninput_sel10 == 2}
2259- field = "", Auxin10pinb , {caninput_sel10 == 2 || caninput_sel10 == 3}, {caninput_sel10 == 3}
2260- displayOnlyField = "Off", blankfield, {caninput_sel11 == 0},{caninput_sel11 == 0}
2261- field = "", caninput_source_can_address11, { caninput_sel11 == 1 && enable_candata_in }, {caninput_sel11 == 1}
2262- field = "", Auxin11pina , {caninput_sel11 == 2 || caninput_sel11 == 3}, {caninput_sel11 == 2}
2263- field = "", Auxin11pinb , {caninput_sel11 == 2 || caninput_sel11 == 3}, {caninput_sel11 == 3}
2264- displayOnlyField = "Off", blankfield, {caninput_sel12 == 0},{caninput_sel12 == 0}
2265- field = "", caninput_source_can_address12, { caninput_sel12 == 1 && enable_candata_in }, {caninput_sel12 == 1}
2266- field = "", Auxin12pina , {caninput_sel12 == 2 || caninput_sel12 == 3}, {caninput_sel12 == 2}
2267- field = "", Auxin12pinb , {caninput_sel12 == 2 || caninput_sel12 == 3}, {caninput_sel12 == 3}
2268- displayOnlyField = "Off", blankfield, {caninput_sel13 == 0},{caninput_sel13 == 0}
2269- field = "", caninput_source_can_address13, { caninput_sel13 == 1 && enable_candata_in }, {caninput_sel13 == 1}
2270- field = "", Auxin13pina , {caninput_sel13 == 2 || caninput_sel13 == 3}, {caninput_sel13 == 2}
2271- field = "", Auxin13pinb , {caninput_sel13 == 2 || caninput_sel13 == 3}, {caninput_sel13 == 3}
2272- displayOnlyField = "Off", blankfield, {caninput_sel14 == 0},{caninput_sel14 == 0}
2273- field = "", caninput_source_can_address14, { caninput_sel14 == 1 && enable_candata_in }, {caninput_sel14 == 1}
2274- field = "", Auxin14pina , {caninput_sel14 == 2 || caninput_sel14 == 3}, {caninput_sel14 == 2}
2275- field = "", Auxin14pinb , {caninput_sel14 == 2 || caninput_sel14 == 3}, {caninput_sel14 == 3}
2276- displayOnlyField = "Off", blankfield, {caninput_sel15 == 0},{caninput_sel15 == 0}
2277- field = "", caninput_source_can_address15, { caninput_sel15 == 1 && enable_candata_in }, {caninput_sel15 == 1}
2278- field = "", Auxin15pina , {caninput_sel15 == 2 || caninput_sel15 == 3}, {caninput_sel15 == 2}
2279- field = "", Auxin15pinb , {caninput_sel15 == 2 || caninput_sel15 == 3}, {caninput_sel15 == 3}
2280-
2475+ field = " Source"
2476+ displayOnlyField = "Off 0", blankfield, {},{(caninput_sel0a == 0 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel0b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel0b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel0b == 0 && (!enable_secondarySerial && (enable_intcan && intcan_available == 1)))}
2477+ displayOnlyField = "External Source 0 Via Secondary Serial", blankfield, {},{(caninput_sel0b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel0b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel0extsourceb == 0)}
2478+ displayOnlyField = "External Source 0 Via Internal CAN", blankfield, {},{(caninput_sel0b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel0extsourceb == 1) ||(caninput_sel0b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel0extsourcec == 1)}
2479+ field = "Local Analog Source 0 Pin No:", Auxin0pina , {}, {(caninput_sel0a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel0b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2480+ field = "Local Digital Source 0 Pin No:", Auxin0pinb , {}, {(caninput_sel0a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel0b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2481+
2482+ displayOnlyField = "Off 1", blankfield, {},{(caninput_sel1a == 0 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel1b == 0 && ((enable_secondarySerial && enable_intcan) || (enable_secondarySerial && !enable_intcan) || (!enable_secondarySerial && enable_intcan)))}
2483+ displayOnlyField = "External Source 1 Via Secondary Serial", blankfield, {},{(caninput_sel1b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel1b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel1extsourceb == 0)}
2484+ displayOnlyField = "External Source 1 Via Internal CAN", blankfield, {},{(caninput_sel1b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel1extsourceb == 1) ||(caninput_sel1b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel1extsourcec == 1)}
2485+ field = "Local Analog Source 1 Pin No:", Auxin1pina , {}, {(caninput_sel1a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)) || (caninput_sel1b == 2 && (enable_secondarySerial || enable_intcan))}
2486+ field = "Local Digital Source 1 Pin No:", Auxin1pinb , {}, {(caninput_sel1a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel1b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2487+
2488+ displayOnlyField = "Off 2", blankfield, {},{(caninput_sel2a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel2b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel2b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel2b == 0 && (!enable_secondarySerial && enable_intcan))}
2489+ displayOnlyField = "External Source 2 Via Secondary Serial", blankfield, {},{(caninput_sel2b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel2b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel2extsourceb == 0)}
2490+ displayOnlyField = "External Source 2 Via Internal CAN", blankfield, {},{(caninput_sel2b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel2extsourceb == 1) ||(caninput_sel2b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel2extsourcec == 1)}
2491+ field = "Local Analog Source 2 Pin No:", Auxin2pina , {}, {(caninput_sel2a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel2b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2492+ field = "Local Digital Source 2 Pin No:", Auxin2pinb , {}, {(caninput_sel2a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel2b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2493+
2494+ displayOnlyField = "Off 3", blankfield, {},{(caninput_sel3a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel3b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel3b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel3b == 0 && (!enable_secondarySerial && enable_intcan))}
2495+ displayOnlyField = "External Source 3 Via Secondary Serial", blankfield, {},{(caninput_sel3b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel3b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel3extsourceb == 0)}
2496+ displayOnlyField = "External Source 3 Via Internal CAN", blankfield, {},{(caninput_sel3b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel3extsourceb == 1) ||(caninput_sel3b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel3extsourcec == 1)}
2497+ field = "Local Analog Source 3 Pin No:", Auxin3pina , {}, {(caninput_sel3a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel3b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2498+ field = "Local Digital Source 3 Pin No:", Auxin3pinb , {}, {(caninput_sel3a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel3b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2499+
2500+ displayOnlyField = "Off 4", blankfield, {},{(caninput_sel4a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel4b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel4b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel4b == 0 && (!enable_secondarySerial && enable_intcan))}
2501+ displayOnlyField = "External Source 4 Via Secondary Serial", blankfield, {},{(caninput_sel4b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel4b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel4extsourceb == 0)}
2502+ displayOnlyField = "External Source 4 Via Internal CAN", blankfield, {},{(caninput_sel4b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel4extsourceb == 1) ||(caninput_sel4b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel4extsourcec == 1)}
2503+ field = "Local Analog Source 4 Pin No:", Auxin4pina , {}, {(caninput_sel4a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel4b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2504+ field = "Local Digital Source 4 Pin No:", Auxin4pinb , {}, {(caninput_sel4a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel4b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2505+
2506+ displayOnlyField = "Off 5", blankfield, {},{(caninput_sel5a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel5b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel5b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel5b == 0 && (!enable_secondarySerial && enable_intcan))}
2507+ displayOnlyField = "External Source 5 Via Secondary Serial", blankfield, {},{(caninput_sel5b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel5b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel5extsourceb == 0)}
2508+ displayOnlyField = "External Source 5 Via Internal CAN", blankfield, {},{(caninput_sel5b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel5extsourceb == 1) ||(caninput_sel5b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel5extsourcec == 1)}
2509+ field = "Local Analog Source 5 Pin No:", Auxin5pina , {}, {(caninput_sel5a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel5b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2510+ field = "Local Digital Source 5 Pin No:", Auxin5pinb , {}, {(caninput_sel5a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel5b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2511+
2512+ displayOnlyField = "Off 6", blankfield, {},{(caninput_sel6a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel6b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel6b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel6b == 0 && (!enable_secondarySerial && enable_intcan))}
2513+ displayOnlyField = "External Source 6 Via Secondary Serial", blankfield, {},{(caninput_sel6b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel6b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel6extsourceb == 0)}
2514+ displayOnlyField = "External Source 6 Via Internal CAN", blankfield, {},{(caninput_sel6b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel6extsourceb == 1) ||(caninput_sel6b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel6extsourcec == 1)}
2515+ field = "Local Analog Source 6 Pin No:", Auxin6pina , {}, {(caninput_sel6a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel6b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2516+ field = "Local Digital Source 6 Pin No:", Auxin6pinb , {}, {(caninput_sel6a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel6b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2517+
2518+ displayOnlyField = "Off 7", blankfield, {},{(caninput_sel7a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel7b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel7b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel7b == 0 && (!enable_secondarySerial && enable_intcan))}
2519+ displayOnlyField = "External Source 7 Via Secondary Serial", blankfield, {},{(caninput_sel7b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel7b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel7extsourceb == 0)}
2520+ displayOnlyField = "External Source 7 Via Internal CAN", blankfield, {},{(caninput_sel7b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel7extsourceb == 1) ||(caninput_sel7b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel7extsourcec == 1)}
2521+ field = "Local Analog Source 7 Pin No:", Auxin7pina , {}, {(caninput_sel7a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel7b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2522+ field = "Local Digital Source 7 Pin No:", Auxin7pinb , {}, {(caninput_sel7a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel7b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2523+
2524+ displayOnlyField = "Off 8", blankfield, {},{(caninput_sel8a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel8b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel8b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel8b == 0 && (!enable_secondarySerial && enable_intcan))}
2525+ displayOnlyField = "External Source 8 Via Secondary Serial", blankfield, {},{(caninput_sel8b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel8b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel8extsourceb == 0)}
2526+ displayOnlyField = "External Source 8 Via Internal CAN", blankfield, {},{(caninput_sel8b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel8extsourceb == 1) ||(caninput_sel8b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel8extsourcec == 1)}
2527+ field = "Local Analog Source 8 Pin No:", Auxin8pina , {}, {(caninput_sel8a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel8b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2528+ field = "Local Digital Source 8 Pin No:", Auxin8pinb , {}, {(caninput_sel8a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel8b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2529+
2530+ displayOnlyField = "Off 9", blankfield, {},{(caninput_sel9a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel9b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel9b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel9b == 0 && (!enable_secondarySerial && enable_intcan))}
2531+ displayOnlyField = "External Source 9 Via Secondary Serial", blankfield, {},{(caninput_sel9b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel9b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel9extsourceb == 0)}
2532+ displayOnlyField = "External Source 9 Via Internal CAN", blankfield, {},{(caninput_sel9b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel9extsourceb == 1) ||(caninput_sel9b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel9extsourcec == 1)}
2533+ field = "Local Analog Source 9 Pin No:", Auxin9pina , {}, {(caninput_sel9a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel9b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2534+ field = "Local Digital Source 9 Pin No:", Auxin9pinb , {}, {(caninput_sel9a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel9b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2535+
2536+ displayOnlyField = "Off 10", blankfield, {},{(caninput_sel10a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel10b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel10b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel10b == 0 && (!enable_secondarySerial && enable_intcan))}
2537+ displayOnlyField = "External Source 10 Via Secondary Serial", blankfield, {},{(caninput_sel10b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel10b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel10extsourceb == 0)}
2538+ displayOnlyField = "External Source 10 Via Internal CAN", blankfield, {},{(caninput_sel10b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel10extsourceb == 1) ||(caninput_sel10b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel10extsourcec == 1)}
2539+ field = "Local Analog Source 10 Pin No:", Auxin10pina , {}, {(caninput_sel10a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel10b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2540+ field = "Local Digital Source 10 Pin No:", Auxin10pinb , {}, {(caninput_sel10a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel10b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2541+
2542+ displayOnlyField = "Off 11", blankfield, {},{(caninput_sel11a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel11b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel11b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel11b == 0 && (!enable_secondarySerial && enable_intcan))}
2543+ displayOnlyField = "External Source 11 Via Secondary Serial", blankfield, {},{(caninput_sel11b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel11b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel11extsourceb == 0)}
2544+ displayOnlyField = "External Source 11 Via Internal CAN", blankfield, {},{(caninput_sel11b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel11extsourceb == 1) ||(caninput_sel11b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel11extsourcec == 1)}
2545+ field = "Local Analog Source 11 Pin No:", Auxin11pina , {}, {(caninput_sel11a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel11b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2546+ field = "Local Digital Source 11 Pin No:", Auxin11pinb , {}, {(caninput_sel11a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel11b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2547+
2548+ displayOnlyField = "Off 12", blankfield, {},{(caninput_sel12a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel12b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel12b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel12b == 0 && (!enable_secondarySerial && enable_intcan))}
2549+ displayOnlyField = "External Source 12 Via Secondary Serial", blankfield, {},{(caninput_sel12b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel12b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel12extsourceb == 0)}
2550+ displayOnlyField = "External Source 12 Via Internal CAN", blankfield, {},{(caninput_sel12b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel12extsourceb == 1) ||(caninput_sel12b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel12extsourcec == 1)}
2551+ field = "Local Analog Source 12 Pin No:", Auxin12pina , {}, {(caninput_sel12a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel12b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2552+ field = "Local Digital Source 12 Pin No:", Auxin12pinb , {}, {(caninput_sel12a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel12b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2553+
2554+ displayOnlyField = "Off 13", blankfield, {},{(caninput_sel13a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel13b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel13b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel13b == 0 && (!enable_secondarySerial && enable_intcan))}
2555+ displayOnlyField = "External Source 13 Via Secondary Serial", blankfield, {},{(caninput_sel13b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel13b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel13extsourceb == 0)}
2556+ displayOnlyField = "External Source 13 Via Internal CAN", blankfield, {},{(caninput_sel13b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel13extsourceb == 1) ||(caninput_sel13b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel13extsourcec == 1)}
2557+ field = "Local Analog Source 13 Pin No:", Auxin13pina , {}, {(caninput_sel13a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel13b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2558+ field = "Local Digital Source 13 Pin No:", Auxin13pinb , {}, {(caninput_sel13a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel13b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2559+
2560+ displayOnlyField = "Off 14", blankfield, {},{(caninput_sel14a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel14b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel14b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel14b == 0 && (!enable_secondarySerial && enable_intcan))}
2561+ displayOnlyField = "External Source 14 Via Secondary Serial", blankfield, {},{(caninput_sel14b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel14b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel14extsourceb == 0)}
2562+ displayOnlyField = "External Source 14 Via Internal CAN", blankfield, {},{(caninput_sel14b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel14extsourceb == 1) ||(caninput_sel14b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel14extsourcec == 1)}
2563+ field = "Local Analog Source 14 Pin No:", Auxin14pina , {}, {(caninput_sel14a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel14b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2564+ field = "Local Digital Source 14 Pin No:", Auxin14pinb , {}, {(caninput_sel14a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel14b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2565+
2566+ displayOnlyField = "Off 15", blankfield, {},{(caninput_sel15a == 0 && (!enable_secondarySerial && !enable_intcan)) || (caninput_sel15b == 0 && (enable_secondarySerial && enable_intcan)) || (caninput_sel15b == 0 && (enable_secondarySerial && !enable_intcan)) || (caninput_sel15b == 0 && (!enable_secondarySerial && enable_intcan))}
2567+ displayOnlyField = "External Source 15 Via Secondary Serial", blankfield, {},{(caninput_sel15b == 1 && enable_secondarySerial && ((enable_intcan && intcan_available == 0) || !enable_intcan)) || (caninput_sel15b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel15extsourceb == 0)}
2568+ displayOnlyField = "External Source 15 Via Internal CAN", blankfield, {},{(caninput_sel15b == 1 && enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel15extsourceb == 1) ||(caninput_sel15b == 1 && !enable_secondarySerial && (enable_intcan && intcan_available) && caninput_sel15extsourcec == 1)}
2569+ field = "Local Analog Source 15 Pin No:", Auxin15pina , {}, {(caninput_sel15a == 2 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel15b == 2 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2570+ field = "Local Digital Source 15 Pin No:", Auxin15pinb , {}, {(caninput_sel15a == 3 && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel15b == 3 && (enable_secondarySerial || (enable_intcan && intcan_available == 1 )))}
2571+
22812572 dialog = Auxinput_alias, "", yAxis
22822573 field = "Input Alias"
2283- field = "", AUXin00Alias , {caninput_sel0}
2284- field = "", AUXin01Alias , {caninput_sel1}
2285- field = "", AUXin02Alias , {caninput_sel2}
2286- field = "", AUXin03Alias , {caninput_sel3}
2287- field = "", AUXin04Alias , {caninput_sel4}
2288- field = "", AUXin05Alias , {caninput_sel5}
2289- field = "", AUXin06Alias , {caninput_sel6}
2290- field = "", AUXin07Alias , {caninput_sel7}
2291- field = "", AUXin08Alias , {caninput_sel8}
2292- field = "", AUXin09Alias , {caninput_sel9}
2293- field = "", AUXin10Alias , {caninput_sel10}
2294- field = "", AUXin11Alias , {caninput_sel11}
2295- field = "", AUXin12Alias , {caninput_sel12}
2296- field = "", AUXin13Alias , {caninput_sel13}
2297- field = "", AUXin14Alias , {caninput_sel14}
2298- field = "", AUXin15Alias , {caninput_sel15}
2574+ field = "", AUXin00Alias , {(caninput_sel0a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel0b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2575+ field = "", AUXin01Alias , {(caninput_sel1a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel1b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2576+ field = "", AUXin02Alias , {(caninput_sel2a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel2b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2577+ field = "", AUXin03Alias , {(caninput_sel3a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel3b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2578+ field = "", AUXin04Alias , {(caninput_sel4a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel4b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2579+ field = "", AUXin05Alias , {(caninput_sel5a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel5b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2580+ field = "", AUXin06Alias , {(caninput_sel6a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel6b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2581+ field = "", AUXin07Alias , {(caninput_sel7a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel7b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2582+ field = "", AUXin08Alias , {(caninput_sel8a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel8b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2583+ field = "", AUXin09Alias , {(caninput_sel9a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel9b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2584+ field = "", AUXin10Alias , {(caninput_sel10a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel10b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2585+ field = "", AUXin11Alias , {(caninput_sel11a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel11b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2586+ field = "", AUXin12Alias , {(caninput_sel12a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel12b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2587+ field = "", AUXin13Alias , {(caninput_sel13a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel13b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2588+ field = "", AUXin14Alias , {(caninput_sel14a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel14b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2589+ field = "", AUXin15Alias , {(caninput_sel15a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel15b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
22992590
23002591 dialog = Auxinput_channelenable, "", yAxis
23012592 field = " Aux Input Channel Enable"
2302- field = "AUX Input 0", caninput_sel0
2303- field = "AUX Input 1", caninput_sel1
2304- field = "AUX Input 2", caninput_sel2
2305- field = "AUX Input 3", caninput_sel3
2306- field = "AUX Input 4", caninput_sel4
2307- field = "AUX Input 5", caninput_sel5
2308- field = "AUX Input 6", caninput_sel6
2309- field = "AUX Input 7", caninput_sel7
2310- field = "AUX Input 8", caninput_sel8
2311- field = "AUX Input 9", caninput_sel9
2312- field = "AUX Input 10", caninput_sel10
2313- field = "AUX Input 11", caninput_sel11
2314- field = "AUX Input 12", caninput_sel12
2315- field = "AUX Input 13", caninput_sel13
2316- field = "AUX Input 14", caninput_sel14
2317- field = "AUX Input 15", caninput_sel15
2318-
2319- dialog = Auxin_config, "Auxillary Input Configuration",xAxis
2593+ field = "AUX Input 0", caninput_sel0a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2594+ field = "AUX Input 0", caninput_sel0b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2595+ field = "AUX Input 1", caninput_sel1a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2596+ field = "AUX Input 1", caninput_sel1b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2597+ field = "AUX Input 2", caninput_sel2a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2598+ field = "AUX Input 2", caninput_sel2b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2599+ field = "AUX Input 3", caninput_sel3a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2600+ field = "AUX Input 3", caninput_sel3b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2601+ field = "AUX Input 4", caninput_sel4a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2602+ field = "AUX Input 4", caninput_sel4b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2603+ field = "AUX Input 5", caninput_sel5a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2604+ field = "AUX Input 5", caninput_sel5b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2605+ field = "AUX Input 6", caninput_sel6a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2606+ field = "AUX Input 6", caninput_sel6b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2607+ field = "AUX Input 7", caninput_sel7a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2608+ field = "AUX Input 7", caninput_sel7b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2609+ field = "AUX Input 8", caninput_sel8a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2610+ field = "AUX Input 8", caninput_sel8b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2611+ field = "AUX Input 9", caninput_sel9a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2612+ field = "AUX Input 9", caninput_sel9b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2613+ field = "AUX Input 10", caninput_sel10a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2614+ field = "AUX Input 10", caninput_sel10b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2615+ field = "AUX Input 11", caninput_sel11a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2616+ field = "AUX Input 11", caninput_sel11b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2617+ field = "AUX Input 12", caninput_sel12a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2618+ field = "AUX Input 12", caninput_sel12b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2619+ field = "AUX Input 13", caninput_sel13a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2620+ field = "AUX Input 13", caninput_sel13b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2621+ field = "AUX Input 14", caninput_sel14a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2622+ field = "AUX Input 14", caninput_sel14b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2623+ field = "AUX Input 15", caninput_sel15a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2624+ field = "AUX Input 15", caninput_sel15b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2625+
2626+ dialog = Auxin_south, "Auxillary Input Configuration",xAxis
23202627 panel = Auxinput_alias
23212628 panel = Auxinput_channelenable
23222629 panel = Auxinput_pin_selection
2323-
2630+
2631+ dialog = Auxin_config, "",yAxis
2632+ panel = Auxin_north
2633+ panel = Auxin_south
2634+
23242635 ;-------------------------------------------------------------------------------
23252636 ; General help text
23262637
@@ -2695,6 +3006,7 @@
26953006 ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld
26963007 accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0
26973008 dutyCycleGauge = dutyCycle, "Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1
3009+ stgDutyCycleGauge = stgDutyCycle, "Staging Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1
26983010 egoCorrGauge = egoCorrection, "EGO Correction", "%", 50, 150, 90, 99, 101, 110, 0, 0
26993011
27003012 gammaEnrichGauge = gammaEnrich, "Gamma Enrichment", "%", 50, 150, -1, -1, 151, 151, 0, 0
@@ -2925,7 +3237,9 @@
29253237
29263238 cycleTime = { rpm ? ( 60000.0 / rpm ) : 0 }
29273239 cycleMultiplier = { injLayout == 3 ? 2 : 1 }
2928- dutyCycle = { rpm ? ( 100.0*pulseWidth/(cycleTime * cycleMultiplier) ) : 0 }
3240+ strokeMultipler = { twoStroke == 1 ? 2 : 1 }
3241+ dutyCycle = { rpm ? ( 100.0*pulseWidth/(cycleTime * cycleMultiplier) * strokeMultipler ) : 0 }
3242+ stgDutyCycle = { rpm && stagingEnabled ? ( 100.0*pulseWidth3/(cycleTime * cycleMultiplier) * strokeMultipler ) : 0 }
29293243
29303244 boostCutOut = { boostCutFuel || boostCutSpark }
29313245 lambda = { afr / stoich }
@@ -3028,10 +3342,13 @@
30283342 ;loggerDef = uniqueName, Display Name, type
30293343 loggerDef = tooth, "Tooth Logger", tooth
30303344 ;dataReadCommand = "r\\x00\\xf4\\x00\\x00\\x04\\x00" ; standard TS command format
3345+ startCommand = "H"
3346+ stopCommand = "h"
30313347 dataReadCommand = "T" ; Basic TS command format
30323348 dataReadTimeout = 15000 ; time in ms
30333349 dataReadyCondition = { toothLog1Ready }
3034- dataLength = 256 ; in bytes, including headers, footers and data (not used)
3350+ ;dataLength = 256 ; in bytes, including headers, footers and data (not used)
3351+ dataLength = 128 ; in bytes, including headers, footers and data (not used)
30353352
30363353 ;recordDef = headerLen. footerLen, recordLen
30373354 recordDef = 0, 0, 2; in bytes, the recordLen is for each record, currently limited to 4 bytes
@@ -3039,7 +3356,33 @@
30393356 ;recordField = Name, HeaderName, startBit, bitCount, scale, units, updateCondition
30403357 recordField = toothTime, "ToothTime", 0, 16, 1.0, "uS"
30413358
3359+ loggerDef = compositeLogger, "Composite Logger", composite
3360+ startCommand = "J"
3361+ stopCommand = "j"
3362+ dataReadCommand = "T" ; Basic TS command format. Note that this is shared with the composite logger. Firmware detects which log is currently running
3363+ dataReadTimeout = 5000 ; time in ms
3364+ dataReadyCondition = { toothLog1Ready }
3365+ ;dataLength = 256 ; in bytes, including headers, footers and data (not used)
3366+ ;dataLength = 320 ; in bytes, including headers, footers and data (not used)
30423367
3368+ ;recordDef = headerLen. footerLen, recordLen
3369+ recordDef = 0, 0, 5; in bytes, the recordLen is for each record, currently limited to 4 bytes
3370+
3371+ ;recordField = Name, HeaderName, startBit, bitCount, scale, units, updateCondition
3372+ recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
3373+ recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
3374+ recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
3375+ recordField = sync, "Sync", 3, 1, 1.0, "Flag"
3376+ recordField = refTime, "RefTime", 8, 32, 0.001, "ms", hidden
3377+
3378+ ; hidden calcField serves as intermediate variable
3379+ calcField = maxTime, "MaxTime", "ms", { maxValue(refTime) }, hidden
3380+
3381+ calcField = toothTime, "ToothTime", "ms", { refTime - pastValue(refTime, 1) }
3382+ ;recordField = time, "Time", 24, 16, 1.0, "ms"
3383+ calcField = time, "Time", "ms", { refTime }
3384+
3385+
30433386 [Tools]
30443387 ;addTool = toolName, PanelName
30453388 addTool = veTableGenerator, "VE Table Generator", veTable1Tbl
--- branches/Speeduino/speeduino/comms.h (revision 24)
+++ branches/Speeduino/speeduino/comms.h (revision 25)
@@ -26,7 +26,6 @@
2626 byte cmdGroup = 0;
2727 byte cmdValue = 0;
2828 int cmdCombined = 0; //the cmdgroup as high byte and cmdvalue as low byte
29-byte cmdStore[8]; //array storing pre test values
3029 byte tsCanId = 0; // current tscanid requested
3130
3231 const char pageTitles[] PROGMEM //This is being stored in the avr flash instead of SRAM which there is not very much of
--- branches/Speeduino/speeduino/crankMaths.h (revision 24)
+++ branches/Speeduino/speeduino/crankMaths.h (revision 25)
@@ -9,7 +9,8 @@
99
1010 //#define fastDegreesToUS(targetDegrees) ((targetDegrees) * (unsigned long)timePerDegree)
1111 #define fastDegreesToUS(targetDegrees) (((targetDegrees) * (unsigned long)timePerDegreex16) >> 4)
12-#define fastTimeToAngle(time) (((unsigned long)time * degreesPeruSx2048) / 2048) //Divide by 2048 will be converted at compile time to bitshift
12+//#define fastTimeToAngle(time) (((unsigned long)time * degreesPeruSx2048) / 2048) //Divide by 2048 will be converted at compile time to bitshift
13+#define fastTimeToAngle(time) (((unsigned long)time * degreesPeruSx32768) / 32768) //Divide by 32768 will be converted at compile time to bitshift
1314
1415 #define ignitionLimits(angle) ( (((int16_t)angle) >= CRANK_ANGLE_MAX_IGN) ? (angle - CRANK_ANGLE_MAX_IGN) : ( (angle < 0) ? (angle + CRANK_ANGLE_MAX_IGN) : angle) )
1516
@@ -21,6 +22,7 @@
2122 volatile uint16_t timePerDegree;
2223 volatile uint16_t timePerDegreex16;
2324 volatile uint16_t degreesPeruSx2048;
25+volatile unsigned long degreesPeruSx32768;
2426
2527 //These are only part of the experimental 2nd deriv calcs
2628 byte deltaToothCount = 0; //The last tooth that was used with the deltaV calc
--- branches/Speeduino/speeduino/decoders.h (revision 24)
+++ branches/Speeduino/speeduino/decoders.h (revision 25)
@@ -9,14 +9,16 @@
99 #define READ_SEC_TRIGGER() digitalRead(pinTrigger2)
1010 #endif
1111
12-static inline void addToothLogEntry(unsigned long);
12+static inline void addToothLogEntry(unsigned long, bool);
13+void loggerPrimaryISR();
14+void loggerSecondaryISR();
1315 static inline uint16_t stdGetRPM(uint16_t);
1416 static inline void setFilter(unsigned long);
1517 static inline int crankingGetRPM(byte);
1618 //static inline void doPerToothTiming(uint16_t);
1719
18-void (*trigger)(); //Pointer for the trigger function (Gets pointed to the relevant decoder)
19-void (*triggerSecondary)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder)
20+void (*triggerHandler)(); //Pointer for the trigger function (Gets pointed to the relevant decoder)
21+void (*triggerSecondaryHandler)(); //Pointer for the secondary trigger function (Gets pointed to the relevant decoder)
2022 uint16_t (*getRPM)(); //Pointer to the getRPM function (Gets pointed to the relevant decoder)
2123 int (*getCrankAngle)(); //Pointer to the getCrank Angle function (Gets pointed to the relevant decoder)
2224 void (*triggerSetEndTeeth)(); //Pointer to the triggerSetEndTeeth function of each decoder
@@ -149,6 +151,7 @@
149151 volatile unsigned long curGap2;
150152 volatile unsigned long lastGap;
151153 volatile unsigned long targetGap;
154+volatile unsigned long compositeLastToothTime;
152155
153156 volatile int toothCurrentCount = 0; //The current number of teeth (Onec sync has been achieved, this can never actually be 0
154157 volatile byte toothSystemCount = 0; //Used for decoders such as Audi 135 where not every tooth is used for calculating crank angle. This variable stores the actual number of teeth, not the number being used to calculate crank angle
@@ -171,6 +174,7 @@
171174 volatile int triggerActualTeeth;
172175 volatile unsigned long triggerFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering)
173176 volatile unsigned long triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input
177+volatile bool validTrigger; //Is set true when the last trigger (Primary or secondary) was valid (ie passed filters)
174178 unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) pulse DURATION
175179 volatile uint16_t triggerToothAngle; //The number of crank degrees that elapse per tooth
176180 volatile bool triggerToothAngleIsCorrect = false; //Whether or not the triggerToothAngle variable is currently accurate. Some patterns have times when the triggerToothAngle variable cannot be accurately set.
@@ -177,6 +181,7 @@
177181 bool secondDerivEnabled = false; //The use of the 2nd derivative calculation is limited to certain decoders. This is set to either true or false in each decoders setup routine
178182 bool decoderIsSequential; //Whether or not the decoder supports sequential operation
179183 bool decoderIsLowRes = false; //Is set true, certain extra calculations are performed for better timing accuracy
184+bool decoderHasSecondary = false; //Whether or not the pattern uses a secondary input
180185 bool decoderHasFixedCrankingTiming = false; //Whether or not the decoder supports fixed cranking timing
181186 byte checkSyncToothCount; //How many teeth must've been seen on this revolution before we try to confirm sync (Useful for missing tooth type decoders)
182187 unsigned long elapsedTime;
@@ -197,4 +202,7 @@
197202 #define CRANK_SPEED 0
198203 #define CAM_SPEED 1
199204
205+#define TOOTH_CRANK 0
206+#define TOOTH_CAM 1
207+
200208 #endif
--- branches/Speeduino/speeduino/globals.h (revision 24)
+++ branches/Speeduino/speeduino/globals.h (revision 25)
@@ -127,9 +127,14 @@
127127 #define VALID_MAP_MAX 1022 //The largest ADC value that is valid for the MAP sensor
128128 #define VALID_MAP_MIN 2 //The smallest ADC value that is valid for the MAP sensor
129129
130-#define TOOTH_LOG_SIZE 128
130+#define TOOTH_LOG_SIZE 64
131131 #define TOOTH_LOG_BUFFER 256
132132
133+#define COMPOSITE_LOG_PRI 0
134+#define COMPOSITE_LOG_SEC 1
135+#define COMPOSITE_LOG_TRIG 2
136+#define COMPOSITE_LOG_SYNC 3
137+
133138 #define INJ_PAIRED 0
134139 #define INJ_SEMISEQUENTIAL 1
135140 #define INJ_BANKED 2
@@ -182,6 +187,9 @@
182187 #define OPEN_LOOP_BOOST 0
183188 #define CLOSED_LOOP_BOOST 1
184189
190+#define FOUR_STROKE 0
191+#define TWO_STROKE 1
192+
185193 #define MAX_RPM 18000 //This is the maximum rpm that the ECU will attempt to run at. It is NOT related to the rev limiter, but is instead dictates how fast certain operations will be allowed to run. Lower number gives better performance
186194 #define engineSquirtsPerCycle 2 //Would be 1 for a 2 stroke
187195
@@ -196,11 +204,11 @@
196204 #define FUEL_PUMP_ON() *pump_pin_port |= (pump_pin_mask)
197205 #define FUEL_PUMP_OFF() *pump_pin_port &= ~(pump_pin_mask)
198206
199-const char TSfirmwareVersion[] = "Speeduino 2016.09";
207+const char TSfirmwareVersion[] PROGMEM = "Speeduino";
200208
201209 const byte data_structure_version = 2; //This identifies the data structure when reading / writing.
202210 //const byte page_size = 64;
203-const int16_t npage_size[11] = {0,288,128,288,128,288,128,240,192,192,192};
211+const int16_t npage_size[11] PROGMEM = {0,288,128,288,128,288,128,240,192,192,192};
204212 //const byte page11_size = 128;
205213 #define MAP_PAGE_SIZE 288
206214
@@ -299,9 +307,12 @@
299307 bool clutchTrigger;
300308 bool previousClutchTrigger;
301309 volatile uint16_t toothHistory[TOOTH_LOG_BUFFER];
310+volatile uint8_t compositeLogHistory[TOOTH_LOG_BUFFER];
302311 volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet
303312 volatile unsigned int toothHistoryIndex = 0;
304-volatile bool toothLogRead = false; //Flag to indicate whether the current tooth log values have been read out yet
313+volatile byte toothHistorySerialIndex = 0;
314+byte primaryTriggerEdge;
315+byte secondaryTriggerEdge;
305316 int CRANK_ANGLE_MAX = 720;
306317 int CRANK_ANGLE_MAX_IGN = 360;
307318 int CRANK_ANGLE_MAX_INJ = 360; // The number of crank degrees that the system track over. 360 for wasted / timed batch and 720 for sequential
@@ -401,6 +412,8 @@
401412 byte syncLossCounter;
402413 byte knockRetard;
403414 bool knockActive;
415+ bool toothLogEnabled;
416+ bool compositeLogEnabled;
404417
405418 //Helpful bitwise operations:
406419 //Useful reference: http://playground.arduino.cc/Code/BitMath
@@ -517,7 +530,7 @@
517530 } __attribute__((__packed__)); //The 32 bi systems require all structs to be fully packed
518531 #endif
519532
520-//Page 2 of the config - See the ini file for further reference
533+//Page 4 of the config - See the ini file for further reference
521534 //This mostly covers off variables that are required for ignition
522535 struct config4 {
523536
@@ -575,8 +588,16 @@
575588 byte ignBypassPin : 6; //Pin the ignition bypass is activated on
576589 byte ignBypassHiLo : 1; //Whether this should be active high or low.
577590
578- byte unused2_64[64];
591+ byte ADCFILTER_TPS;
592+ byte ADCFILTER_CLT;
593+ byte ADCFILTER_IAT;
594+ byte ADCFILTER_O2;
595+ byte ADCFILTER_BAT;
596+ byte ADCFILTER_MAP; //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response
597+ byte ADCFILTER_BARO;
579598
599+ byte unused2_64[57];
600+
580601 #if defined(CORE_AVR)
581602 };
582603 #else
@@ -680,8 +701,9 @@
680701 //Page 9 of the config mostly deals with CANBUS control
681702 //See ini file for further info (Config Page 10 in the ini)
682703 struct config9 {
683- byte enable_canbus:2;
684- byte enable_candata_in:1;
704+ byte enable_secondarySerial:1; //enable secondary serial
705+ byte intcan_available:1; //enable internal can module
706+ byte enable_intcan:1;
685707 byte caninput_sel[16]; //bit status on/Can/analog_local/digtal_local if input is enabled
686708 uint16_t caninput_source_can_address[16]; //u16 [15] array holding can address of input
687709 uint8_t caninput_source_start_byte[16]; //u08 [15] array holds the start byte number(value of 0-7)
--- branches/Speeduino/speeduino/scheduler.h (revision 24)
+++ branches/Speeduino/speeduino/scheduler.h (revision 25)
@@ -457,9 +457,9 @@
457457 #endif
458458 };
459459
460-volatile Schedule *timer3Aqueue[4];
461-Schedule *timer3Bqueue[4];
462-Schedule *timer3Cqueue[4];
460+//volatile Schedule *timer3Aqueue[4];
461+//Schedule *timer3Bqueue[4];
462+//Schedule *timer3Cqueue[4];
463463
464464 Schedule fuelSchedule1;
465465 Schedule fuelSchedule2;
--- branches/Speeduino/speeduino/sensors.h (revision 24)
+++ branches/Speeduino/speeduino/sensors.h (revision 25)
@@ -5,6 +5,7 @@
55
66 // The following are alpha values for the ADC filters.
77 // Their values are from 0 to 255 with 0 being no filtering and 255 being maximum
8+/*
89 #define ADCFILTER_TPS 128
910 #define ADCFILTER_CLT 180
1011 #define ADCFILTER_IAT 180
@@ -12,6 +13,7 @@
1213 #define ADCFILTER_BAT 128
1314 #define ADCFILTER_MAP 20 //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response
1415 #define ADCFILTER_BARO 64
16+*/
1517
1618 #define BARO_MIN 87
1719 #define BARO_MAX 108
@@ -28,7 +30,6 @@
2830 volatile byte flexCounter = 0;
2931 volatile byte knockCounter = 0;
3032 volatile uint16_t knockAngle;
31-volatile int AnChannel[15];
3233
3334 unsigned long MAPrunningValue; //Used for tracking either the total of all MAP readings in this cycle (Event average) or the lowest value detected in this cycle (event minimum)
3435 unsigned long EMAPrunningValue; //As above but for EMAP
@@ -47,6 +48,11 @@
4748 * But removes the use of floats and uses 8 bits of fixed precision.
4849 */
4950 #define ADC_FILTER(input, alpha, prior) (((long)input * (256 - alpha) + ((long)prior * alpha))) >> 8
51+//These functions all do checks on a pin to determine if it is already in use by another (higher importance) function
52+#define pinIsInjector(pin) ( (pin == pinInjector1) || (pin == pinInjector2) || (pin == pinInjector3) || (pin == pinInjector4) )
53+#define pinIsIgnition(pin) ( (pin == pinCoil1) || (pin == pinCoil2) || (pin == pinCoil3) || (pin == pinCoil4) )
54+#define pinIsSensor(pin) ( (pin == pinCLT) || (pin == pinIAT) || (pin == pinMAP) || (pin == pinTPS) || (pin == pinO2) || (pin == pinBat) )
55+#define pinIsUsed(pin) ( pinIsInjector(pin) || pinIsIgnition(pin) || pinIsSensor(pin) )
5056
5157 static inline void instanteneousMAPReading() __attribute__((always_inline));
5258 static inline void readMAP() __attribute__((always_inline));
@@ -63,6 +69,8 @@
6369 void readBaro();
6470
6571 #if defined(ANALOG_ISR)
72+volatile int AnChannel[15];
73+
6674 //Analog ISR interrupt routine
6775 /*
6876 ISR(ADC_vect)