コード例 #1
0
        private void processPacket(object sender, DataEventArgs args)
        {
            byte[] data   = args.Data;
            int    offset = args.Offset;
            int    count  = args.Count;

            LogosRecord result;

            LogosRecordType type = (LogosRecordType)data[5];

            switch (type)
            {
            case LogosRecordType.VehicleState:
            {
                LogosVehicleStateRecord r = new LogosVehicleStateRecord();
                r.TickCount = BitConverter.ToInt32(data, offset + 6);
                r.Value     = BitConverter.ToUInt32(data, offset + 10);
                result      = r;
            }
            break;

            case LogosRecordType.TrafficControlState:
            {
                LogosTrafficControlStateRecord r = new LogosTrafficControlStateRecord();
                r.TickCount = BitConverter.ToInt32(data, offset + 6);
                r.Value     = BitConverter.ToUInt64(data, offset + 10);
                result      = r;
            }
            break;

            default:
                result = new LogosRecord();
                break;
            }
            if (RecordReceived != null)
            {
                RecordReceived(this, new LogosEventArgs(result));
            }
        }
コード例 #2
0
 public LogosEventArgs(LogosRecord r)
 {
     Record = r;
 }