private void UpdateProgrammingAction(IPsdzTransactionEvent psdzEvent) { try { EcuProgrammingInfo correspondingEcu = this.GetCorrespondingEcu(psdzEvent); if (correspondingEcu != null) { PsdzTransactionInfo transactionInfo = psdzEvent.TransactionInfo; PsdzTaCategories transactionType = psdzEvent.TransactionType; if (transactionType != PsdzTaCategories.FscDeploy) { if (transactionType != PsdzTaCategories.SFADeploy) { ProgrammingActionType? programmingActionType = this.Map(transactionType); ProgrammingActionState?programmingActionState = this.Map(transactionInfo); if (programmingActionType != null && programmingActionState != null) { correspondingEcu.UpdateSingleProgrammingAction(programmingActionType.Value, programmingActionState.Value, false); return; } return; } } IEnumerable <IPsdzTalLine> talLines = from talLine in this.psdzContext.Tal.TalLines where talLine.EcuIdentifier.Equals(psdzEvent.EcuId) select talLine; correspondingEcu.UpdateProgrammingActions(talLines, false, 0); } return; } catch (Exception) { } }
internal void UpdateProgrammingActions(IPsdzTal tal, int escalationStep) { foreach (IPsdzEcuIdentifier psdzEcuIdentifier in tal.AffectedEcus) { EcuProgrammingInfo itemFromProgrammingInfos = this.GetItemFromProgrammingInfos((long)psdzEcuIdentifier.DiagAddrAsInt); if (itemFromProgrammingInfos != null) { IPsdzEcuIdentifier id = psdzEcuIdentifier; IEnumerable <IPsdzTalLine> talLines = from talLine in tal.TalLines where talLine.EcuIdentifier.Equals(id) select talLine; itemFromProgrammingInfos.UpdateProgrammingActions(talLines, true, escalationStep); } else { //Log.Warning("EcuProgrammingInfos.UpdateProgrammingActions", "Could not find ecu programming object for 0x{0:X2}", new object[] //{ // psdzEcuIdentifier.DiagAddrAsInt //}); } } }