private void xtraTabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e) { // Stop monitoring if session is active ResizeControls(); bool _loggingWasActive = false; if (m_loggingActive) { _loggingWasActive = m_loggingActive; m_loggingActive = false; } if (_EnableAdvancedMode) btnMapEdit.Visible = true; digitalDisplayControl7.Visible = false; type = RealtimeMonitoringType.Fuel; SymbolCollection sc = new SymbolCollection(); // notify parent of changed tabpage, the realtime stuff should be filled differently in that case if (e.Page.Text == xtraTabPage1.Text) { type = RealtimeMonitoringType.Fuel; // fill with fuel map SymbolHelper sh_fuel = new SymbolHelper(); sh_fuel.Varname = "Insp_mat!"; sh_fuel.Helptext = "Main fuel map"; sc.Add(sh_fuel); SymbolHelper sh_korr = new SymbolHelper(); sh_korr.Varname = "Adapt_korr!"; sh_korr.Helptext = "Fuel adaption"; sc.Add(sh_korr); SymbolHelper sh_fuel_mut = new SymbolHelper(); sh_fuel_mut.Varname = "FuelAdjustmentMap"; sh_fuel_mut.Helptext = "Autotune fuel"; sc.Add(sh_fuel_mut); SymbolHelper sh_knock = new SymbolHelper(); sh_knock.Varname = "Fuel_knock_mat!"; sh_knock.Helptext = "Knock fuel map"; sc.Add(sh_knock); SymbolHelper sh_injconst = new SymbolHelper(); sh_injconst.Varname = "Inj_konst!"; sh_injconst.Helptext = "Injector constant"; sc.Add(sh_injconst); btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == xtraTabPage2.Text) { type = RealtimeMonitoringType.Ignition; // fill with ignition maps SymbolHelper sh_ign = new SymbolHelper(); sh_ign.Varname = "Ign_map_0!"; sh_ign.Helptext = "Main ignition map"; sc.Add(sh_ign); SymbolHelper sh_ignwarmup = new SymbolHelper(); sh_ignwarmup.Varname = "Ign_map_4!"; sh_ignwarmup.Helptext = "Warmup ignition map"; sc.Add(sh_ignwarmup); SymbolHelper sh_ignknock = new SymbolHelper(); sh_ignknock.Varname = "Ign_map_2!"; sh_ignknock.Helptext = "Knock ignition map"; sc.Add(sh_ignknock); btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == xtraTabPage3.Text) { type = RealtimeMonitoringType.Boost; SymbolHelper sh_boostrequest = new SymbolHelper(); sh_boostrequest.Varname = "Tryck_mat!"; sh_boostrequest.Helptext = "Boost request map"; sc.Add(sh_boostrequest); SymbolHelper sh_regkonmat = new SymbolHelper(); sh_regkonmat.Varname = "Reg_kon_mat!"; sh_regkonmat.Helptext = "Boost bias map"; sc.Add(sh_regkonmat); SymbolHelper sh_pfact = new SymbolHelper(); sh_pfact.Varname = "P_fors!"; sh_pfact.Helptext = "P factors"; sc.Add(sh_pfact); SymbolHelper sh_ifact = new SymbolHelper(); sh_ifact.Varname = "I_fors!"; sh_ifact.Helptext = "I factors"; sc.Add(sh_ifact); SymbolHelper sh_dfact = new SymbolHelper(); sh_dfact.Varname = "D_fors!"; sh_dfact.Helptext = "D factors"; sc.Add(sh_dfact); btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == xtraTabPage4.Text) { type = RealtimeMonitoringType.Knock; SymbolHelper sh_knock_ref = new SymbolHelper(); sh_knock_ref.Varname = "Knock_ref_matrix!"; sh_knock_ref.Helptext = "Knock sensitivity"; sc.Add(sh_knock_ref); SymbolHelper sh_knock_count = new SymbolHelper(); sh_knock_count.Varname = "Knock_count_map"; sh_knock_count.Helptext = "Knock counter map"; sc.Add(sh_knock_count); SymbolHelper sh_ignknock = new SymbolHelper(); sh_ignknock.Varname = "Ign_map_2!"; sh_ignknock.Helptext = "Knock ignition map"; sc.Add(sh_ignknock); SymbolHelper sh_knock = new SymbolHelper(); sh_knock.Varname = "Fuel_knock_mat!"; sh_knock.Helptext = "Knock fuel map"; sc.Add(sh_knock); btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == xtraTabPage5.Text) { type = RealtimeMonitoringType.Dashboard; btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == xtraTabPage6.Text) { type = RealtimeMonitoringType.Settings; btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == xtraTabPage7.Text) { type = RealtimeMonitoringType.Userdefined; // only show symbol that are in the watchlist // clear the map, it will be filled by itself System.Data.DataTable dtnew = new System.Data.DataTable(); if (gridControl4.DataSource == null) { dtnew.TableName = "RTSymbols"; dtnew.Columns.Add("SYMBOLNAME"); dtnew.Columns.Add("MINVALUE", Type.GetType("System.Double")); // autosense max and min! dtnew.Columns.Add("MAXVALUE", Type.GetType("System.Double")); dtnew.Columns.Add("VALUE", Type.GetType("System.Double")); dtnew.Columns.Add("PEAK", Type.GetType("System.Double")); gridControl4.DataSource = dtnew; } btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == xtraTabPage8.Text) { type = RealtimeMonitoringType.EngineStatus; btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == xtraTabPage9.Text) { type = RealtimeMonitoringType.OnlineGraph; btnMapEdit.Relevantsymbols = sc; } else if (e.Page.Text == tabAutoTuneIgnition.Text) { type = RealtimeMonitoringType.AutotuneIgnition; } else if (e.Page.Text == tabAutoTune.Text) { type = RealtimeMonitoringType.AutotuneFuel; btnMapEdit.Visible = false; digitalDisplayControl7.Visible = true; } else if (e.Page.Text == tabUserMaps.Text) { type = RealtimeMonitoringType.UserMaps; btnMapEdit.Relevantsymbols = sc; // load the grid DataTable dt = new DataTable(); dt.TableName = "UserMaps"; dt.Columns.Add("Mapname"); dt.Columns.Add("Description"); if (File.Exists(Application.StartupPath + "\\UserMaps.xml")) { dt.ReadXml(Application.StartupPath + "\\UserMaps.xml"); } /*else { dt.Columns.Add("Mapname"); dt.Columns.Add("Description"); }*/ gridControl5.DataSource = dt; } if (e.PrevPage.Text == tabUserMaps.Text) { // save if (gridControl5.DataSource != null) { DataTable dt = (DataTable)gridControl5.DataSource; dt.WriteXml(Application.StartupPath + "\\UserMaps.xml"); } } if (onMonitorTypeChanged != null) { // disable all controls in the bottom to indicate we don't have data for them at this point. // next, when data is received for one of the controls, enable them again DisableGenericControls(); onMonitorTypeChanged(this, new RealtimeMonitoringEventArgs(type)); } if (_loggingWasActive) { m_loggingActive = true; m_logfileName = DetermineNewLogFileName(); } }
public RealtimeMonitoringEventArgs(RealtimeMonitoringType type) { this._type = type; }
private void FillRealtimePool(RealtimeMonitoringType _type, bool _startRealtime) { // first remove all the symbol from the list _ecuConnection.StopECUMonitoring(); Thread.Sleep(100); _ecuConnection.RemoveAllSymbolsFromWatchlist(); if (_type == RealtimeMonitoringType.AutotuneIgnition) { //<GS-06042011> needs less symbols to operate and we need fast comms for autotuning, so as little symbols as possible _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetPressureSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetPressureSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetPressureSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEngineSpeedSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEngineSpeedSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEngineSpeedSymbol()), true); _ecuConnection.AddSymbolToWatchlist("Knock_offset1234", m_trionicFileInformation.GetSymbolAddressSRAM("Knock_offset1234"), m_trionicFileInformation.GetSymbolLength("Knock_offset1234"), true); } else if (_type == RealtimeMonitoringType.AutotuneFuel) { //<GS-06042011> needs less symbols to operate and we need fast comms for autotuning, so as little symbols as possible _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetPressureSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetPressureSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetPressureSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetCoolantTempSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetCoolantTempSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetCoolantTempSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEngineSpeedSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEngineSpeedSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEngineSpeedSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetThrottlePositionSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetThrottlePositionSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetThrottlePositionSymbol()), true); } else { // now add all the default values to the realtime pool! _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetPressureSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetPressureSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetPressureSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetAirTempSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetAirTempSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetAirTempSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetCoolantTempSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetCoolantTempSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetCoolantTempSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEngineSpeedSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEngineSpeedSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEngineSpeedSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetThrottlePositionSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetThrottlePositionSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetThrottlePositionSymbol()), true); //<GS-28102010> default gemaakt (BoostTargetSymbol) vanwege update PID maps in live map view _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetBoostTargetSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetBoostTargetSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetBoostTargetSymbol()), true); // add program status monitoring } _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetProgramStatusSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetProgramStatusSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetProgramStatusSymbol()), true); //<GS-06042011> removed again _ecuConnection.AddSymbolToWatchlist("Idle_status", m_trionicFileInformation.GetSymbolAddressSRAM("Idle_status"), m_trionicFileInformation.GetSymbolLength("Idle_status"), true); //_ecuConnection.AddSymbolToWatchlist("Knock_status", m_trionicFileInformation.GetSymbolAddressSRAM("Knock_status"), m_trionicFileInformation.GetSymbolLength("Knock_status"), true); if (ctrlRealtime1.AutoTuning && _type != RealtimeMonitoringType.Fuel) { // make sure that the correct parameters are being watched _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEnrichmentForLoadSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEnrichmentForLoadSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEnrichmentForLoadSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEnrichmentForTPSSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEnrichmentForTPSSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEnrichmentForTPSSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEnleanmentForLoadSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEnleanmentForLoadSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEnleanmentForLoadSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEnleanmentForTPSSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEnleanmentForTPSSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEnleanmentForTPSSymbol()), true); } // depening on narrowband or wideband O2 sensor if (m_appSettings.UseWidebandLambdaThroughSymbol) { _ecuConnection.AddSymbolToWatchlist(m_appSettings.WidebandLambdaSymbol, m_trionicFileInformation.GetSymbolAddressSRAM(m_appSettings.WidebandLambdaSymbol), m_trionicFileInformation.GetSymbolLength(m_appSettings.WidebandLambdaSymbol), true); } else { _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetLambdaSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetLambdaSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetLambdaSymbol()), true); } if (m_appSettings.AutoLoggingEnabled) { // always add the symbols we need to monitor to be able to start/stop the logging _ecuConnection.AddSymbolToWatchlist(m_appSettings.AutoLogTriggerStartSymbol, m_trionicFileInformation.GetSymbolAddressSRAM(m_appSettings.AutoLogTriggerStartSymbol), m_trionicFileInformation.GetSymbolLength(m_appSettings.AutoLogTriggerStartSymbol), true); _ecuConnection.AddSymbolToWatchlist(m_appSettings.AutoLogTriggerStopSymbol, m_trionicFileInformation.GetSymbolAddressSRAM(m_appSettings.AutoLogTriggerStopSymbol), m_trionicFileInformation.GetSymbolLength(m_appSettings.AutoLogTriggerStopSymbol), true); } switch (_type) { case RealtimeMonitoringType.Fuel: _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetInjectionDurationSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetInjectionDurationSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetInjectionDurationSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEnrichmentForLoadSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEnrichmentForLoadSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEnrichmentForLoadSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEnrichmentForTPSSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEnrichmentForTPSSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEnrichmentForTPSSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEnleanmentForLoadSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEnleanmentForLoadSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEnleanmentForLoadSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetEnleanmentForTPSSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetEnleanmentForTPSSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetEnleanmentForTPSSymbol()), true); break; case RealtimeMonitoringType.Ignition: _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetIgnitionAdvanceSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetIgnitionAdvanceSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetIgnitionAdvanceSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetCylinder1Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetCylinder1Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetCylinder1Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetCylinder2Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetCylinder2Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetCylinder2Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetCylinder3Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetCylinder3Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetCylinder3Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetCylinder4Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetCylinder4Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetCylinder4Symbol()), true); // ignition trim // ignition adapt // ignition knock retard // ignition counter break; case RealtimeMonitoringType.Boost: _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetBoostRequestSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetBoostRequestSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetBoostRequestSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetBoostReductionSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetBoostReductionSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetBoostReductionSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetPFactorSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetPFactorSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetPFactorSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetIFactorSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetIFactorSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetIFactorSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetDFactorSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetDFactorSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetDFactorSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetPWMOutputSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetPWMOutputSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetPWMOutputSymbol()), true); // reg_offset break; case RealtimeMonitoringType.Knock: _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockCountCylinder1Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockCountCylinder1Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockCountCylinder1Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockCountCylinder2Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockCountCylinder2Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockCountCylinder2Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockCountCylinder3Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockCountCylinder3Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockCountCylinder3Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockCountCylinder4Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockCountCylinder4Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockCountCylinder4Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetCylinder1Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetCylinder1Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetCylinder1Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetCylinder2Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetCylinder2Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetCylinder2Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetCylinder3Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetCylinder3Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetCylinder3Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetCylinder4Symbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetCylinder4Symbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetCylinder4Symbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockOffsetAllCylindersSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockOffsetAllCylindersSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockOffsetAllCylindersSymbol()), true); // ignition retard (Knock_offset1234) _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetBoostReductionSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetBoostReductionSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetBoostReductionSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetKnockLevelSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetKnockLevelSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetKnockLevelSymbol()), true); // knock_level (for all cylinders???) break; case RealtimeMonitoringType.Dashboard: _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetVehicleSpeedSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetVehicleSpeedSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetVehicleSpeedSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetTorqueSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetTorqueSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetTorqueSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetInjectionDurationSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetInjectionDurationSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetInjectionDurationSymbol()), true); // inspuitduur (berekening verbruik) _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetBoostReductionSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetBoostReductionSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetBoostReductionSymbol()), true); // apc decrease _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetIgnitionAdvanceSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetIgnitionAdvanceSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetIgnitionAdvanceSymbol()), true); // ignition advance break; case RealtimeMonitoringType.Settings: break; case RealtimeMonitoringType.Userdefined: //TODO: <GS-22042010> get the user defined symbols and add them to the list as well // foreach (Trionic5Tools.SymbolHelper sh in m_RealtimeUserSymbols) { //_ecuConnection.AddSymbolToWatchlist(sh.Varname, sh.Start_address, sh.Length, false); _ecuConnection.AddSymbolToWatchlist(sh, false); } //_ecuConnection.AddSymbolToWatchlist("Iv_position", m_trionicFileInformation.GetSymbolAddressSRAM("Iv_position"), m_trionicFileInformation.GetSymbolLength("Iv_position"), false); break; case RealtimeMonitoringType.GraphDashboard: break; case RealtimeMonitoringType.OnlineGraph: //_ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetVehicleSpeedSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetVehicleSpeedSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetVehicleSpeedSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetTorqueSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetTorqueSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetTorqueSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetInjectionDurationSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetInjectionDurationSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetInjectionDurationSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetIgnitionAdvanceSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetIgnitionAdvanceSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetIgnitionAdvanceSymbol()), true); _ecuConnection.AddSymbolToWatchlist(m_trionicFileInformation.GetPWMOutputSymbol(), m_trionicFileInformation.GetSymbolAddressSRAM(m_trionicFileInformation.GetPWMOutputSymbol()), m_trionicFileInformation.GetSymbolLength(m_trionicFileInformation.GetPWMOutputSymbol()), true); break; } // if we're just starting a realtime session, be sure the user defined symbols are started as well. if (_startRealtime) { foreach (Trionic5Tools.SymbolHelper sh in m_RealtimeUserSymbols) { //_ecuConnection.AddSymbolToWatchlist(sh.Varname, sh.Start_address, sh.Length, false); _ecuConnection.AddSymbolToWatchlist(sh, false); } } //props = m_trionicFile.GetTrionicProperties(); switch (props.InjectorType) { case InjectorType.Stock: ctrlRealtime1.InjectorCC = 365; break; case InjectorType.GreenGiants: ctrlRealtime1.InjectorCC = 413; break; case InjectorType.Siemens630Dekas: ctrlRealtime1.InjectorCC = 630; break; case InjectorType.Siemens875Dekas: ctrlRealtime1.InjectorCC = 875; break; case InjectorType.Siemens1000cc: ctrlRealtime1.InjectorCC = 1000; break; } // restart the monitoring function _ecuConnection.StartECUMonitoring(); ctrlRealtime1.SetNumberOfSymbolsToWatch(_ecuConnection.SymbolsToMonitor.Count); }