public RspChangeoverInfo ActivateKeyset(int keysetSuperseded, int keysetActivated) { RspChangeoverInfo result = new RspChangeoverInfo(); Begin(); try { ChangeoverCommand cmdKmmBody = new ChangeoverCommand(); cmdKmmBody.KeysetIdSuperseded = keysetSuperseded; cmdKmmBody.KeysetIdActivated = keysetActivated; KmmBody rspKmmBody = TxRxKmm(cmdKmmBody); if (rspKmmBody is ChangeoverResponse) { ChangeoverResponse kmm = rspKmmBody as ChangeoverResponse; result.KeysetIdSuperseded = kmm.KeysetIdSuperseded; result.KeysetIdActivated = kmm.KeysetIdActivated; } else if (rspKmmBody is NegativeAcknowledgment) { NegativeAcknowledgment kmm = rspKmmBody as NegativeAcknowledgment; string statusDescr = OperationStatusExtensions.ToStatusString(kmm.Status); string statusReason = OperationStatusExtensions.ToReasonString(kmm.Status); throw new Exception(string.Format("received negative acknowledgment{0}status: {1} (0x{2:X2}){0}{3}", Environment.NewLine, statusDescr, kmm.Status, statusReason)); } else { throw new Exception("unexpected kmm"); } } catch { End(); throw; } End(); return(result); }
/* TIA 102.AACD-A 3.7.2.3 */ public RspChangeoverInfo ActivateKeyset(int keysetSuperseded, int keysetActivated) { //cg RspChangeoverInfo result = new RspChangeoverInfo(); Begin(); try { ChangeoverCommand cmdKmmBody = new ChangeoverCommand(); cmdKmmBody.KeysetIdSuperseded = keysetSuperseded; cmdKmmBody.KeysetIdActivated = keysetActivated; KmmBody rspKmmBody = TxRxKmm(cmdKmmBody); if (rspKmmBody is ChangeoverResponse) { ChangeoverResponse kmm = rspKmmBody as ChangeoverResponse; /* * for (int i = 0; i < kmm.KeysetItems.Count; i++) * { * KeysetItem item = kmm.KeysetItems[i]; * * RspKeysetInfo res = new RspKeysetInfo(); * * res.KeysetId = item.KeysetId; * res.KeysetName = item.KeysetName; * res.KeysetType = item.KeysetType; * res.ActivationDateTime = item.ActivationDateTime; * res.ReservedField = item.ReservedField; * * result.Add(res); * } */ result.KeysetIdSuperseded = kmm.KeysetIdSuperseded; result.KeysetIdActivated = kmm.KeysetIdActivated; //Console.WriteLine("response status: {0}", kmm.Status); } else if (rspKmmBody is NegativeAcknowledgment) { NegativeAcknowledgment kmm = rspKmmBody as NegativeAcknowledgment; string statusDescr = OperationStatusExtensions.ToStatusString(kmm.Status); string statusReason = OperationStatusExtensions.ToReasonString(kmm.Status); throw new Exception(string.Format("received negative acknowledgment{0}status: {1} (0x{2:X2}){0}{3}", Environment.NewLine, statusDescr, kmm.Status, statusReason)); } else { throw new Exception("unexpected kmm"); } } catch { End(); throw; } End(); return(result); }