• 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

Revision27 (tree)
Time2019-01-01 21:57:01
Authormaharu

Log Message

Based on Speeduino Oct.2018 version.

Change Summary

Incremental Difference

--- branches/Ver1.00_base/reference/PJSC.ini (revision 26)
+++ branches/Ver1.00_base/reference/PJSC.ini (revision 27)
@@ -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
@@ -142,7 +161,7 @@
142161 ;pageValueWrite = "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%2o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v", "W%o%v"
143162
144163 ; New commands
145- ;pageSize = 288, 128, 288, 128, 288, 128, 240, 192, 192, 192, 288
164+ ;pageSize = 288, 128, 288, 128, 288, 128, 128, 160, 192, 192, 192
146165 ;[PJSC] pageIdentifier = "\$tsCanId\x01", "\$tsCanId\x02", "\$tsCanId\x03", "\$tsCanId\x04", "\$tsCanId\x05", "\$tsCanId\x06", "\$tsCanId\x07", "\$tsCanId\x08", "\$tsCanId\x09", "\$tsCanId\x0A"
147166 ;[PJSC] burnCommand = "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i", "b%2i"
148167 ;[PJSC] pageReadCommand = "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c", "p%2i%2o%2c"
@@ -363,11 +382,11 @@
363382 FixAng = scalar, S08, 2, "Deg", 1, 0, -64, 64, 0 ; Allow negative values here
364383 CrankAng = scalar, U08, 3, "Deg", 1, 0, -10, 80, 0
365384 TrigAngMul = scalar, U08, 4, "", 1, 0, 0, 88, 0 ; Multiplier for tooth counts that don't evenly divide into 360
366- TrigEdge = bits, U08, 5,[0:0], "Leading", "Trailing"
385+ TrigEdge = bits, U08, 5,[0:0], "RISING", "FALLING"
367386 TrigSpeed = bits, U08, 5,[1:1], "Crank Speed", "Cam Speed"
368387 IgInv = bits, U08, 5,[2:2], "Going Low", "Going High"
369388 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"
370- TrigEdgeSec= bits, U08, 6,[0:0], "Leading", "Trailing"
389+ TrigEdgeSec= bits, U08, 6,[0:0], "RISING", "FALLING"
371390 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"
372391 useResync = bits, U08, 6,[7:7], "No", "Yes"
373392 sparkDur = scalar, U08, 7, "ms", 0.1, 0, 0, 25.5, 1 ; Spark duration
@@ -431,11 +450,19 @@
431450 dfcoHyster = scalar, U08, 61, "RPM", 1.0, 0.0, 100, 255.0, 0
432451 dfcoTPSThresh= scalar, U08, 62, "%", 1.0, 0.0, 0, 100.0, 0
433452 ;Cranking ignition bypass
434- ignBypassEnable = bits, U08, 63, [0:0], "Off", "On"
435- 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"
436- ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH"
453+ ignBypassEnable = bits, U08, 63, [0:0], "Off", "On"
454+ 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"
455+ ignBypassHiLo = bits, U08, 63, [7:7], "LOW", "HIGH"
456+;Analog input filter levels (Note max values are 254 so that default values of 255 can be overwirtten on bootup)
457+ ADCFILTER_TPS = scalar, U08, 64, "%", 1.0, 0.0, 0, 240, 0
458+ ADCFILTER_CLT = scalar, U08, 65, "%", 1.0, 0.0, 0, 240, 0
459+ ADCFILTER_IAT = scalar, U08, 66, "%", 1.0, 0.0, 0, 240, 0
460+ ADCFILTER_O2 = scalar, U08, 67, "%", 1.0, 0.0, 0, 240, 0
461+ ADCFILTER_BAT = scalar, U08, 68, "%", 1.0, 0.0, 0, 240, 0
462+ ADCFILTER_MAP = scalar, U08, 69, "%", 1.0, 0.0, 0, 240, 0
463+ ADCFILTER_BARO = scalar, U08, 70, "%", 1.0, 0.0, 0, 240, 0
437464
438- unused4-64 = array, U08, 64, [63], "%", 1.0, 0.0, 0.0, 255, 0
465+ unused4-64 = array, U08, 71, [56], "%", 1.0, 0.0, 0.0, 255, 0
439466 ;--------------------------------------------------
440467 ;Start AFR page
441468 ;--------------------------------------------------
@@ -642,48 +669,106 @@
642669 ;CANBUS control and Auxillary io(Page 9)
643670 ;--------------------------------------------------
644671 page = 9
645- #if CAN_COMMANDS
646- enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "ON via Internal CAN ", "INVALID"
647- #else
648- enable_canbus = bits, U08, 0, [0:1], "Disable", "On Via Secondary Serial", "INVALID", "INVALID"
649- #endif
650- enable_candata_in = bits, U08, 0, [2:2], "Off", "On"
651- #if CAN_COMMANDS
652- caninput_sel0 = bits, U08, 1, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
653- caninput_sel1 = bits, U08, 2, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
654- caninput_sel2 = bits, U08, 3, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
655- caninput_sel3 = bits, U08, 4, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
656- caninput_sel4 = bits, U08, 5, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
657- caninput_sel5 = bits, U08, 6, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
658- caninput_sel6 = bits, U08, 7, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
659- caninput_sel7 = bits, U08, 8, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
660- caninput_sel8 = bits, U08, 9, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
661- caninput_sel9 = bits, U08, 10, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
662- caninput_sel10 = bits, U08, 11, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
663- caninput_sel11 = bits, U08, 12, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
664- caninput_sel12 = bits, U08, 13, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
665- caninput_sel13 = bits, U08, 14, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
666- caninput_sel14 = bits, U08, 15, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
667- caninput_sel15 = bits, U08, 16, [0:1], "Off", "EXT / CAN", "Analog_local", "Digital_local"
668- #else
669- caninput_sel0 = bits, U08, 1, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
670- caninput_sel1 = bits, U08, 2, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
671- caninput_sel2 = bits, U08, 3, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
672- caninput_sel3 = bits, U08, 4, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
673- caninput_sel4 = bits, U08, 5, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
674- caninput_sel5 = bits, U08, 6, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
675- caninput_sel6 = bits, U08, 7, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
676- caninput_sel7 = bits, U08, 8, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
677- caninput_sel8 = bits, U08, 9, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
678- caninput_sel9 = bits, U08, 10, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
679- caninput_sel10 = bits, U08, 11, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
680- caninput_sel11 = bits, U08, 12, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
681- caninput_sel12 = bits, U08, 13, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
682- caninput_sel13 = bits, U08, 14, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
683- caninput_sel14 = bits, U08, 15, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
684- caninput_sel15 = bits, U08, 16, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
685- #endif
686- ;caninput_param_group = array , U16, 9, [ 8], "", 1, 0, 0, 65535, 0
672+ enable_secondarySerial = bits, U08, 0, [0:0], "Disable", "Enable"
673+ intcan_available = bits, U08, 0, [1:1], "Disable", "Enable"
674+ enable_intcan = bits, U08, 0, [2:2], "Disable", "Enable"
675+
676+ caninput_sel0a = bits, U08, 1, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
677+ caninput_sel0b = bits, U08, 1, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
678+ caninput_sel0extsourcea = bits, U08, 1, [5:5], "Via Secondary Serial", "INVALID"
679+ caninput_sel0extsourceb = bits, U08, 1, [6:6], "Via Secondary Serial", "Via Internal CAN"
680+ caninput_sel0extsourcec = bits, U08, 1, [7:7], "INVALID", "Via Internal CAN"
681+
682+ caninput_sel1a = bits, U08, 2, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
683+ caninput_sel1b = bits, U08, 2, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
684+ caninput_sel1extsourcea = bits, U08, 2, [5:5], "Via Secondary Serial", "INVALID"
685+ caninput_sel1extsourceb = bits, U08, 2, [6:6], "Via Secondary Serial", "Via Internal CAN"
686+ caninput_sel1extsourcec = bits, U08, 2, [7:7], "INVALID", "Via Internal CAN"
687+
688+ caninput_sel2a = bits, U08, 3, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
689+ caninput_sel2b = bits, U08, 3, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
690+ caninput_sel2extsourcea = bits, U08, 3, [5:5], "Via Secondary Serial", "INVALID"
691+ caninput_sel2extsourceb = bits, U08, 3, [6:6], "Via Secondary Serial", "Via Internal CAN"
692+ caninput_sel2extsourcec = bits, U08, 3, [7:7], "INVALID", "Via Internal CAN"
693+
694+ caninput_sel3a = bits, U08, 4, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
695+ caninput_sel3b = bits, U08, 4, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
696+ caninput_sel3extsourcea = bits, U08, 4, [5:5], "Via Secondary Serial", "INVALID"
697+ caninput_sel3extsourceb = bits, U08, 4, [6:6], "Via Secondary Serial", "Via Internal CAN"
698+ caninput_sel3extsourcec = bits, U08, 4, [7:7], "INVALID", "Via Internal CAN"
699+
700+ caninput_sel4a = bits, U08, 5, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
701+ caninput_sel4b = bits, U08, 5, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
702+ caninput_sel4extsourcea = bits, U08, 5, [5:5], "Via Secondary Serial", "INVALID"
703+ caninput_sel4extsourceb = bits, U08, 5, [6:6], "Via Secondary Serial", "Via Internal CAN"
704+ caninput_sel4extsourcec = bits, U08, 5, [7:7], "INVALID", "Via Internal CAN"
705+
706+ caninput_sel5a = bits, U08, 6, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
707+ caninput_sel5b = bits, U08, 6, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
708+ caninput_sel5extsourcea = bits, U08, 6, [5:5], "Via Secondary Serial", "INVALID"
709+ caninput_sel5extsourceb = bits, U08, 6, [6:6], "Via Secondary Serial", "Via Internal CAN"
710+ caninput_sel5extsourcec = bits, U08, 6, [7:7], "INVALID", "Via Internal CAN"
711+
712+ caninput_sel6a = bits, U08, 7, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
713+ caninput_sel6b = bits, U08, 7, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
714+ caninput_sel6extsourcea = bits, U08, 7, [5:5], "Via Secondary Serial", "INVALID"
715+ caninput_sel6extsourceb = bits, U08, 7, [6:6], "Via Secondary Serial", "Via Internal CAN"
716+ caninput_sel6extsourcec = bits, U08, 7, [7:7], "INVALID", "Via Internal CAN"
717+
718+ caninput_sel7a = bits, U08, 8, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
719+ caninput_sel7b = bits, U08, 8, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
720+ caninput_sel7extsourcea = bits, U08, 8, [5:5], "Via Secondary Serial", "INVALID"
721+ caninput_sel7extsourceb = bits, U08, 8, [6:6], "Via Secondary Serial", "Via Internal CAN"
722+ caninput_sel7extsourcec = bits, U08, 8, [7:7], "INVALID", "Via Internal CAN"
723+
724+ caninput_sel8a = bits, U08, 9, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
725+ caninput_sel8b = bits, U08, 9, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
726+ caninput_sel8extsourcea = bits, U08, 9, [5:5], "Via Secondary Serial", "INVALID"
727+ caninput_sel8extsourceb = bits, U08, 9, [6:6], "Via Secondary Serial", "Via Internal CAN"
728+ caninput_sel8extsourcec = bits, U08, 9, [7:7], "INVALID", "Via Internal CAN"
729+
730+ caninput_sel9a = bits, U08, 10, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
731+ caninput_sel9b = bits, U08, 10, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
732+ caninput_sel9extsourcea = bits, U08, 10, [5:5], "Via Secondary Serial", "INVALID"
733+ caninput_sel9extsourceb = bits, U08, 10, [6:6], "Via Secondary Serial", "Via Internal CAN"
734+ caninput_sel9extsourcec = bits, U08, 10, [7:7], "INVALID", "Via Internal CAN"
735+
736+ caninput_sel10a = bits, U08, 11, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
737+ caninput_sel10b = bits, U08, 11, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
738+ caninput_sel10extsourcea = bits, U08, 11, [5:5], "Via Secondary Serial", "INVALID"
739+ caninput_sel10extsourceb = bits, U08, 11, [6:6], "Via Secondary Serial", "Via Internal CAN"
740+ caninput_sel10extsourcec = bits, U08, 11, [7:7], "INVALID", "Via Internal CAN"
741+
742+ caninput_sel11a = bits, U08, 12, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
743+ caninput_sel11b = bits, U08, 12, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
744+ caninput_sel11extsourcea = bits, U08, 12, [5:5], "Via Secondary Serial", "INVALID"
745+ caninput_sel11extsourceb = bits, U08, 12, [6:6], "Via Secondary Serial", "Via Internal CAN"
746+ caninput_sel11extsourcec = bits, U08, 12, [7:7], "INVALID", "Via Internal CAN"
747+
748+ caninput_sel12a = bits, U08, 13, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
749+ caninput_sel12b = bits, U08, 13, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
750+ caninput_sel12extsourcea = bits, U08, 13, [5:5], "Via Secondary Serial", "INVALID"
751+ caninput_sel12extsourceb = bits, U08, 13, [6:6], "Via Secondary Serial", "Via Internal CAN"
752+ caninput_sel12extsourcec = bits, U08, 13, [7:7], "INVALID", "Via Internal CAN"
753+
754+ caninput_sel13a = bits, U08, 14, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
755+ caninput_sel13b = bits, U08, 14, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
756+ caninput_sel13extsourcea = bits, U08, 14, [5:5], "Via Secondary Serial", "INVALID"
757+ caninput_sel13extsourceb = bits, U08, 14, [6:6], "Via Secondary Serial", "Via Internal CAN"
758+ caninput_sel13extsourcec = bits, U08, 14, [7:7], "INVALID", "Via Internal CAN"
759+
760+ caninput_sel14a = bits, U08, 15, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
761+ caninput_sel14b = bits, U08, 15, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
762+ caninput_sel14extsourcea = bits, U08, 15, [5:5], "Via Secondary Serial", "INVALID"
763+ caninput_sel14extsourceb = bits, U08, 15, [6:6], "Via Secondary Serial", "Via Internal CAN"
764+ caninput_sel14extsourcec = bits, U08, 15, [7:7], "INVALID", "Via Internal CAN"
765+
766+ caninput_sel15a = bits, U08, 16, [0:1], "Off", "INVALID", "Analog_local", "Digital_local"
767+ caninput_sel15b = bits, U08, 16, [2:3], "Off", "External Source", "Analog_local", "Digital_local"
768+ caninput_sel15extsourcea = bits, U08, 16, [5:5], "Via Secondary Serial", "INVALID"
769+ caninput_sel15extsourceb = bits, U08, 16, [6:6], "Via Secondary Serial", "Via Internal CAN"
770+ caninput_sel15extsourcec = bits, U08, 16, [7:7], "INVALID", "Via Internal CAN"
771+
687772 caninput_source_can_address0 = bits, U16, 17, [0:10], $CAN_ADDRESS_HEX
688773 caninput_source_can_address1 = bits, U16, 19, [0:10], $CAN_ADDRESS_HEX
689774 caninput_source_can_address2 = bits, U16, 21, [0:10], $CAN_ADDRESS_HEX
@@ -701,8 +786,6 @@
701786 caninput_source_can_address14 = bits, U16, 45, [0:10], $CAN_ADDRESS_HEX
702787 caninput_source_can_address15 = bits, U16, 47, [0:10], $CAN_ADDRESS_HEX
703788
704-
705-
706789 caninput_source_start_byte0 = bits, U08, 49, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
707790 caninput_source_start_byte1 = bits, U08, 50, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
708791 caninput_source_start_byte2 = bits, U08, 51, [0:2], "0", "1", "2", "3", "4", "5", "6", "7"
@@ -740,7 +823,7 @@
740823 unused10_67 = scalar, U08, 67, "", 1, 0, 0, 255, 0
741824 unused10_68 = scalar, U08, 68, "", 1, 0, 0, 255, 0
742825
743- enable_candata_out = bits, U08, 69, [0:0], "Off", "On"
826+ enable_intcandata_out = bits, U08, 69, [0:0], "Off", "On"
744827 canoutput_sel0 = bits, U08, 70, [0:0], "Off", "On"
745828 canoutput_sel1 = bits, U08, 71, [0:0], "Off", "On"
746829 canoutput_sel2 = bits, U08, 72, [0:0], "Off", "On"
@@ -777,10 +860,6 @@
777860 realtime_base_address = bits, U16, 117, [0:10], $CAN_ADDRESS_HEX
778861 obd_address = bits, U16, 119, [0:10], $CAN_ADDRESS_HEX
779862
780- ;AFR offset for WUE VeAnalyze
781- ;wueAFRRates = array, U08, 107, [10], "%", 1.0, 0.0, 0.0, 255, 0
782- ;wueAFRBins = array, U08, 117, [10], "C", 1.0, -40, -40, 102.0, 0
783-
784863 Auxin0pina = bits, U08, 121, [0:5], $ANALOG_PIN
785864 Auxin1pina = bits, U08, 122, [0:5], $ANALOG_PIN
786865 Auxin2pina = bits, U08, 123, [0:5], $ANALOG_PIN
@@ -1019,6 +1098,7 @@
10191098 requiresPowerCycle = knock_pin
10201099 requiresPowerCycle = knock_trigger
10211100 requiresPowerCycle = knock_pullup
1101+ requiresPowerCycle = idleUpEnabled
10221102 requiresPowerCycle = pjscFreq ;[PJSC]
10231103 requiresPowerCycle = squirtDeviceType ; |
10241104 requiresPowerCycle = multiVEmapEnabled ; |
@@ -1029,6 +1109,39 @@
10291109 requiresPowerCycle = muxout1selection ;[PJSC v1.10]
10301110 requiresPowerCycle = muxout2selection ;[PJSC v1.10]
10311111
1112+ requiresPowerCycle = caninput_sel0a
1113+ requiresPowerCycle = caninput_sel0b
1114+ requiresPowerCycle = caninput_sel1a
1115+ requiresPowerCycle = caninput_sel1b
1116+ requiresPowerCycle = caninput_sel2a
1117+ requiresPowerCycle = caninput_sel2b
1118+ requiresPowerCycle = caninput_sel3a
1119+ requiresPowerCycle = caninput_sel3b
1120+ requiresPowerCycle = caninput_sel4a
1121+ requiresPowerCycle = caninput_sel4b
1122+ requiresPowerCycle = caninput_sel5a
1123+ requiresPowerCycle = caninput_sel5b
1124+ requiresPowerCycle = caninput_sel6a
1125+ requiresPowerCycle = caninput_sel6b
1126+ requiresPowerCycle = caninput_sel7a
1127+ requiresPowerCycle = caninput_sel7b
1128+ requiresPowerCycle = caninput_sel8a
1129+ requiresPowerCycle = caninput_sel8b
1130+ requiresPowerCycle = caninput_sel9a
1131+ requiresPowerCycle = caninput_sel9b
1132+ requiresPowerCycle = caninput_sel10a
1133+ requiresPowerCycle = caninput_sel10b
1134+ requiresPowerCycle = caninput_sel11a
1135+ requiresPowerCycle = caninput_sel11b
1136+ requiresPowerCycle = caninput_sel12a
1137+ requiresPowerCycle = caninput_sel12b
1138+ requiresPowerCycle = caninput_sel13a
1139+ requiresPowerCycle = caninput_sel13b
1140+ requiresPowerCycle = caninput_sel14a
1141+ requiresPowerCycle = caninput_sel14b
1142+ requiresPowerCycle = caninput_sel15a
1143+ requiresPowerCycle = caninput_sel15b
1144+
10321145 defaultValue = pinLayout, 1
10331146 defaultValue = TrigPattern, 0
10341147 defaultValue = useResync, 1
@@ -1131,6 +1244,26 @@
11311244 defaultValue = perToothIgn, 0
11321245 defaultValue = resetControlPin, 0
11331246
1247+ ;Default ADC filter values
1248+ defaultValue = ADCFILTER_TPS 50
1249+ defaultValue = ADCFILTER_CLT 180
1250+ defaultValue = ADCFILTER_IAT 180
1251+ defaultValue = ADCFILTER_O2 100
1252+ defaultValue = ADCFILTER_BAT 128
1253+ defaultValue = ADCFILTER_MAP 20 ;This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response
1254+ defaultValue = ADCFILTER_BARO 64
1255+ ;Force the controller priority for the filters (Controller knows best here when in doubt)
1256+ controllerPriority = ADCFILTER_TPS
1257+ controllerPriority = ADCFILTER_CLT
1258+ controllerPriority = ADCFILTER_IAT
1259+ controllerPriority = ADCFILTER_O2
1260+ controllerPriority = ADCFILTER_BAT
1261+ controllerPriority = ADCFILTER_MAP
1262+ controllerPriority = ADCFILTER_BARO
1263+ ;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
1264+ controllerPriority = TrigEdge
1265+ controllerPriority = TrigEdgeSec
1266+
11341267 ;These are the limits for each of the load algorithms (Refer to the PC Variables section)
11351268 ;Order is: MAP TPS IMAP/EMAP ITB UNUSED UNUSED UNUSED UNUSED
11361269 defaultValue = algorithmLimits, 511 100 511 511 100 100 100 100
@@ -1275,12 +1408,14 @@
12751408 #if CAN_COMMANDS
12761409 subMenu = can_serial3IO, "Canbus/Secondary Serial IO Interface"
12771410 subMenu = std_separator
1278- subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_canbus}
1411+ subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_secondarySerial || (enable_intcan && intcan_available)}
12791412 subMenu = Auxin_config, "Local Auxillary Input Channel Configuration"
12801413 ;subMenu = std_separator
12811414 ;subMenu = Canout_config, "Canbus Output Configuration"
12821415 #else
1283- subMenu = serial3IO, "Secondary Serial IO Interface"
1416+ subMenu = serial3IO, "Canbus/Secondary Serial IO Interface"
1417+ subMenu = std_separator
1418+ subMenu = Canin_config, "External Auxillary Input Channel Configuration", {enable_secondarySerial || (enable_intcan && intcan_available)}
12841419 subMenu = Auxin_config, "Local Auxillary Input Channel Configuration"
12851420 #endif
12861421
@@ -1289,6 +1424,7 @@
12891424 subMenu = mapCal, "Calibrate Pressure Sensors"
12901425 subMenu = std_ms2gentherm, "Calibrate Temperature Sensors", 0
12911426 subMenu = std_ms2geno2, "Calibrate AFR Sensor", 0
1427+ subMenu = sensorFilters, "Set analog sensor filters"
12921428
12931429 menuDialog = main
12941430 menu = "3D &Tuning Maps"
@@ -1393,11 +1529,8 @@
13931529 flatSRetard = "The absolute timing (BTDC) that will be used when within the soft limit window"
13941530 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"
13951531
1396- #if CAN_COMMANDS
1397- 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 "
1398- #else
1399- enable_canbus = "This Enables the IO on the secondary serial port. This is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor "
1400- #endif
1532+ enable_secondarySerial = "This Enables the secondary serial port . Secondary serial is serial3 on mega2560 processor, and Serial2 on STM32 and Teensy processor "
1533+
14011534 ;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"
14021535 true_address = "This is the 11bit Can address of the Speeduino ECU "
14031536 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"
@@ -1418,22 +1551,41 @@
14181551 AUXin13Alias = "The Ascii alias asigned to Aux input channel 13"
14191552 AUXin14Alias = "The Ascii alias asigned to Aux input channel 14"
14201553 AUXin15Alias = "The Ascii alias asigned to Aux input channel 15"
1421- caninput_sel0 = "This Enables External/CAN data or local analog/digital on input channel 0 "
1422- caninput_sel1 = "This Enables External/CAN data or local analog/digital on input channel 1 "
1423- caninput_sel2 = "This Enables External/CAN data or local analog/digital on input channel 2 "
1424- caninput_sel3 = "This Enables External/CAN data or local analog/digital on input channel 3 "
1425- caninput_sel4 = "This Enables External/CAN data or local analog/digital on input channel 4 "
1426- caninput_sel5 = "This Enables External/CAN data or local analog/digital on input channel 5 "
1427- caninput_sel6 = "This Enables External/CAN data or local analog/digital on input channel 6 "
1428- caninput_sel7 = "This Enables External/CAN data or local analog/digital on input channel 7 "
1429- caninput_sel8 = "This Enables External/CAN data or local analog/digital on input channel 8 "
1430- caninput_sel9 = "This Enables External/CAN data or local analog/digital on input channel 9 "
1431- caninput_sel10 = "This Enables External/CAN data or local analog/digital on input channel 10 "
1432- caninput_sel11 = "This Enables External/CAN data or local analog/digital on input channel 11 "
1433- caninput_sel12 = "This Enables External/CAN data or local analog/digital on input channel 12 "
1434- caninput_sel13 = "This Enables External/CAN data or local analog/digital on input channel 13 "
1435- caninput_sel14 = "This Enables External/CAN data or local analog/digital on input channel 14 "
1436- caninput_sel15 = "This Enables External/CAN data or local analog/digital on input channel 15 "
1554+
1555+ caninput_sel0a = "This Enables local analog/digital on input channel 0 "
1556+ caninput_sel1a = "This Enables local analog/digital on input channel 1 "
1557+ caninput_sel2a = "This Enables local analog/digital on input channel 2 "
1558+ caninput_sel3a = "This Enables local analog/digital on input channel 3 "
1559+ caninput_sel4a = "This Enables local analog/digital on input channel 4 "
1560+ caninput_sel5a = "This Enables local analog/digital on input channel 5 "
1561+ caninput_sel6a = "This Enables local analog/digital on input channel 6 "
1562+ caninput_sel7a = "This Enables local analog/digital on input channel 7 "
1563+ caninput_sel8a = "This Enables local analog/digital on input channel 8 "
1564+ caninput_sel9a = "This Enables local analog/digital on input channel 9 "
1565+ caninput_sel10a = "This Enables local analog/digital on input channel 10 "
1566+ caninput_sel11a = "This Enables local analog/digital on input channel 11 "
1567+ caninput_sel12a = "This Enables local analog/digital on input channel 12 "
1568+ caninput_sel13a = "This Enables local analog/digital on input channel 13 "
1569+ caninput_sel14a = "This Enables local analog/digital on input channel 14 "
1570+ caninput_sel15a = "This Enables local analog/digital on input channel 15 "
1571+
1572+ caninput_sel0b = "This Enables External CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 0 "
1573+ caninput_sel1b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 1 "
1574+ caninput_sel2b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 2 "
1575+ caninput_sel3b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 3 "
1576+ caninput_sel4b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 4 "
1577+ caninput_sel5b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 5 "
1578+ caninput_sel6b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 6 "
1579+ caninput_sel7b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 7 "
1580+ caninput_sel8b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 8 "
1581+ caninput_sel9b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 9 "
1582+ caninput_sel10b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 10 "
1583+ caninput_sel11b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 11 "
1584+ caninput_sel12b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 12 "
1585+ caninput_sel13b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 13 "
1586+ caninput_sel14b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 14 "
1587+ caninput_sel15b = "This Enables External/CAN data via the Secondary Serial CANBUS expansion module or local analog/digital on input channel 15 "
1588+
14371589 caninput_source_can_address0 = "The source 11bit CAN address of the data for channel 0"
14381590 caninput_source_can_address1 = "The source 11bit CAN address of the data for channel 1"
14391591 caninput_source_can_address2 = "The source 11bit CAN address of the data for channel 2"
@@ -1494,6 +1646,14 @@
14941646 cmdtestspk350dc = "this will cycle the output at 50% Duty cycle"
14951647 cmdtestspk450dc = "this will cycle the output at 50% Duty cycle"
14961648
1649+ ADCFILTER_TPS = "Recommended value: 50"
1650+ ADCFILTER_CLT = "Recommended value: 180"
1651+ ADCFILTER_IAT = "Recommended value: 180"
1652+ ADCFILTER_O2 = "Recommended value: 128"
1653+ ADCFILTER_BAT = "Recommended value: 128"
1654+ ADCFILTER_MAP = "This setting is only available when using the Instantaneious MAP sampling method. Recommended value: 20"
1655+ ADCFILTER_BARO = "This setting is only available when using an external Baro sensor. Recommended value: 64"
1656+
14971657 boostIntv = "The closed loop control interval will run every this many ms. Generally values between 50% and 100% of the valve frequency work best"
14981658 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"
14991659
@@ -1888,8 +2048,8 @@
18882048 field = "Trigger edge", TrigEdge { TrigPattern != 4 } ;4G63 uses both edges
18892049 field = "Secondary trigger edge", TrigEdgeSec, { (TrigPattern == 0 && TrigSpeed == 0) || TrigPattern == 2 || TrigPattern == 9 || TrigPattern == 12 } ;Missing tooth, dual wheel and Miata 9905
18902050 field = "Missing Tooth Secondary type" trigPatternSec, { (TrigPattern == 0&& TrigSpeed == 0) }
1891- field = "Trigger Filter", TrigFilter
1892- 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
2051+ field = "Trigger Filter", TrigFilter, { TrigPattern != 13 }
2052+ 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
18932053
18942054 ;[PJSC] dialog = sparkSettings,"Spark Settings",4
18952055 ;[PJSC] field = "Ignition load source", ignAlgorithm
@@ -1902,7 +2062,7 @@
19022062 ;[PJSC] field = "#Note: During cranking the fixed/locked timing angle is overriden by the Cranking advance angle value above"
19032063 ;[PJSC] field = ""
19042064 ;[PJSC] field = "#The below option is currently in testing! If unsure what this is, please set to No"
1905-;[PJSC] 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
2065+;[PJSC] 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
19062066
19072067 ;[PJSC] dialog = dwellSettings, "Dwell Settings", 4
19082068 ;[PJSC] topicHelp = "http://speeduino.com/wiki/index.php/Dwell"
@@ -2024,6 +2184,7 @@
20242184 settingOption = "MPX6400", mapMin=3, mapMax=416 ; https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf VOUT = VS x (0.002421xP–0.00842)
20252185 settingOption = "Denso 079800", mapMin=0, mapMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021
20262186 settingOption = "VW/Audi/Porsche 250kPa", mapMin=26, mapMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502
2187+ settingOption = "Bosch 3 Bar TMAP", mapMin=-6, mapMax=323
20272188
20282189 field = "kPa At 0.0 Volts", mapMin
20292190 field = "kPa At 5.0 Volts", mapMax
@@ -2043,6 +2204,7 @@
20432204 settingOption = "MPX6400", baroMin=3, baroMax=416 ; https://www.nxp.com/docs/en/data-sheet/MPXH6400A.pdf VOUT = VS x (0.002421xP–0.00842)
20442205 settingOption = "Denso 079800", baroMin=0, baroMax=173 ; http://speeduino.com/forum/viewtopic.php?f=18&t=510&p=7023#p7021
20452206 settingOption = "VW/Audi/Porsche 250kPa", baroMin=26, baroMax=250 ; http://speeduino.com/forum/viewtopic.php?p=17502#p17502
2207+ settingOption = "Bosch 3 Bar TMAP", mapMin=-6, mapMax=323
20462208
20472209 field = "kPa At 0.0 Volts", baroMin, { useExtBaro }
20482210 field = "kPa At 5.0 Volts", baroMax, { useExtBaro }
@@ -2066,6 +2228,19 @@
20662228 field = "kPa At 0.0 Volts", EMAPMin, { useEMAP }
20672229 field = "kPa At 5.0 Volts", EMAPMax, { useEMAP }
20682230
2231+ dialog = sensorFilters, "Analog sensor filters"
2232+ field = "The values here set the amount of filtering to apply to each analog input"
2233+ field = "Higher values result in stronger filtering, but slower response times for readings"
2234+ field = "#Most setups will NOT require changes to the default filter values"
2235+ field = ""
2236+ slider = "Throttle Position Sensor", ADCFILTER_TPS, horizontal
2237+ slider = "Coolant Sensor", ADCFILTER_CLT, horizontal
2238+ slider = "Inlet Air Temp sensor", ADCFILTER_IAT, horizontal
2239+ slider = "O2 sensor", ADCFILTER_O2, horizontal
2240+ slider = "Battery voltage", ADCFILTER_BAT, horizontal
2241+ slider = "MAP sensor", ADCFILTER_MAP, horizontal
2242+ slider = "Baro sensor", ADCFILTER_BARO, horizontal, { useExtBaro > 0 }
2243+
20692244 dialog = boostSettings, "Boost Control"
20702245 topicHelp = "http://speeduino.com/wiki/index.php/Boost_Control"
20712246 field = "Boost Control Enabled", boostEnabled
@@ -2160,30 +2335,30 @@
21602335 commandButton = "Stop Test Mode", cmdStopTestMode,{testactive}, clickOnCloseIfEnabled
21612336
21622337 dialog = outputtestinj1, "Injector CH1", yAxis
2163- commandButton = "Off", cmdtestinj1off, {testactive}
2338+ commandButton = "Off", cmdtestinj1off,{testactive}
21642339 ;[PJSC v1.10] commandButton = "50% DC", cmdtestinj150dc,{!testenabled & testactive}
2165- commandButton = "On", cmdtestinj1on, {!testenabled & testactive}
2340+ commandButton = "On", cmdtestinj1on,{!testenabled & testactive}
21662341 commandButton = "PWM", cmdtestinj150dc, {!testenabled & testactive} ;[PJSC v1.10]
21672342 field = "PWM freq.", dutyFreqTst1, {!testenabled & testactive} ;[PJSC v1.10]
21682343 field = "Duty ratio", dutyRatioTst1, {!testenabled & testactive} ;[PJSC v1.10]
21692344 dialog = outputtestinj2, "Injector CH2", yAxis
2170- commandButton = "Off", cmdtestinj2off, {testactive}
2345+ commandButton = "Off", cmdtestinj2off,{testactive}
21712346 ;[PJSC v1.10] commandButton = "50% DC", cmdtestinj250dc,{!testenabled &testactive}
2172- commandButton = "On", cmdtestinj2on, {!testenabled & testactive}
2347+ commandButton = "On", cmdtestinj2on,{!testenabled & testactive}
21732348 commandButton = "PWM", cmdtestinj250dc, {!testenabled & testactive} ;[PJSC v1.10]
21742349 field = "PWM freq.", dutyFreqTst2, {!testenabled & testactive} ;[PJSC v1.10]
21752350 field = "Duty ratio", dutyRatioTst2, {!testenabled & testactive} ;[PJSC v1.10]
21762351 dialog = outputtestinj3, "Injector CH3", yAxis
2177- commandButton = "Off", cmdtestinj3off, {testactive}
2352+ commandButton = "Off", cmdtestinj3off,{testactive}
21782353 ;[PJSC v1.10] commandButton = "50% DC", cmdtestinj350dc,{!testenabled & testactive}
2179- commandButton = "On", cmdtestinj3on, {!testenabled & testactive}
2354+ commandButton = "On", cmdtestinj3on,{!testenabled & testactive}
21802355 commandButton = "PWM", cmdtestinj350dc, {!testenabled & testactive} ;[PJSC v1.10]
21812356 field = "PWM freq.", dutyFreqTst3, {!testenabled & testactive} ;[PJSC v1.10]
21822357 field = "Duty ratio", dutyRatioTst3, {!testenabled & testactive} ;[PJSC v1.10]
21832358 dialog = outputtestinj4, "Injector CH4", yAxis
2184- commandButton = "Off", cmdtestinj4off, {testactive}
2359+ commandButton = "Off", cmdtestinj4off,{testactive}
21852360 ;[PJSC v1.10] commandButton = "50% DC", cmdtestinj450dc,{!testenabled & testactive}
2186- commandButton = "On", cmdtestinj4on , {!testenabled & testactive}
2361+ commandButton = "On", cmdtestinj4on ,{!testenabled & testactive}
21872362 commandButton = "PWM", cmdtestinj450dc, {!testenabled & testactive} ;[PJSC v1.10]
21882363 field = "PWM freq.", dutyFreqTst4, {!testenabled & testactive} ;[PJSC v1.10]
21892364 field = "Duty ratio", dutyRatioTst4, {!testenabled & testactive} ;[PJSC v1.10]
@@ -2225,7 +2400,7 @@
22252400 ;[PJSC] panel = outputtest_spark
22262401 ;panel = outputtest_io2
22272402 panel = outputtest_warningmessage
2228-
2403+
22292404 ;[PJSC v1.10] For test mode - outputs pulse =========================================================================
22302405 dialog = outputTestbuttons1a, "", xAxis
22312406 ;commandButton = "Label Text", command, { Enabled Condition }, optionalFlags
@@ -2286,102 +2461,178 @@
22862461
22872462 ;[PJSC v1.10] For test mode - outputs pulse =========================================================================
22882463
2464+ dialog = Auxin_north
2465+ displayOnlyField = #"Secondary Serial ENABLED", blankfield, {enable_secondarySerial},{enable_secondarySerial}
2466+ displayOnlyField = !"Secondary Serial DISABLED", blankfield, {enable_secondarySerial == 0},{enable_secondarySerial == 0}
2467+ displayOnlyField = #"Internal CANBUS ENABLED", blankfield, {enable_intcan && intcan_available},{enable_intcan && intcan_available}
2468+ displayOnlyField = !"Internal CANBUS DISABLED", blankfield, {enable_intcan == 0 && intcan_available},{enable_intcan == 0 && intcan_available}
2469+ displayOnlyField = !"Internal CANBUS NOT AVAILABLE to MCU", blankfield, {enable_intcan == 1 && intcan_available == 0},{enable_intcan == 1 && intcan_available == 0}
2470+ displayOnlyField = !"Internal CANBUS NOT AVAILABLE to MCU", blankfield, {enable_intcan == 0 && intcan_available == 0},{enable_intcan == 0 && intcan_available == 0}
2471+ field = " If Secondary Serial or Internal CANBUS is DISABLED then any input channel assigned to that external source will NOT function"
2472+
22892473 dialog = canAuxinput_alias, "", yAxis
22902474 field = "Input Alias"
2291- field = "", AUXin00Alias , {caninput_sel0}
2292- field = "", AUXin01Alias , {caninput_sel1}
2293- field = "", AUXin02Alias , {caninput_sel2}
2294- field = "", AUXin03Alias , {caninput_sel3}
2295- field = "", AUXin04Alias , {caninput_sel4}
2296- field = "", AUXin05Alias , {caninput_sel5}
2297- field = "", AUXin06Alias , {caninput_sel6}
2298- field = "", AUXin07Alias , {caninput_sel7}
2299- field = "", AUXin08Alias , {caninput_sel8}
2300- field = "", AUXin09Alias , {caninput_sel9}
2301- field = "", AUXin10Alias , {caninput_sel10}
2302- field = "", AUXin11Alias , {caninput_sel11}
2303- field = "", AUXin12Alias , {caninput_sel12}
2304- field = "", AUXin13Alias , {caninput_sel13}
2305- field = "", AUXin14Alias , {caninput_sel14}
2306- field = "", AUXin15Alias , {caninput_sel15}
2475+ field = "", AUXin00Alias , {(caninput_sel0a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel0b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2476+ field = "", AUXin01Alias , {(caninput_sel1a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel1b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2477+ field = "", AUXin02Alias , {(caninput_sel2a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel2b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2478+ field = "", AUXin03Alias , {(caninput_sel3a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel3b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2479+ field = "", AUXin04Alias , {(caninput_sel4a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel4b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2480+ field = "", AUXin05Alias , {(caninput_sel5a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel5b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2481+ field = "", AUXin06Alias , {(caninput_sel6a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel6b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2482+ field = "", AUXin07Alias , {(caninput_sel7a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel7b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2483+ field = "", AUXin08Alias , {(caninput_sel8a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel8b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2484+ field = "", AUXin09Alias , {(caninput_sel9a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel9b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2485+ field = "", AUXin10Alias , {(caninput_sel10a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel10b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2486+ field = "", AUXin11Alias , {(caninput_sel11a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel11b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2487+ field = "", AUXin12Alias , {(caninput_sel12a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel12b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2488+ field = "", AUXin13Alias , {(caninput_sel13a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel13b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2489+ field = "", AUXin14Alias , {(caninput_sel14a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel14b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2490+ field = "", AUXin15Alias , {(caninput_sel15a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel15b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
23072491
23082492 dialog = caninput_sel, ""
23092493 ;CAN inputs
23102494 field = " CAN Input Channel on/off"
2311- field = "CAN Input 0", caninput_sel0, { enable_candata_in }
2312- field = "CAN Input 1", caninput_sel1, { enable_candata_in }
2313- field = "CAN Input 2", caninput_sel2, { enable_candata_in }
2314- field = "CAN Input 3", caninput_sel3, { enable_candata_in }
2315- field = "CAN Input 4", caninput_sel4, { enable_candata_in }
2316- field = "CAN Input 5", caninput_sel5, { enable_candata_in }
2317- field = "CAN Input 6", caninput_sel6, { enable_candata_in }
2318- field = "CAN Input 7", caninput_sel7, { enable_candata_in }
2319- field = "CAN Input 8", caninput_sel8, { enable_candata_in }
2320- field = "CAN Input 9", caninput_sel9, { enable_candata_in }
2321- field = "CAN Input 10", caninput_sel10, { enable_candata_in }
2322- field = "CAN Input 11", caninput_sel11, { enable_candata_in }
2323- field = "CAN Input 12", caninput_sel12, { enable_candata_in }
2324- field = "CAN Input 13", caninput_sel13, { enable_candata_in }
2325- field = "CAN Input 14", caninput_sel14, { enable_candata_in }
2326- field = "CAN Input 15", caninput_sel15, { enable_candata_in }
2327-
2495+ field = "CAN Input 0", caninput_sel0a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2496+ field = "CAN Input 0", caninput_sel0b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2497+ field = "CAN Input 1", caninput_sel1a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2498+ field = "CAN Input 1", caninput_sel1b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2499+ field = "CAN Input 2", caninput_sel2a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2500+ field = "CAN Input 2", caninput_sel2b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2501+ field = "CAN Input 3", caninput_sel3a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2502+ field = "CAN Input 3", caninput_sel3b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2503+ field = "CAN Input 4", caninput_sel4a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2504+ field = "CAN Input 4", caninput_sel4b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2505+ field = "CAN Input 5", caninput_sel5a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2506+ field = "CAN Input 5", caninput_sel5b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2507+ field = "CAN Input 6", caninput_sel6a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2508+ field = "CAN Input 6", caninput_sel6b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2509+ field = "CAN Input 7", caninput_sel7a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2510+ field = "CAN Input 7", caninput_sel7b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2511+ field = "CAN Input 8", caninput_sel8a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2512+ field = "CAN Input 8", caninput_sel8b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2513+ field = "CAN Input 9", caninput_sel9a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2514+ field = "CAN Input 9", caninput_sel9b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2515+ field = "CAN Input 10", caninput_sel10a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2516+ field = "CAN Input 10", caninput_sel10b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2517+ field = "CAN Input 11", caninput_sel11a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2518+ field = "CAN Input 11", caninput_sel11b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2519+ field = "CAN Input 12", caninput_sel12a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2520+ field = "CAN Input 12", caninput_sel12b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2521+ field = "CAN Input 13", caninput_sel13a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2522+ field = "CAN Input 13", caninput_sel13b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2523+ field = "CAN Input 14", caninput_sel14a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2524+ field = "CAN Input 14", caninput_sel14b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2525+ field = "CAN Input 15", caninput_sel15a, {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2526+ field = "CAN Input 15", caninput_sel15b, {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2527+
23282528 dialog = caninput_parameter_group, "", yAxis
23292529 field = " Source CAN Address"
2330- field = "", caninput_source_can_address0, { caninput_sel0 == 1 && enable_candata_in }
2331- field = "", caninput_source_can_address1, { caninput_sel1 == 1 && enable_candata_in }
2332- field = "", caninput_source_can_address2, { caninput_sel2 == 1 && enable_candata_in }
2333- field = "", caninput_source_can_address3, { caninput_sel3 == 1 && enable_candata_in }
2334- field = "", caninput_source_can_address4, { caninput_sel4 == 1 && enable_candata_in }
2335- field = "", caninput_source_can_address5, { caninput_sel5 == 1 && enable_candata_in }
2336- field = "", caninput_source_can_address6, { caninput_sel6 == 1 && enable_candata_in }
2337- field = "", caninput_source_can_address7, { caninput_sel7 == 1 && enable_candata_in }
2338- field = "", caninput_source_can_address8, { caninput_sel8 == 1 && enable_candata_in }
2339- field = "", caninput_source_can_address9, { caninput_sel9 == 1 && enable_candata_in }
2340- field = "", caninput_source_can_address10, { caninput_sel10 == 1 && enable_candata_in }
2341- field = "", caninput_source_can_address11, { caninput_sel11 == 1 && enable_candata_in }
2342- field = "", caninput_source_can_address12, { caninput_sel12 == 1 && enable_candata_in }
2343- field = "", caninput_source_can_address13, { caninput_sel13 == 1 && enable_candata_in }
2344- field = "", caninput_source_can_address14, { caninput_sel14 == 1 && enable_candata_in }
2345- field = "", caninput_source_can_address15, { caninput_sel15 == 1 && enable_candata_in }
2530+ field = "", caninput_source_can_address0, { (caninput_sel0a == 1 || caninput_sel0b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2531+ field = "", caninput_source_can_address1, { (caninput_sel1a == 1 || caninput_sel1b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2532+ field = "", caninput_source_can_address2, { (caninput_sel2a == 1 || caninput_sel2b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2533+ field = "", caninput_source_can_address3, { (caninput_sel3a == 1 || caninput_sel3b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2534+ field = "", caninput_source_can_address4, { (caninput_sel4a == 1 || caninput_sel4b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2535+ field = "", caninput_source_can_address5, { (caninput_sel5a == 1 || caninput_sel5b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2536+ field = "", caninput_source_can_address6, { (caninput_sel6a == 1 || caninput_sel6b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2537+ field = "", caninput_source_can_address7, { (caninput_sel7a == 1 || caninput_sel7b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2538+ field = "", caninput_source_can_address8, { (caninput_sel8a == 1 || caninput_sel8b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2539+ field = "", caninput_source_can_address9, { (caninput_sel9a == 1 || caninput_sel9b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2540+ field = "", caninput_source_can_address10, { (caninput_sel10a == 1 || caninput_sel10b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2541+ field = "", caninput_source_can_address11, { (caninput_sel11a == 1 || caninput_sel11b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2542+ field = "", caninput_source_can_address12, { (caninput_sel12a == 1 || caninput_sel12b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2543+ field = "", caninput_source_can_address13, { (caninput_sel13a == 1 || caninput_sel13b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2544+ field = "", caninput_source_can_address14, { (caninput_sel14a == 1 || caninput_sel14b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2545+ field = "", caninput_source_can_address15, { (caninput_sel15a == 1 || caninput_sel15b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
23462546
23472547 dialog = caninput_parameter_start_byte, "", yAxis
23482548 field = " source data start byte"
2349- field = "", caninput_source_start_byte0, { caninput_sel0 == 1 && enable_candata_in }
2350- field = "", caninput_source_start_byte1, { caninput_sel1 == 1 && enable_candata_in }
2351- field = "", caninput_source_start_byte2, { caninput_sel2 == 1 && enable_candata_in }
2352- field = "", caninput_source_start_byte3, { caninput_sel3 == 1 && enable_candata_in }
2353- field = "", caninput_source_start_byte4, { caninput_sel4 == 1 && enable_candata_in }
2354- field = "", caninput_source_start_byte5, { caninput_sel5 == 1 && enable_candata_in }
2355- field = "", caninput_source_start_byte6, { caninput_sel6 == 1 && enable_candata_in }
2356- field = "", caninput_source_start_byte7, { caninput_sel7 == 1 && enable_candata_in }
2357- field = "", caninput_source_start_byte8, { caninput_sel8 == 1 && enable_candata_in }
2358- field = "", caninput_source_start_byte9, { caninput_sel9 == 1 && enable_candata_in }
2359- field = "", caninput_source_start_byte10, { caninput_sel10 == 1 && enable_candata_in }
2360- field = "", caninput_source_start_byte11, { caninput_sel11 == 1 && enable_candata_in }
2361- field = "", caninput_source_start_byte12, { caninput_sel12 == 1 && enable_candata_in }
2362- field = "", caninput_source_start_byte13, { caninput_sel13 == 1 && enable_candata_in }
2363- field = "", caninput_source_start_byte14, { caninput_sel14 == 1 && enable_candata_in }
2364- field = "", caninput_source_start_byte15, { caninput_sel15 == 1 && enable_candata_in }
2549+ field = "", caninput_source_start_byte0, { (caninput_sel0a == 1 || caninput_sel0b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2550+ field = "", caninput_source_start_byte1, { (caninput_sel1a == 1 || caninput_sel1b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2551+ field = "", caninput_source_start_byte2, { (caninput_sel2a == 1 || caninput_sel2b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2552+ field = "", caninput_source_start_byte3, { (caninput_sel3a == 1 || caninput_sel3b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2553+ field = "", caninput_source_start_byte4, { (caninput_sel4a == 1 || caninput_sel4b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2554+ field = "", caninput_source_start_byte5, { (caninput_sel5a == 1 || caninput_sel5b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2555+ field = "", caninput_source_start_byte6, { (caninput_sel6a == 1 || caninput_sel6b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2556+ field = "", caninput_source_start_byte7, { (caninput_sel7a == 1 || caninput_sel7b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2557+ field = "", caninput_source_start_byte8, { (caninput_sel8a == 1 || caninput_sel8b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2558+ field = "", caninput_source_start_byte9, { (caninput_sel9a == 1 || caninput_sel9b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2559+ field = "", caninput_source_start_byte10, { (caninput_sel10a == 1 || caninput_sel10b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2560+ field = "", caninput_source_start_byte11, { (caninput_sel11a == 1 || caninput_sel11b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2561+ field = "", caninput_source_start_byte12, { (caninput_sel12a == 1 || caninput_sel12b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2562+ field = "", caninput_source_start_byte13, { (caninput_sel13a == 1 || caninput_sel13b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2563+ field = "", caninput_source_start_byte14, { (caninput_sel14a == 1 || caninput_sel14b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2564+ field = "", caninput_source_start_byte15, { (caninput_sel15a == 1 || caninput_sel15b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
23652565
23662566 dialog = caninput_parameter_num_byte, "", yAxis
23672567 field = "Input Parameter Number of Bytes"
2368- field = "", caninput_source_num_bytes0, { caninput_sel0 == 1 && enable_candata_in }
2369- field = "", caninput_source_num_bytes1, { caninput_sel1 == 1 && enable_candata_in }
2370- field = "", caninput_source_num_bytes2, { caninput_sel3 == 1 && enable_candata_in }
2371- field = "", caninput_source_num_bytes3, { caninput_sel3 == 1 && enable_candata_in }
2372- field = "", caninput_source_num_bytes4, { caninput_sel4 == 1 && enable_candata_in }
2373- field = "", caninput_source_num_bytes5, { caninput_sel5 == 1 && enable_candata_in }
2374- field = "", caninput_source_num_bytes6, { caninput_sel6 == 1 && enable_candata_in }
2375- field = "", caninput_source_num_bytes7, { caninput_sel7 == 1 && enable_candata_in }
2376- field = "", caninput_source_num_bytes8, { caninput_sel8 == 1 && enable_candata_in }
2377- field = "", caninput_source_num_bytes9, { caninput_sel9 == 1 && enable_candata_in }
2378- field = "", caninput_source_num_bytes10, { caninput_sel10 == 1 && enable_candata_in }
2379- field = "", caninput_source_num_bytes11, { caninput_sel11 == 1 && enable_candata_in }
2380- field = "", caninput_source_num_bytes12, { caninput_sel12 == 1 && enable_candata_in }
2381- field = "", caninput_source_num_bytes13, { caninput_sel13 == 1 && enable_candata_in }
2382- field = "", caninput_source_num_bytes14, { caninput_sel14 == 1 && enable_candata_in }
2383- field = "", caninput_source_num_bytes15, { caninput_sel15 == 1 && enable_candata_in }
2568+ field = "", caninput_source_num_bytes0, { (caninput_sel0a == 1 || caninput_sel0b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2569+ field = "", caninput_source_num_bytes1, { (caninput_sel1a == 1 || caninput_sel1b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2570+ field = "", caninput_source_num_bytes2, { (caninput_sel2a == 1 || caninput_sel2b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2571+ field = "", caninput_source_num_bytes3, { (caninput_sel3a == 1 || caninput_sel3b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2572+ field = "", caninput_source_num_bytes4, { (caninput_sel4a == 1 || caninput_sel4b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2573+ field = "", caninput_source_num_bytes5, { (caninput_sel5a == 1 || caninput_sel5b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2574+ field = "", caninput_source_num_bytes6, { (caninput_sel6a == 1 || caninput_sel6b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2575+ field = "", caninput_source_num_bytes7, { (caninput_sel7a == 1 || caninput_sel7b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2576+ field = "", caninput_source_num_bytes8, { (caninput_sel8a == 1 || caninput_sel8b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2577+ field = "", caninput_source_num_bytes9, { (caninput_sel9a == 1 || caninput_sel9b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2578+ field = "", caninput_source_num_bytes10, { (caninput_sel10a == 1 || caninput_sel10b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2579+ field = "", caninput_source_num_bytes11, { (caninput_sel11a == 1 || caninput_sel11b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2580+ field = "", caninput_source_num_bytes12, { (caninput_sel12a == 1 || caninput_sel12b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2581+ field = "", caninput_source_num_bytes13, { (caninput_sel13a == 1 || caninput_sel13b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2582+ field = "", caninput_source_num_bytes14, { (caninput_sel14a == 1 || caninput_sel14b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
2583+ field = "", caninput_source_num_bytes15, { (caninput_sel15a == 1 || caninput_sel15b == 1) && (enable_secondarySerial || (enable_intcan && intcan_available)) }
23842584
2585+ dialog = caninput_serial_can, "", yAxis
2586+ field = "Serial/CAN"
2587+ field = "", caninput_sel0extsourcea, {(caninput_sel0a == 1 || caninput_sel0b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2588+ field = "", caninput_sel0extsourceb, {(caninput_sel0a == 1 || caninput_sel0b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2589+ field = "", caninput_sel0extsourcec, {(caninput_sel0a == 1 || caninput_sel0b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2590+ field = "", caninput_sel1extsourcea, {(caninput_sel1a == 1 || caninput_sel1b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2591+ field = "", caninput_sel1extsourceb, {(caninput_sel1a == 1 || caninput_sel1b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2592+ field = "", caninput_sel1extsourcec, {(caninput_sel1a == 1 || caninput_sel1b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2593+ field = "", caninput_sel2extsourcea, {(caninput_sel2a == 1 || caninput_sel2b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2594+ field = "", caninput_sel2extsourceb, {(caninput_sel2a == 1 || caninput_sel2b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2595+ field = "", caninput_sel2extsourcec, {(caninput_sel2a == 1 || caninput_sel2b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2596+ field = "", caninput_sel3extsourcea, {(caninput_sel3a == 1 || caninput_sel3b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2597+ field = "", caninput_sel3extsourceb, {(caninput_sel3a == 1 || caninput_sel3b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2598+ field = "", caninput_sel3extsourcec, {(caninput_sel3a == 1 || caninput_sel3b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2599+ field = "", caninput_sel4extsourcea, {(caninput_sel4a == 1 || caninput_sel4b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2600+ field = "", caninput_sel4extsourceb, {(caninput_sel4a == 1 || caninput_sel4b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2601+ field = "", caninput_sel4extsourcec, {(caninput_sel4a == 1 || caninput_sel4b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2602+ field = "", caninput_sel5extsourcea, {(caninput_sel5a == 1 || caninput_sel5b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2603+ field = "", caninput_sel5extsourceb, {(caninput_sel5a == 1 || caninput_sel5b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2604+ field = "", caninput_sel5extsourcec, {(caninput_sel5a == 1 || caninput_sel5b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2605+ field = "", caninput_sel6extsourcea, {(caninput_sel6a == 1 || caninput_sel6b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2606+ field = "", caninput_sel6extsourceb, {(caninput_sel6a == 1 || caninput_sel6b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2607+ field = "", caninput_sel6extsourcec, {(caninput_sel6a == 1 || caninput_sel6b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2608+ field = "", caninput_sel7extsourcea, {(caninput_sel7a == 1 || caninput_sel7b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2609+ field = "", caninput_sel7extsourceb, {(caninput_sel7a == 1 || caninput_sel7b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2610+ field = "", caninput_sel7extsourcec, {(caninput_sel7a == 1 || caninput_sel7b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2611+ field = "", caninput_sel8extsourcea, {(caninput_sel8a == 1 || caninput_sel8b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2612+ field = "", caninput_sel8extsourceb, {(caninput_sel8a == 1 || caninput_sel8b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2613+ field = "", caninput_sel8extsourcec, {(caninput_sel8a == 1 || caninput_sel8b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2614+ field = "", caninput_sel9extsourcea, {(caninput_sel9a == 1 || caninput_sel9b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2615+ field = "", caninput_sel9extsourceb, {(caninput_sel9a == 1 || caninput_sel9b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2616+ field = "", caninput_sel9extsourcec, {(caninput_sel9a == 1 || caninput_sel9b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2617+ field = "", caninput_sel10extsourcea, {(caninput_sel10a == 1 || caninput_sel10b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2618+ field = "", caninput_sel10extsourceb, {(caninput_sel10a == 1 || caninput_sel10b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2619+ field = "", caninput_sel10extsourcec, {(caninput_sel10a == 1 || caninput_sel10b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2620+ field = "", caninput_sel11extsourcea, {(caninput_sel11a == 1 || caninput_sel11b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}
2621+ field = "", caninput_sel11extsourceb, {(caninput_sel11a == 1 || caninput_sel11b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2622+ field = "", caninput_sel11extsourcec, {(caninput_sel11a == 1 || caninput_sel11b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2623+ field = "", caninput_sel12extsourcea, {(caninput_sel12a == 1 || caninput_sel12b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}}
2624+ field = "", caninput_sel12extsourceb, {(caninput_sel12a == 1 || caninput_sel12b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2625+ field = "", caninput_sel12extsourcec, {(caninput_sel12a == 1 || caninput_sel12b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2626+ field = "", caninput_sel13extsourcea, {(caninput_sel13a == 1 || caninput_sel13b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}}
2627+ field = "", caninput_sel13extsourceb, {(caninput_sel13a == 1 || caninput_sel13b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2628+ field = "", caninput_sel13extsourcec, {(caninput_sel13a == 1 || caninput_sel13b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2629+ field = "", caninput_sel14extsourcea, {(caninput_sel14a == 1 || caninput_sel14b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}}
2630+ field = "", caninput_sel14extsourceb, {(caninput_sel14a == 1 || caninput_sel14b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2631+ field = "", caninput_sel14extsourcec, {(caninput_sel14a == 1 || caninput_sel14b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2632+ field = "", caninput_sel15extsourcea, {(caninput_sel15a == 1 || caninput_sel15b == 1) }, {enable_secondarySerial && (!enable_intcan || (enable_intcan && !intcan_available))}}
2633+ field = "", caninput_sel15extsourceb, {(caninput_sel15a == 1 || caninput_sel15b == 1) }, {enable_secondarySerial && (enable_intcan && intcan_available)}
2634+ field = "", caninput_sel15extsourcec, {(caninput_sel15a == 1 || caninput_sel15b == 1) }, {!enable_secondarySerial && (enable_intcan && intcan_available)}
2635+
23852636 dialog = caninconfig_blank1,""
23862637 field = ""
23872638
@@ -2389,116 +2640,118 @@
23892640 panel = canAuxinput_alias
23902641 panel = caninconfig_blank1
23912642 panel = caninput_sel
2643+ panel = caninconfig_blank1
2644+ panel = caninput_serial_can
23922645 panel = caninconfig_blank1
23932646 panel = caninput_parameter_group
23942647 panel = caninconfig_blank1
23952648 panel = caninput_parameter_start_byte
23962649 panel = caninconfig_blank1
2397- panel = caninput_parameter_num_byte
2650+ panel = caninput_parameter_num_byte
23982651
2399- dialog = Canin_config2, "External Data Input"
2400- field = "Enable External data input", enable_candata_in
2652+ ;dialog = Canin_config2, "External Data Input"
2653+ ; field = "Enable External data input", enable_intcandata_in
24012654
2402- dialog = Canin_config, "", border
2655+ dialog = Canin_config, "",yAxis
24032656 topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface#Read_external_analog_data"
2404- panel = Canin_config2, North
2405- panel = Canin_config1, South
2657+ panel = Auxin_north
2658+ panel = Canin_config1
24062659
24072660 dialog = canAuxoutput_alias, "", yAxis
24082661 field = "Input Alias"
2409- field = "", AUXin00Alias , {caninput_sel0}
2410- field = "", AUXin01Alias , {caninput_sel1}
2411- field = "", AUXin02Alias , {caninput_sel2}
2412- field = "", AUXin03Alias , {caninput_sel3}
2413- field = "", AUXin04Alias , {caninput_sel4}
2414- field = "", AUXin05Alias , {caninput_sel5}
2415- field = "", AUXin06Alias , {caninput_sel6}
2416- field = "", AUXin07Alias , {caninput_sel7}
2417- field = "", AUXin08Alias , {caninput_sel8}
2418- field = "", AUXin09Alias , {caninput_sel9}
2419- field = "", AUXin10Alias , {caninput_sel10}
2420- field = "", AUXin11Alias , {caninput_sel11}
2421- field = "", AUXin12Alias , {caninput_sel12}
2422- field = "", AUXin13Alias , {caninput_sel13}
2423- field = "", AUXin14Alias , {caninput_sel14}
2424- field = "", AUXin15Alias , {caninput_sel15}
2662+ field = "", AUXin00Alias , {canoutput_sel0}
2663+ field = "", AUXin01Alias , {canoutput_sel1}
2664+ field = "", AUXin02Alias , {canoutput_sel2}
2665+ field = "", AUXin03Alias , {canoutput_sel3}
2666+ field = "", AUXin04Alias , {canoutput_sel4}
2667+ field = "", AUXin05Alias , {canoutput_sel5}
2668+ field = "", AUXin06Alias , {canoutput_sel6}
2669+ field = "", AUXin07Alias , {canoutput_sel7}
2670+ ;field = "", AUXin08Alias , {canoutput_sel8}
2671+ ;field = "", AUXin09Alias , {canoutput_sel9}
2672+ ;field = "", AUXin10Alias , {canoutput_sel10}
2673+ ;field = "", AUXin11Alias , {canoutput_sel11}
2674+ ;field = "", AUXin12Alias , {canoutput_sel12}
2675+ ;field = "", AUXin13Alias , {canoutput_sel13}
2676+ ;field = "", AUXin14Alias , {canoutput_sel14}
2677+ ;field = "", AUXin15Alias , {canoutput_sel15}
24252678
24262679 dialog = canoutput_sel, "", yAxis
24272680 ;CAN outputs
24282681 field = "CAN Output Channel on/off"
2429- field = "CAN Output 0", canoutput_sel0, { enable_candata_out}
2430- field = "CAN Output 1", canoutput_sel1, { enable_candata_out }
2431- field = "CAN Output 2", canoutput_sel2, { enable_candata_out }
2432- field = "CAN Output 3", canoutput_sel3, { enable_candata_out }
2433- field = "CAN Output 4", canoutput_sel4, { enable_candata_out }
2434- field = "CAN Output 5", canoutput_sel5, { enable_candata_out }
2435- field = "CAN Output 6", canoutput_sel6, { enable_candata_out }
2436- field = "CAN Output 7", canoutput_sel7, { enable_candata_out }
2437- ; field = "CAN Output 8", canoutput_sel8, { enable_candata_out}
2438- ; field = "CAN Output 9", canoutput_sel9, { enable_candata_out }
2439- ; field = "CAN Output 10", canoutput_sel10, { enable_candata_out }
2440- ; field = "CAN Output 11", canoutput_sel11, { enable_candata_out }
2441- ; field = "CAN Output 12", canoutput_sel12, { enable_candata_out }
2442- ; field = "CAN Output 13", canoutput_sel13, { enable_candata_out }
2443- ; field = "CAN Output 14", canoutput_sel14, { enable_candata_out }
2444- ; field = "CAN Output 15", canoutput_sel15, { enable_candata_out }
2682+ field = "CAN Output 0", canoutput_sel0, { enable_intcandata_out}
2683+ field = "CAN Output 1", canoutput_sel1, { enable_intcandata_out }
2684+ field = "CAN Output 2", canoutput_sel2, { enable_intcandata_out }
2685+ field = "CAN Output 3", canoutput_sel3, { enable_intcandata_out }
2686+ field = "CAN Output 4", canoutput_sel4, { enable_intcandata_out }
2687+ field = "CAN Output 5", canoutput_sel5, { enable_intcandata_out }
2688+ field = "CAN Output 6", canoutput_sel6, { enable_intcandata_out }
2689+ field = "CAN Output 7", canoutput_sel7, { enable_intcandata_out }
2690+ ; field = "CAN Output 8", canoutput_sel8, { enable_intcandata_out}
2691+ ; field = "CAN Output 9", canoutput_sel9, { enable_intcandata_out }
2692+ ; field = "CAN Output 10", canoutput_sel10, { enable_intcandata_out }
2693+ ; field = "CAN Output 11", canoutput_sel11, { enable_intcandata_out }
2694+ ; field = "CAN Output 12", canoutput_sel12, { enable_intcandata_out }
2695+ ; field = "CAN Output 13", canoutput_sel13, { enable_intcandata_out }
2696+ ; field = "CAN Output 14", canoutput_sel14, { enable_intcandata_out }
2697+ ; field = "CAN Output 15", canoutput_sel15, { enable_intcandata_out }
24452698
24462699 dialog = canoutput_parameter_group, "", yAxis
24472700 field = "Output Parameter Group"
2448- field = "", canoutput_param_group[0], { canoutput_sel0 && enable_candata_out }
2449- field = "", canoutput_param_group[1], { canoutput_sel1 && enable_candata_out }
2450- field = "", canoutput_param_group[2], { canoutput_sel3 && enable_candata_out }
2451- field = "", canoutput_param_group[3], { canoutput_sel3 && enable_candata_out }
2452- field = "", canoutput_param_group[4], { canoutput_sel4 && enable_candata_out }
2453- field = "", canoutput_param_group[5], { canoutput_sel5 && enable_candata_out }
2454- field = "", canoutput_param_group[6], { canoutput_sel6 && enable_candata_out }
2455- field = "", canoutput_param_group[7], { canoutput_sel7 && enable_candata_out }
2456- ; field = "", canoutput_param_group[8], { canoutput_sel9 && enable_candata_out }
2457- ; field = "", canoutput_param_group[9], { canoutput_sel10 && enable_candata_out }
2458- ; field = "", canoutput_param_group[10], { canoutput_sel1 && enable_candata_out }
2459- ; field = "", canoutput_param_group[11], { canoutput_sel2 && enable_candata_out }
2460- ; field = "", canoutput_param_group[12], { canoutput_sel3 && enable_candata_out }
2461- ; field = "", canoutput_param_group[13], { canoutput_sel4 && enable_candata_out }
2462- ; field = "", canoutput_param_group[14], { canoutput_sel5 && enable_candata_out }
2463- ; field = "", canoutput_param_group[15], { canoutput_sel6 && enable_candata_out }
2701+ field = "", canoutput_param_group[0], { canoutput_sel0 && enable_intcandata_out }
2702+ field = "", canoutput_param_group[1], { canoutput_sel1 && enable_intcandata_out }
2703+ field = "", canoutput_param_group[2], { canoutput_sel3 && enable_intcandata_out }
2704+ field = "", canoutput_param_group[3], { canoutput_sel3 && enable_intcandata_out }
2705+ field = "", canoutput_param_group[4], { canoutput_sel4 && enable_intcandata_out }
2706+ field = "", canoutput_param_group[5], { canoutput_sel5 && enable_intcandata_out }
2707+ field = "", canoutput_param_group[6], { canoutput_sel6 && enable_intcandata_out }
2708+ field = "", canoutput_param_group[7], { canoutput_sel7 && enable_intcandata_out }
2709+ ; field = "", canoutput_param_group[8], { canoutput_sel9 && enable_intcandata_out }
2710+ ; field = "", canoutput_param_group[9], { canoutput_sel10 && enable_intcandata_out }
2711+ ; field = "", canoutput_param_group[10], { canoutput_sel1 && enable_intcandata_out }
2712+ ; field = "", canoutput_param_group[11], { canoutput_sel2 && enable_intcandata_out }
2713+ ; field = "", canoutput_param_group[12], { canoutput_sel3 && enable_intcandata_out }
2714+ ; field = "", canoutput_param_group[13], { canoutput_sel4 && enable_intcandata_out }
2715+ ; field = "", canoutput_param_group[14], { canoutput_sel5 && enable_intcandata_out }
2716+ ; field = "", canoutput_param_group[15], { canoutput_sel6 && enable_intcandata_out }
24642717
24652718 dialog = canoutput_parameter_start_byte, "", yAxis
24662719 field = "Output Parameter Start Byte"
2467- field = "", canoutput_param_start_byte0, { canoutput_sel0 && enable_candata_out }
2468- field = "", canoutput_param_start_byte1, { canoutput_sel1 && enable_candata_out }
2469- field = "", canoutput_param_start_byte2, { canoutput_sel2 && enable_candata_out }
2470- field = "", canoutput_param_start_byte3, { canoutput_sel3 && enable_candata_out }
2471- field = "", canoutput_param_start_byte4, { canoutput_sel4 && enable_candata_out }
2472- field = "", canoutput_param_start_byte5, { canoutput_sel5 && enable_candata_out }
2473- field = "", canoutput_param_start_byte6, { canoutput_sel6 && enable_candata_out }
2474- field = "", canoutput_param_start_byte7, { canoutput_sel7 && enable_candata_out }
2475- ; field = "", canoutput_param_start_byte8, { canoutput_sel8 && enable_candata_out }
2476- ; field = "", canoutput_param_start_byte9, { canoutput_sel9 && enable_candata_out }
2477- ; field = "", canoutput_param_start_byte10, { canoutput_sel10 && enable_candata_out }
2478- ; field = "", canoutput_param_start_byte11, { canoutput_sel11 && enable_candata_out }
2479- ; field = "", canoutput_param_start_byte12, { canoutput_sel12 && enable_candata_out }
2480- ; field = "", canoutput_param_start_byte13, { canoutput_sel13 && enable_candata_out }
2481-; field = "", canoutput_param_start_byte14, { canoutput_sel14 && enable_candata_out }
2482- ; field = "", canoutput_param_start_byte15, { canoutput_sel15 && enable_candata_out }
2720+ field = "", canoutput_param_start_byte0, { canoutput_sel0 && enable_intcandata_out }
2721+ field = "", canoutput_param_start_byte1, { canoutput_sel1 && enable_intcandata_out }
2722+ field = "", canoutput_param_start_byte2, { canoutput_sel2 && enable_intcandata_out }
2723+ field = "", canoutput_param_start_byte3, { canoutput_sel3 && enable_intcandata_out }
2724+ field = "", canoutput_param_start_byte4, { canoutput_sel4 && enable_intcandata_out }
2725+ field = "", canoutput_param_start_byte5, { canoutput_sel5 && enable_intcandata_out }
2726+ field = "", canoutput_param_start_byte6, { canoutput_sel6 && enable_intcandata_out }
2727+ field = "", canoutput_param_start_byte7, { canoutput_sel7 && enable_intcandata_out }
2728+ ; field = "", canoutput_param_start_byte8, { canoutput_sel8 && enable_intcandata_out }
2729+ ; field = "", canoutput_param_start_byte9, { canoutput_sel9 && enable_intcandata_out }
2730+ ; field = "", canoutput_param_start_byte10, { canoutput_sel10 && enable_intcandata_out }
2731+ ; field = "", canoutput_param_start_byte11, { canoutput_sel11 && enable_intcandata_out }
2732+ ; field = "", canoutput_param_start_byte12, { canoutput_sel12 && enable_intcandata_out }
2733+ ; field = "", canoutput_param_start_byte13, { canoutput_sel13 && enable_intcandata_out }
2734+; field = "", canoutput_param_start_byte14, { canoutput_sel14 && enable_intcandata_out }
2735+ ; field = "", canoutput_param_start_byte15, { canoutput_sel15 && enable_intcandata_out }
24832736
24842737 dialog = canoutput_parameter_num_byte, "", yAxis
24852738 field = "Output Parameter Number of Bytes"
2486- field = "", canoutput_param_num_bytes0, { canoutput_sel0 && enable_candata_out }
2487- field = "", canoutput_param_num_bytes1, { canoutput_sel1 && enable_candata_out }
2488- field = "", canoutput_param_num_bytes2, { canoutput_sel2 && enable_candata_out }
2489- field = "", canoutput_param_num_bytes3, { canoutput_sel3 && enable_candata_out }
2490- field = "", canoutput_param_num_bytes4, { canoutput_sel4 && enable_candata_out }
2491- field = "", canoutput_param_num_bytes5, { canoutput_sel5 && enable_candata_out }
2492- field = "", canoutput_param_num_bytes6, { canoutput_sel6 && enable_candata_out }
2493- field = "", canoutput_param_num_bytes7, { canoutput_sel7 && enable_candata_out }
2494- ; field = "", canoutput_param_num_bytes8, { canoutput_sel8 && enable_candata_out }
2495- ; field = "", canoutput_param_num_bytes9, { canoutput_sel9 && enable_candata_out }
2496- ; field = "", canoutput_param_num_bytes10, { canoutput_sel10 && enable_candata_out }
2497- ; field = "", canoutput_param_num_bytes11, { canoutput_sel11 && enable_candata_out }
2498- ; field = "", canoutput_param_num_bytes12, { canoutput_sel12 && enable_candata_out }
2499- ; field = "", canoutput_param_num_bytes13, { canoutput_sel13 && enable_candata_out }
2500-; field = "", canoutput_param_num_bytes14, { canoutput_sel14 && enable_candata_out }
2501- ; field = "", canoutput_param_num_bytes15, { canoutput_sel15 && enable_candata_out }
2739+ field = "", canoutput_param_num_bytes0, { canoutput_sel0 && enable_intcandata_out }
2740+ field = "", canoutput_param_num_bytes1, { canoutput_sel1 && enable_intcandata_out }
2741+ field = "", canoutput_param_num_bytes2, { canoutput_sel2 && enable_intcandata_out }
2742+ field = "", canoutput_param_num_bytes3, { canoutput_sel3 && enable_intcandata_out }
2743+ field = "", canoutput_param_num_bytes4, { canoutput_sel4 && enable_intcandata_out }
2744+ field = "", canoutput_param_num_bytes5, { canoutput_sel5 && enable_intcandata_out }
2745+ field = "", canoutput_param_num_bytes6, { canoutput_sel6 && enable_intcandata_out }
2746+ field = "", canoutput_param_num_bytes7, { canoutput_sel7 && enable_intcandata_out }
2747+ ; field = "", canoutput_param_num_bytes8, { canoutput_sel8 && enable_intcandata_out }
2748+ ; field = "", canoutput_param_num_bytes9, { canoutput_sel9 && enable_intcandata_out }
2749+ ; field = "", canoutput_param_num_bytes10, { canoutput_sel10 && enable_intcandata_out }
2750+ ; field = "", canoutput_param_num_bytes11, { canoutput_sel11 && enable_intcandata_out }
2751+ ; field = "", canoutput_param_num_bytes12, { canoutput_sel12 && enable_intcandata_out }
2752+ ; field = "", canoutput_param_num_bytes13, { canoutput_sel13 && enable_intcandata_out }
2753+; field = "", canoutput_param_num_bytes14, { canoutput_sel14 && enable_intcandata_out }
2754+ ; field = "", canoutput_param_num_bytes15, { canoutput_sel15 && enable_intcandata_out }
25022755
25032756 dialog = canoutconfig_blank1,""
25042757 field = ""
@@ -2515,26 +2768,33 @@
25152768 panel = canoutput_parameter_num_byte
25162769
25172770 dialog = Canout_config2, "CAN Data Out"
2518- field = "Enable CanBus data Output", enable_candata_out
2771+ field = "Enable CanBus data Output", enable_intcandata_out
25192772
2520- dialog = Canout_config, "", border
2773+ dialog = Canout_config, "", yAxis
25212774 topicHelp = ""
2522- panel = Canout_config2, North
2523- panel = Canout_config1, South
2775+ panel = Canout_config2
2776+ panel = Canout_config1
25242777
2525- dialog = can_serial3IO, "CanBus/Serial3 IO interface"
2778+ dialog = can_serial3IO, "CanBus/Secondary Serial IO interface"
25262779 topicHelp = "http://speeduino.com/wiki/index.php/Secondary_Serial_IO_interface"
2527- field = "Enable CanBus/Second Serial", enable_canbus
2780+ field = "Enable Second Serial", enable_secondarySerial
2781+ field = "Enable Internal Canbus", enable_intcan
25282782 ; field = "Speeduino TsCanId", speeduino_tsCanId
2529- field = "True Canbus Address", true_address {enable_canbus}
2530- field = "NOTE! Realtime Datat Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion"
2531- field = "Realtime Data Base Can Address", realtime_base_address {enable_canbus}
2783+ field = "True Canbus Address", true_address {enable_secondarySerial||enable_intcan}
2784+ field = "NOTE! Realtime Data Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion"
2785+ field = "Realtime Data Base Can Address", realtime_base_address {enable_secondarySerial||enable_intcan}
25322786 ; field = "Speeduino OBD address", obd_address
25332787
2534- dialog = serial3IO, "Serial3 IO interface"
2788+ dialog = serial3IO, "Secondary Serial IO interface"
25352789 topicHelp = "http://speeduino.com/wiki/index.php/Serial3_IO_interface"
2536- field = "Enable Second Serial", enable_canbus
2537-
2790+ field = "Enable Second Serial", enable_secondarySerial
2791+ field = "Enable Internal Canbus", enable_intcan {intcan_available}
2792+ ; field = "Speeduino TsCanId", speeduino_tsCanId
2793+ field = "True Canbus Address", true_address {enable_secondarySerial||enable_intcan}
2794+ field = "NOTE! Realtime Data Base Address MUST be at least 0x16 GREATER than the True Address as they are reserved for future expansion"
2795+ field = "Realtime Data Base Can Address", realtime_base_address {enable_secondarySerial||enable_intcan}
2796+ ; field = "Speeduino OBD address", obd_address
2797+
25382798 dialog = reset_control, "Reset Control"
25392799 ; Control type options for custom firmware
25402800 field = "Control Type", resetControl
@@ -2541,115 +2801,166 @@
25412801 field = "Control Pin", resetControlPin
25422802
25432803 dialog = Auxinput_pin_selection, "", yAxis
2544- field = " PIN"
2545- displayOnlyField = "Off", blankfield, {caninput_sel0 == 0},{caninput_sel0 == 0}
2546- field = "", caninput_source_can_address0, { caninput_sel0 == 1 && enable_candata_in }, {caninput_sel0 == 1}
2547- field = "", Auxin0pina , {caninput_sel0 == 2 || caninput_sel0 == 3 }, {caninput_sel0 == 2}
2548- field = "", Auxin0pinb , {caninput_sel0 == 2 || caninput_sel0 == 3 }, {caninput_sel0 == 3}
2549- displayOnlyField = "Off", blankfield, {caninput_sel1 == 0},{caninput_sel1 == 0}
2550- field = "", caninput_source_can_address1, { caninput_sel1 == 1 && enable_candata_in }, {caninput_sel1 == 1}
2551- field = "", Auxin1pina , {caninput_sel1 == 2 || caninput_sel1 == 3}, {caninput_sel1 == 2}
2552- field = "", Auxin1pinb , {caninput_sel1 == 2 || caninput_sel1 == 3}, {caninput_sel1 == 3}
2553- displayOnlyField = "Off", blankfield, {caninput_sel2 == 0},{caninput_sel2 == 0}
2554- field = "", caninput_source_can_address2, { caninput_sel2 == 1 && enable_candata_in }, {caninput_sel2 == 1}
2555- field = "", Auxin2pina , {caninput_sel2 == 2 || caninput_sel2 == 3}, {caninput_sel2 == 2}
2556- field = "", Auxin2pinb , {caninput_sel2 == 2 || caninput_sel2 == 3}, {caninput_sel2 == 3}
2557- displayOnlyField = "Off", blankfield, {caninput_sel3 == 0},{caninput_sel3 == 0}
2558- field = "", caninput_source_can_address3, { caninput_sel3 == 1 && enable_candata_in }, {caninput_sel3 == 1}
2559- field = "", Auxin3pina , {caninput_sel3 == 2 || caninput_sel3 == 3}, {caninput_sel3 == 2}
2560- field = "", Auxin3pinb , {caninput_sel3 == 2 || caninput_sel3 == 3}, {caninput_sel3 == 3}
2561- displayOnlyField = "Off", blankfield, {caninput_sel4 == 0},{caninput_sel4 == 0}
2562- field = "", caninput_source_can_address4, { caninput_sel4 == 1 && enable_candata_in }, {caninput_sel4 == 1}
2563- field = "", Auxin4pina , {caninput_sel4 == 2 || caninput_sel4 == 3}, {caninput_sel4 == 2}
2564- field = "", Auxin4pinb , {caninput_sel4 == 2 || caninput_sel4 == 3}, {caninput_sel4 == 3}
2565- displayOnlyField = "Off", blankfield, {caninput_sel5 == 0},{caninput_sel5 == 0}
2566- field = "", caninput_source_can_address5, { caninput_sel5 == 1 && enable_candata_in }, {caninput_sel5 == 1}
2567- field = "", Auxin5pina , {caninput_sel5 == 2 || caninput_sel5 == 3}, {caninput_sel5 == 2}
2568- field = "", Auxin5pinb , {caninput_sel5 == 2 || caninput_sel5 == 3}, {caninput_sel5 == 3}
2569- displayOnlyField = "Off", blankfield, {caninput_sel6 == 0},{caninput_sel6 == 0}
2570- field = "", caninput_source_can_address6, { caninput_sel6 == 1 && enable_candata_in }, {caninput_sel6 == 1}
2571- field = "", Auxin6pina , {caninput_sel6 == 2 || caninput_sel6 == 3}, {caninput_sel6 == 2}
2572- field = "", Auxin6pinb , {caninput_sel6 == 2 || caninput_sel6 == 3}, {caninput_sel6 == 3}
2573- displayOnlyField = "Off", blankfield, {caninput_sel7 == 0},{caninput_sel7 == 0}
2574- field = "", caninput_source_can_address7, { caninput_sel7 == 1 && enable_candata_in }, {caninput_sel7 == 1}
2575- field = "", Auxin7pina , {caninput_sel7 == 2 || caninput_sel7 == 3}, {caninput_sel7 == 2}
2576- field = "", Auxin7pinb , {caninput_sel7 == 2 || caninput_sel7 == 3}, {caninput_sel7 == 3}
2577- displayOnlyField = "Off", blankfield, {caninput_sel8 == 8},{caninput_sel8 == 0}
2578- field = "", caninput_source_can_address8, { caninput_sel8 == 1 && enable_candata_in }, {caninput_sel8 == 1}
2579- field = "", Auxin8pina , {caninput_sel8 == 2 || caninput_sel8 == 3}, {caninput_sel8 == 2}
2580- field = "", Auxin8pinb , {caninput_sel8 == 2 || caninput_sel8 == 3}, {caninput_sel8 == 3}
2581- displayOnlyField = "Off", blankfield, {caninput_sel9 == 0},{caninput_sel9 == 0}
2582- field = "", caninput_source_can_address9, { caninput_sel9 == 1 && enable_candata_in }, {caninput_sel9 == 1}
2583- field = "", Auxin9pina , {caninput_sel9 == 2 || caninput_sel9 == 3}, {caninput_sel9 == 2}
2584- field = "", Auxin9pinb , {caninput_sel9 == 2 || caninput_sel9 == 3}, {caninput_sel9 == 3}
2585- displayOnlyField = "Off", blankfield, {caninput_sel10 == 0},{caninput_sel10 == 0}
2586- field = "", caninput_source_can_address10, { caninput_sel10 == 1 && enable_candata_in }, {caninput_sel10 == 1}
2587- field = "", Auxin10pina , {caninput_sel10 == 2 || caninput_sel10 == 3}, {caninput_sel10 == 2}
2588- field = "", Auxin10pinb , {caninput_sel10 == 2 || caninput_sel10 == 3}, {caninput_sel10 == 3}
2589- displayOnlyField = "Off", blankfield, {caninput_sel11 == 0},{caninput_sel11 == 0}
2590- field = "", caninput_source_can_address11, { caninput_sel11 == 1 && enable_candata_in }, {caninput_sel11 == 1}
2591- field = "", Auxin11pina , {caninput_sel11 == 2 || caninput_sel11 == 3}, {caninput_sel11 == 2}
2592- field = "", Auxin11pinb , {caninput_sel11 == 2 || caninput_sel11 == 3}, {caninput_sel11 == 3}
2593- displayOnlyField = "Off", blankfield, {caninput_sel12 == 0},{caninput_sel12 == 0}
2594- field = "", caninput_source_can_address12, { caninput_sel12 == 1 && enable_candata_in }, {caninput_sel12 == 1}
2595- field = "", Auxin12pina , {caninput_sel12 == 2 || caninput_sel12 == 3}, {caninput_sel12 == 2}
2596- field = "", Auxin12pinb , {caninput_sel12 == 2 || caninput_sel12 == 3}, {caninput_sel12 == 3}
2597- displayOnlyField = "Off", blankfield, {caninput_sel13 == 0},{caninput_sel13 == 0}
2598- field = "", caninput_source_can_address13, { caninput_sel13 == 1 && enable_candata_in }, {caninput_sel13 == 1}
2599- field = "", Auxin13pina , {caninput_sel13 == 2 || caninput_sel13 == 3}, {caninput_sel13 == 2}
2600- field = "", Auxin13pinb , {caninput_sel13 == 2 || caninput_sel13 == 3}, {caninput_sel13 == 3}
2601- displayOnlyField = "Off", blankfield, {caninput_sel14 == 0},{caninput_sel14 == 0}
2602- field = "", caninput_source_can_address14, { caninput_sel14 == 1 && enable_candata_in }, {caninput_sel14 == 1}
2603- field = "", Auxin14pina , {caninput_sel14 == 2 || caninput_sel14 == 3}, {caninput_sel14 == 2}
2604- field = "", Auxin14pinb , {caninput_sel14 == 2 || caninput_sel14 == 3}, {caninput_sel14 == 3}
2605- displayOnlyField = "Off", blankfield, {caninput_sel15 == 0},{caninput_sel15 == 0}
2606- field = "", caninput_source_can_address15, { caninput_sel15 == 1 && enable_candata_in }, {caninput_sel15 == 1}
2607- field = "", Auxin15pina , {caninput_sel15 == 2 || caninput_sel15 == 3}, {caninput_sel15 == 2}
2608- field = "", Auxin15pinb , {caninput_sel15 == 2 || caninput_sel15 == 3}, {caninput_sel15 == 3}
2609-
2804+ field = " Source"
2805+ 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)))}
2806+ 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)}
2807+ 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)}
2808+ 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 )))}
2809+ 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 )))}
2810+
2811+ 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)))}
2812+ 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)}
2813+ 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)}
2814+ 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))}
2815+ 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 )))}
2816+
2817+ 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))}
2818+ 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)}
2819+ 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)}
2820+ 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 )))}
2821+ 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 )))}
2822+
2823+ 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))}
2824+ 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)}
2825+ 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)}
2826+ 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 )))}
2827+ 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 )))}
2828+
2829+ 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))}
2830+ 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)}
2831+ 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)}
2832+ 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 )))}
2833+ 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 )))}
2834+
2835+ 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))}
2836+ 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)}
2837+ 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)}
2838+ 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 )))}
2839+ 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 )))}
2840+
2841+ 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))}
2842+ 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)}
2843+ 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)}
2844+ 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 )))}
2845+ 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 )))}
2846+
2847+ 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))}
2848+ 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)}
2849+ 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)}
2850+ 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 )))}
2851+ 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 )))}
2852+
2853+ 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))}
2854+ 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)}
2855+ 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)}
2856+ 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 )))}
2857+ 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 )))}
2858+
2859+ 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))}
2860+ 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)}
2861+ 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)}
2862+ 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 )))}
2863+ 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 )))}
2864+
2865+ 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))}
2866+ 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)}
2867+ 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)}
2868+ 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 )))}
2869+ 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 )))}
2870+
2871+ 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))}
2872+ 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)}
2873+ 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)}
2874+ 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 )))}
2875+ 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 )))}
2876+
2877+ 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))}
2878+ 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)}
2879+ 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)}
2880+ 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 )))}
2881+ 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 )))}
2882+
2883+ 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))}
2884+ 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)}
2885+ 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)}
2886+ 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 )))}
2887+ 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 )))}
2888+
2889+ 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))}
2890+ 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)}
2891+ 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)}
2892+ 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 )))}
2893+ 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 )))}
2894+
2895+ 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))}
2896+ 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)}
2897+ 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)}
2898+ 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 )))}
2899+ 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 )))}
2900+
26102901 dialog = Auxinput_alias, "", yAxis
26112902 field = "Input Alias"
2612- field = "", AUXin00Alias , {caninput_sel0}
2613- field = "", AUXin01Alias , {caninput_sel1}
2614- field = "", AUXin02Alias , {caninput_sel2}
2615- field = "", AUXin03Alias , {caninput_sel3}
2616- field = "", AUXin04Alias , {caninput_sel4}
2617- field = "", AUXin05Alias , {caninput_sel5}
2618- field = "", AUXin06Alias , {caninput_sel6}
2619- field = "", AUXin07Alias , {caninput_sel7}
2620- field = "", AUXin08Alias , {caninput_sel8}
2621- field = "", AUXin09Alias , {caninput_sel9}
2622- field = "", AUXin10Alias , {caninput_sel10}
2623- field = "", AUXin11Alias , {caninput_sel11}
2624- field = "", AUXin12Alias , {caninput_sel12}
2625- field = "", AUXin13Alias , {caninput_sel13}
2626- field = "", AUXin14Alias , {caninput_sel14}
2627- field = "", AUXin15Alias , {caninput_sel15}
2903+ field = "", AUXin00Alias , {(caninput_sel0a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel0b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2904+ field = "", AUXin01Alias , {(caninput_sel1a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel1b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2905+ field = "", AUXin02Alias , {(caninput_sel2a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel2b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2906+ field = "", AUXin03Alias , {(caninput_sel3a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel3b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2907+ field = "", AUXin04Alias , {(caninput_sel4a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel4b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2908+ field = "", AUXin05Alias , {(caninput_sel5a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel5b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2909+ field = "", AUXin06Alias , {(caninput_sel6a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel6b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2910+ field = "", AUXin07Alias , {(caninput_sel7a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel7b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2911+ field = "", AUXin08Alias , {(caninput_sel8a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel8b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2912+ field = "", AUXin09Alias , {(caninput_sel9a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel9b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2913+ field = "", AUXin10Alias , {(caninput_sel10a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel10b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2914+ field = "", AUXin11Alias , {(caninput_sel11a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel11b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2915+ field = "", AUXin12Alias , {(caninput_sel12a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel12b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2916+ field = "", AUXin13Alias , {(caninput_sel13a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel13b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2917+ field = "", AUXin14Alias , {(caninput_sel14a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel14b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
2918+ field = "", AUXin15Alias , {(caninput_sel15a && (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0)))) || (caninput_sel15b && (enable_secondarySerial || (enable_intcan && intcan_available)))}
26282919
26292920 dialog = Auxinput_channelenable, "", yAxis
26302921 field = " Aux Input Channel Enable"
2631- field = "AUX Input 0", caninput_sel0
2632- field = "AUX Input 1", caninput_sel1
2633- field = "AUX Input 2", caninput_sel2
2634- field = "AUX Input 3", caninput_sel3
2635- field = "AUX Input 4", caninput_sel4
2636- field = "AUX Input 5", caninput_sel5
2637- field = "AUX Input 6", caninput_sel6
2638- field = "AUX Input 7", caninput_sel7
2639- field = "AUX Input 8", caninput_sel8
2640- field = "AUX Input 9", caninput_sel9
2641- field = "AUX Input 10", caninput_sel10
2642- field = "AUX Input 11", caninput_sel11
2643- field = "AUX Input 12", caninput_sel12
2644- field = "AUX Input 13", caninput_sel13
2645- field = "AUX Input 14", caninput_sel14
2646- field = "AUX Input 15", caninput_sel15
2647-
2648- dialog = Auxin_config, "Auxillary Input Configuration",xAxis
2922+ field = "AUX Input 0", caninput_sel0a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2923+ field = "AUX Input 0", caninput_sel0b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2924+ field = "AUX Input 1", caninput_sel1a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2925+ field = "AUX Input 1", caninput_sel1b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2926+ field = "AUX Input 2", caninput_sel2a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2927+ field = "AUX Input 2", caninput_sel2b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2928+ field = "AUX Input 3", caninput_sel3a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2929+ field = "AUX Input 3", caninput_sel3b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2930+ field = "AUX Input 4", caninput_sel4a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2931+ field = "AUX Input 4", caninput_sel4b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2932+ field = "AUX Input 5", caninput_sel5a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2933+ field = "AUX Input 5", caninput_sel5b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2934+ field = "AUX Input 6", caninput_sel6a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2935+ field = "AUX Input 6", caninput_sel6b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2936+ field = "AUX Input 7", caninput_sel7a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2937+ field = "AUX Input 7", caninput_sel7b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2938+ field = "AUX Input 8", caninput_sel8a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2939+ field = "AUX Input 8", caninput_sel8b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2940+ field = "AUX Input 9", caninput_sel9a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2941+ field = "AUX Input 9", caninput_sel9b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2942+ field = "AUX Input 10", caninput_sel10a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2943+ field = "AUX Input 10", caninput_sel10b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2944+ field = "AUX Input 11", caninput_sel11a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2945+ field = "AUX Input 11", caninput_sel11b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2946+ field = "AUX Input 12", caninput_sel12a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2947+ field = "AUX Input 12", caninput_sel12b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2948+ field = "AUX Input 13", caninput_sel13a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2949+ field = "AUX Input 13", caninput_sel13b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2950+ field = "AUX Input 14", caninput_sel14a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2951+ field = "AUX Input 14", caninput_sel14b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2952+ field = "AUX Input 15", caninput_sel15a {}, { (!enable_secondarySerial && (!enable_intcan || (enable_intcan && intcan_available == 0))) }
2953+ field = "AUX Input 15", caninput_sel15b {}, { (enable_secondarySerial && enable_intcan) || (!enable_secondarySerial && (enable_intcan && intcan_available)) || (enable_secondarySerial && !enable_intcan) }
2954+
2955+ dialog = Auxin_south, "Auxillary Input Configuration",xAxis
26492956 panel = Auxinput_alias
26502957 panel = Auxinput_channelenable
26512958 panel = Auxinput_pin_selection
2652-
2959+
2960+ dialog = Auxin_config, "",yAxis
2961+ panel = Auxin_north
2962+ panel = Auxin_south
2963+
26532964 ;-------------------------------------------------------------------------------
26542965 ; General help text
26552966
@@ -3041,6 +3352,7 @@
30413352 ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld
30423353 accelEnrichGauge = accelEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0
30433354 dutyCycleGauge = dutyCycle, "Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1
3355+ stgDutyCycleGauge = stgDutyCycle, "Staging Duty Cycle", "%", 0, 100, -1, -1, 70, 80, 1, 1
30443356 egoCorrGauge = egoCorrection, "EGO Correction", "%", 50, 150, 90, 99, 101, 110, 0, 0
30453357
30463358 gammaEnrichGauge = gammaEnrich, "Gamma Enrichment", "%", 50, 150, -1, -1, 151, 151, 0, 0
@@ -3047,7 +3359,7 @@
30473359 pulseWidthGauge = pulseWidth, "Pulse Width", "mSec", 0, 35.0, 1.0, 1.2, 20, 25, 3, 3
30483360 tachometer = rpm, "Engine Speed", "RPM", 0, 8000, 300, 600, 3000, 5000, 0, 0
30493361 veGauge = veCurr, "VE Current", "%", 0, 120, -1, -1, 999, 999, 0, 0
3050- veGauge2 = veCurr2, "VE2 Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 ;[PJSC]
3362+ veGauge2 = veCurr2, "VE2 Current", "%", 0, 120, -1, -1, 999, 999, 0, 0 ;[PJSC]
30513363 warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 200, 130, 140, 140, 150, 0, 0
30523364 aseEnrichGauge = ase_enrich, "Afterstart Enrichment","%", 0, 200, 130, 140, 140, 150, 0, 0
30533365 batCorrectGauge = batCorrection, "Voltage Correction", "%", 0, 200, 130, 140, 140, 150, 0, 0
@@ -3293,7 +3605,9 @@
32933605
32943606 cycleTime = { rpm ? ( 60000.0 / rpm ) : 0 }
32953607 cycleMultiplier = { injLayout == 3 ? 2 : 1 }
3296- dutyCycle = { rpm ? ( 100.0*pulseWidth/(cycleTime * cycleMultiplier) ) : 0 }
3608+ strokeMultipler = { twoStroke == 1 ? 2 : 1 }
3609+ dutyCycle = { rpm ? ( 100.0*pulseWidth/(cycleTime * cycleMultiplier) * strokeMultipler ) : 0 }
3610+ stgDutyCycle = { rpm && stagingEnabled ? ( 100.0*pulseWidth3/(cycleTime * cycleMultiplier) * strokeMultipler ) : 0 }
32973611
32983612 boostCutOut = { boostCutFuel || boostCutSpark }
32993613 lambda = { afr / stoich }
@@ -3356,7 +3670,7 @@
33563670 entry = gammaEnrich, "Gammae", int, "%d"
33573671 entry = accelEnrich, "Accel Enrich", int, "%d"
33583672 entry = veCurr, "VE", int, "%d"
3359- entry = veCurr2, "VE2", int, "%d", { multiVEmapEnabled } ;[PJSC]
3673+ entry = veCurr2, "VE2", int, "%d", { multiVEmapEnabled } ;[PJSC]
33603674 entry = pulseWidth, "PW", float, "%.1f"
33613675 entry = afrTarget, "AFR Target", float, "%.3f"
33623676 entry = pulseWidth, "PW2", float, "%.1f"
@@ -3380,12 +3694,12 @@
33803694 entry = baro, "Baro Pressure",int, "%d"
33813695 entry = nitrousOn, "Nitrous On", int, "%d", { n2o_enable > 0 }
33823696 entry = syncLossCounter, "Sync Loss #", int, "%d"
3383- entry = valvePosition, "ExValve Pos", int, "%d", { exValveCaptureEnabled } ;[PJSC]
3384- entry = sparkedAngle, "Spark Angle", int, "%d", { exTrigModeSelect == 1 } ;[PJSC]
3385- entry = dutyFreq, "Duty Frequency", int, "%d", { dutyPulseCaptureEnabled } ;[PJSC]
3386- entry = dutyRatio, "Duty Ratio", int, "%d", { dutyPulseCaptureEnabled } ;[PJSC]
3387- entry = dutyFreq2, "Duty Frequency2", int, "%d", { dutyPulseCaptureEnabled2 } ;[PJSC]
3388- entry = dutyRatio2, "Duty Ratio2", int, "%d", { dutyPulseCaptureEnabled2 } ;[PJSC]
3697+ entry = valvePosition, "ExValve Pos", int, "%d", { exValveCaptureEnabled } ;[PJSC]
3698+ entry = sparkedAngle, "Spark Angle", int, "%d", { exTrigModeSelect == 1 } ;[PJSC]
3699+ entry = dutyFreq, "Duty Frequency", int, "%d", { dutyPulseCaptureEnabled } ;[PJSC]
3700+ entry = dutyRatio, "Duty Ratio", int, "%d", { dutyPulseCaptureEnabled } ;[PJSC]
3701+ entry = dutyFreq2, "Duty Frequency2", int, "%d", { dutyPulseCaptureEnabled2 } ;[PJSC]
3702+ entry = dutyRatio2, "Duty Ratio2", int, "%d", { dutyPulseCaptureEnabled2 } ;[PJSC]
33893703
33903704 entry = auxin_gauge0, "AuxIn CH0", int, "%d"
33913705 entry = auxin_gauge1, "AuxIn CH1", int, "%d"
@@ -3403,10 +3717,13 @@
34033717 ;loggerDef = uniqueName, Display Name, type
34043718 loggerDef = tooth, "Tooth Logger", tooth
34053719 ;dataReadCommand = "r\\x00\\xf4\\x00\\x00\\x04\\x00" ; standard TS command format
3720+ startCommand = "H"
3721+ stopCommand = "h"
34063722 dataReadCommand = "T" ; Basic TS command format
34073723 dataReadTimeout = 15000 ; time in ms
34083724 dataReadyCondition = { toothLog1Ready }
3409- dataLength = 256 ; in bytes, including headers, footers and data (not used)
3725+ ;dataLength = 256 ; in bytes, including headers, footers and data (not used)
3726+ dataLength = 128 ; in bytes, including headers, footers and data (not used)
34103727
34113728 ;recordDef = headerLen. footerLen, recordLen
34123729 recordDef = 0, 0, 2; in bytes, the recordLen is for each record, currently limited to 4 bytes
@@ -3414,7 +3731,33 @@
34143731 ;recordField = Name, HeaderName, startBit, bitCount, scale, units, updateCondition
34153732 recordField = toothTime, "ToothTime", 0, 16, 1.0, "uS"
34163733
3734+ loggerDef = compositeLogger, "Composite Logger", composite
3735+ startCommand = "J"
3736+ stopCommand = "j"
3737+ dataReadCommand = "T" ; Basic TS command format. Note that this is shared with the composite logger. Firmware detects which log is currently running
3738+ dataReadTimeout = 5000 ; time in ms
3739+ dataReadyCondition = { toothLog1Ready }
3740+ ;dataLength = 256 ; in bytes, including headers, footers and data (not used)
3741+ ;dataLength = 320 ; in bytes, including headers, footers and data (not used)
34173742
3743+ ;recordDef = headerLen. footerLen, recordLen
3744+ recordDef = 0, 0, 5; in bytes, the recordLen is for each record, currently limited to 4 bytes
3745+
3746+ ;recordField = Name, HeaderName, startBit, bitCount, scale, units, updateCondition
3747+ recordField = priLevel, "PriLevel", 0, 1, 1.0, "Flag"
3748+ recordField = secLevel, "SecLevel", 1, 1, 1.0, "Flag"
3749+ recordField = trigger, "Trigger", 2, 1, 1.0, "Flag"
3750+ recordField = sync, "Sync", 3, 1, 1.0, "Flag"
3751+ recordField = refTime, "RefTime", 8, 32, 0.001, "ms", hidden
3752+
3753+ ; hidden calcField serves as intermediate variable
3754+ calcField = maxTime, "MaxTime", "ms", { maxValue(refTime) }, hidden
3755+
3756+ calcField = toothTime, "ToothTime", "ms", { refTime - pastValue(refTime, 1) }
3757+ ;recordField = time, "Time", 24, 16, 1.0, "ms"
3758+ calcField = time, "Time", "ms", { refTime }
3759+
3760+
34183761 [Tools]
34193762 ;addTool = toolName, PanelName
34203763 addTool = veTableGenerator, "VE Table Generator", veTable1Tbl
--- branches/Ver1.00_base/speeduino/comms.h (revision 26)
+++ branches/Ver1.00_base/speeduino/comms.h (revision 27)
@@ -29,7 +29,6 @@
2929 byte cmdGroup = 0;
3030 byte cmdValue = 0;
3131 int cmdCombined = 0; //the cmdgroup as high byte and cmdvalue as low byte
32-byte cmdStore[8]; //array storing pre test values
3332 byte tsCanId = 0; // current tscanid requested
3433
3534 const char pageTitles[] PROGMEM //This is being stored in the avr flash instead of SRAM which there is not very much of
--- branches/Ver1.00_base/speeduino/crankMaths.h (revision 26)
+++ branches/Ver1.00_base/speeduino/crankMaths.h (revision 27)
@@ -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/Ver1.00_base/speeduino/decoders.h (revision 26)
+++ branches/Ver1.00_base/speeduino/decoders.h (revision 27)
@@ -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
@@ -155,6 +157,7 @@
155157 volatile unsigned long curGap2;
156158 volatile unsigned long lastGap;
157159 volatile unsigned long targetGap;
160+volatile unsigned long compositeLastToothTime;
158161
159162 volatile int toothCurrentCount = 0; //The current number of teeth (Onec sync has been achieved, this can never actually be 0
160163 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
@@ -177,6 +180,7 @@
177180 volatile int triggerActualTeeth;
178181 volatile unsigned long triggerFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering)
179182 volatile unsigned long triggerSecFilterTime; // The shortest time (in uS) that pulses will be accepted (Used for debounce filtering) for the secondary input
183+volatile bool validTrigger; //Is set true when the last trigger (Primary or secondary) was valid (ie passed filters)
180184 unsigned int triggerSecFilterTime_duration; // The shortest valid time (in uS) pulse DURATION
181185 volatile uint16_t triggerToothAngle; //The number of crank degrees that elapse per tooth
182186 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.
@@ -183,6 +187,7 @@
183187 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
184188 bool decoderIsSequential; //Whether or not the decoder supports sequential operation
185189 bool decoderIsLowRes = false; //Is set true, certain extra calculations are performed for better timing accuracy
190+bool decoderHasSecondary = false; //Whether or not the pattern uses a secondary input
186191 bool decoderHasFixedCrankingTiming = false; //Whether or not the decoder supports fixed cranking timing
187192 byte checkSyncToothCount; //How many teeth must've been seen on this revolution before we try to confirm sync (Useful for missing tooth type decoders)
188193 unsigned long elapsedTime;
@@ -203,4 +208,7 @@
203208 #define CRANK_SPEED 0
204209 #define CAM_SPEED 1
205210
211+#define TOOTH_CRANK 0
212+#define TOOTH_CAM 1
213+
206214 #endif
--- branches/Ver1.00_base/speeduino/globals.h (revision 26)
+++ branches/Ver1.00_base/speeduino/globals.h (revision 27)
@@ -148,9 +148,14 @@
148148 #define VALID_MAP_MAX 1022 //The largest ADC value that is valid for the MAP sensor
149149 #define VALID_MAP_MIN 2 //The smallest ADC value that is valid for the MAP sensor
150150
151-#define TOOTH_LOG_SIZE 128
151+#define TOOTH_LOG_SIZE 64
152152 #define TOOTH_LOG_BUFFER 256
153153
154+#define COMPOSITE_LOG_PRI 0
155+#define COMPOSITE_LOG_SEC 1
156+#define COMPOSITE_LOG_TRIG 2
157+#define COMPOSITE_LOG_SYNC 3
158+
154159 #define INJ_PAIRED 0
155160 #define INJ_SEMISEQUENTIAL 1
156161 #define INJ_BANKED 2
@@ -203,6 +208,9 @@
203208 #define OPEN_LOOP_BOOST 0
204209 #define CLOSED_LOOP_BOOST 1
205210
211+#define FOUR_STROKE 0
212+#define TWO_STROKE 1
213+
206214 #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
207215 #define engineSquirtsPerCycle 2 //Would be 1 for a 2 stroke
208216
@@ -217,7 +225,7 @@
217225 #define FUEL_PUMP_ON() *pump_pin_port |= (pump_pin_mask)
218226 #define FUEL_PUMP_OFF() *pump_pin_port &= ~(pump_pin_mask)
219227
220-const char TSfirmwareVersion[] = "Speeduino 2016.09";
228+const char TSfirmwareVersion[] PROGMEM = "Speeduino";
221229
222230 const byte data_structure_version = 2; //This identifies the data structure when reading / writing.
223231 //const byte page_size = 64;
@@ -345,9 +353,12 @@
345353 bool clutchTrigger;
346354 bool previousClutchTrigger;
347355 volatile uint16_t toothHistory[TOOTH_LOG_BUFFER];
356+volatile uint8_t compositeLogHistory[TOOTH_LOG_BUFFER];
348357 volatile bool fpPrimed = false; //Tracks whether or not the fuel pump priming has been completed yet
349358 volatile unsigned int toothHistoryIndex = 0;
350-volatile bool toothLogRead = false; //Flag to indicate whether the current tooth log values have been read out yet
359+volatile byte toothHistorySerialIndex = 0;
360+byte primaryTriggerEdge;
361+byte secondaryTriggerEdge;
351362 int CRANK_ANGLE_MAX = 720;
352363 int CRANK_ANGLE_MAX_IGN = 360;
353364 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
@@ -449,6 +460,8 @@
449460 byte syncLossCounter;
450461 byte knockRetard;
451462 bool knockActive;
463+ bool toothLogEnabled;
464+ bool compositeLogEnabled;
452465 byte exValvePosition; //[PJSC] For External Trigger
453466 byte exValvePositionADC; //[PJSC] For External Trigger
454467 int extTriggerAngle; //[PJSC] For External Trigger
@@ -584,7 +597,7 @@
584597
585598 int8_t EMAPMin; //Must be signed
586599 uint16_t EMAPMax;
587- //[PJSC]byte unused1_70[58];
600+ //[PJSC] byte unused1_70[58];
588601 byte pjscFreq; //[PJSC] Offset 70
589602 byte exValvePosMin; // |
590603 byte exValvePosMax; // |
@@ -626,7 +639,7 @@
626639 } __attribute__((__packed__)); //The 32 bi systems require all structs to be fully packed
627640 #endif
628641
629-//Page 2 of the config - See the ini file for further reference
642+//Page 4 of the config - See the ini file for further reference
630643 //This mostly covers off variables that are required for ignition
631644 struct config4 {
632645
@@ -684,8 +697,16 @@
684697 byte ignBypassPin : 6; //Pin the ignition bypass is activated on
685698 byte ignBypassHiLo : 1; //Whether this should be active high or low.
686699
687- byte unused2_64[64];
700+ byte ADCFILTER_TPS;
701+ byte ADCFILTER_CLT;
702+ byte ADCFILTER_IAT;
703+ byte ADCFILTER_O2;
704+ byte ADCFILTER_BAT;
705+ byte ADCFILTER_MAP; //This is only used on Instantaneous MAP readings and is intentionally very weak to allow for faster response
706+ byte ADCFILTER_BARO;
688707
708+ byte unused2_64[57];
709+
689710 #if defined(CORE_AVR)
690711 };
691712 #else
@@ -789,8 +810,9 @@
789810 //Page 9 of the config mostly deals with CANBUS control
790811 //See ini file for further info (Config Page 10 in the ini)
791812 struct config9 {
792- byte enable_canbus:2;
793- byte enable_candata_in:1;
813+ byte enable_secondarySerial:1; //enable secondary serial
814+ byte intcan_available:1; //enable internal can module
815+ byte enable_intcan:1;
794816 byte caninput_sel[16]; //bit status on/Can/analog_local/digtal_local if input is enabled
795817 uint16_t caninput_source_can_address[16]; //u16 [15] array holding can address of input
796818 uint8_t caninput_source_start_byte[16]; //u08 [15] array holds the start byte number(value of 0-7)
--- branches/Ver1.00_base/speeduino/scheduler.h (revision 26)
+++ branches/Ver1.00_base/speeduino/scheduler.h (revision 27)
@@ -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/Ver1.00_base/speeduino/sensors.h (revision 26)
+++ branches/Ver1.00_base/speeduino/sensors.h (revision 27)
@@ -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));
@@ -64,6 +70,8 @@
6470 void readExValvePosition(); //[PJSC] For External Trigger
6571
6672 #if defined(ANALOG_ISR)
73+volatile int AnChannel[15];
74+
6775 //Analog ISR interrupt routine
6876 /*
6977 ISR(ADC_vect)
--- branches/Ver1.00_base/speeduino/storage.h (revision 26)
+++ branches/Ver1.00_base/speeduino/storage.h (revision 27)
@@ -130,8 +130,8 @@
130130 #define EEPROM_CONFIG8_MAP4 1653
131131 #define EEPROM_CONFIG8_XBINS4 1689
132132 #define EEPROM_CONFIG8_YBINS4 1695
133-#define EEPROM_CONFIG9_START 1710
134-#define EEPROM_CONFIG9_END 1902
133+#define EEPROM_CONFIG9_START 1710
134+#define EEPROM_CONFIG9_END 1902
135135 #define EEPROM_CONFIG10_START 1902
136136 #define EEPROM_CONFIG10_END 2094
137137 #define EEPROM_CONFIG12_XSIZE 2094 //[PJSC]