//序列化
    public static void SerializedZhaJiDeviceInfoCollection(UInt16 stationIndex, DeviceType deviceType, int count, float[,] angles, string filePath)
    {
        ZhaJiDeviceInfoCollection collection = new ZhaJiDeviceInfoCollection();

        for (int i = 1; i <= angles.GetLength(0); ++i)
        {
            //闸机
            ZhaJiDeviceInfo zhaJiDeviceInfo = new ZhaJiDeviceInfo();
            zhaJiDeviceInfo.Name            = "闸机";
            zhaJiDeviceInfo.StationIndex    = stationIndex;
            zhaJiDeviceInfo.DeviceId        = (int)deviceType + i;
            zhaJiDeviceInfo.DeviceType      = (int)deviceType;
            zhaJiDeviceInfo.LeftOpenAngleX  = angles[i - 1, 0];
            zhaJiDeviceInfo.LeftOpenAngleY  = angles[i - 1, 1];
            zhaJiDeviceInfo.LeftOpenAngleZ  = angles[i - 1, 2];
            zhaJiDeviceInfo.RightOpenAngleX = angles[i - 1, 3];
            zhaJiDeviceInfo.RightOpenAngleY = angles[i - 1, 4];
            zhaJiDeviceInfo.RightOpenAngleZ = angles[i - 1, 5];
            collection.AddZhaJiDeviceInfo(zhaJiDeviceInfo);
        }
        FileStream fileStream = new FileStream(filePath,
                                               FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
        StreamWriter  sw  = new StreamWriter(fileStream, System.Text.Encoding.UTF8);
        XmlSerializer xml = new XmlSerializer(collection.GetType());

        xml.Serialize(sw, collection);
        sw.Close();
        fileStream.Close();
    }
    //反序列化
    public static ZhaJiDeviceInfoCollection DeserializedZhaJiDeviceInfoCollection(string filePath)
    {
        FileStream                fs         = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
        XmlSerializer             xml        = new XmlSerializer(typeof(ZhaJiDeviceInfoCollection));
        ZhaJiDeviceInfoCollection collection = (ZhaJiDeviceInfoCollection)xml.Deserialize(fs);

        fs.Close();
        return(collection);
    }
예제 #3
0
 private static void CreateZhaJiDeviceInfoXmlAboutStation0()
 {
     ZhaJiDeviceInfoCollection.SerializedZhaJiDeviceInfoCollectionAtStation0();
 }