private void OnDriverIdEventHandler(object sender, BlockStatusEventArgs stateEvent) { try { CNXLog.InfoFormat("DriverId {0}", stateEvent.State); if (stateEvent.State == BlockState.COMPLETE || stateEvent.State == BlockState.COMPLETE_REPEAT) { TransientBlockReciever reciever = (TransientBlockReciever)sender; if (reciever.BlockData.Length == 0) { mCommsServer.Send(RTTMesg.CreateDriverStatus(RTTMesg.RTTOutMsgIds.DriverLogoff)); } else if (reciever.BlockData[0] == 0) { mCommsServer.Send(RTTMesg.CreateDriverStatus(RTTMesg.RTTOutMsgIds.DriverLogoff)); } else { string driverId = Encoding.ASCII.GetString(reciever.BlockData); CNXLog.WarnFormat("DriverId {0}", driverId); mCommsServer.Send(RTTMesg.CreateDriverLogonMessage(driverId)); } } } catch (Exception e) { CNXLog.Error("OnDriverIdEventHandler", e); } }
private void FrameReceivedEventHandler(object o, FrameReceivedEventArgs a) { switch ((CNXMsgIds)a.Frame.MailboxId) { case CNXMsgIds.DriverMessageAck: mCommsServer.Send(RTTMesg.CreateDriverMessageAck(BitConverter.ToUInt16(a.Frame.Data, 0))); break; case CNXMsgIds.DriverStatus: CNXLog.WarnFormat("Driver status recieved {0}.", (CANLib.DriverStatus)a.Frame.Data[0]); RTTMesg.RTTOutMsgIds state = RTTMesg.RTTOutMsgIds.UNKNOWN; switch ((CANLib.DriverStatus)a.Frame.Data[0]) { case DriverStatus.Break: state = RTTMesg.RTTOutMsgIds.DriverStatusOnBreak; break; case DriverStatus.Normal: state = RTTMesg.RTTOutMsgIds.DriverStatusNormal; break; case DriverStatus.OutOfVehicle: state = RTTMesg.RTTOutMsgIds.DriverStatusOutOfVehicle; break; default: CNXLog.WarnFormat("CNXMsgIds.DriverStatus {0} out of range.", a.Frame.Data[0]); break; } if (state != RTTMesg.RTTOutMsgIds.UNKNOWN) { mCommsServer.Send(RTTMesg.CreateDriverStatus(state)); } break; default: break; } }