Пример #1
0
        public static void LoadLanguageFile()
        {
            Descriptions.Clear();
            var resource = $"AssetViewer.Resources.Assets.Texts_{Language.ToString("G")}.xml";

            if (!Assembly.GetExecutingAssembly().GetManifestResourceNames().Contains(resource))
            {
                Language = Data.Languages.English;
                resource = $"AssetViewer.Resources.Assets.Texts_{Language.ToString("G")}.xml";
            }

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource))
                using (var reader = new StreamReader(stream)) {
                    var document = XDocument.Parse(reader.ReadToEnd()).Root;
                    foreach (var item in document.Elements())
                    {
                        Descriptions.Add(int.Parse(item.Attribute("ID").Value), item.Value);
                    }
                }
        }
Пример #2
0
        void IGXDLMSBase.SetValue(GXDLMSSettings settings, ValueEventArgs e)
        {
            switch (e.Index)
            {
            case 1:
                LogicalName = GXCommon.ToLogicalName(e.Value);
                break;

            case 2:
                Token = (byte[])e.Value;
                break;

            case 3:
                Time = (GXDateTime)GXDLMSClient.ChangeType((byte[])e.Value, DataType.DateTime, settings.UseUtc2NormalTime);
                break;

            case 4:
                Descriptions.Clear();
                if (e.Value != null)
                {
                    foreach (object it in (object[])e.Value)
                    {
                        Descriptions.Add(ASCIIEncoding.ASCII.GetString((byte[])it));
                    }
                }
                break;

            case 5:
                DeliveryMethod = (TokenDelivery)e.Value;
                break;

            case 6:
                StatusCode = (TokenStatusCode)((object[])e.Value)[0];
                DataValue  = Convert.ToString(((object[])e.Value)[1]);
                break;

            default:
                e.Error = ErrorCode.ReadWriteDenied;
                break;
            }
        }
Пример #3
0
        void IGXDLMSBase.Load(GXXmlReader reader)
        {
            Token = GXCommon.HexToBytes(reader.ReadElementContentAsString("Token"));
            string tmp = reader.ReadElementContentAsString("Time");

            if (tmp != null)
            {
                Time = new GXDateTime(tmp, System.Globalization.CultureInfo.InvariantCulture);
            }
            Descriptions.Clear();
            if (reader.IsStartElement("Descriptions", true))
            {
                while (reader.IsStartElement("Item", true))
                {
                    Descriptions.Add(reader.ReadElementContentAsString("Name"));
                }
                reader.ReadEndElement("Descriptions");
            }
            DeliveryMethod = (TokenDelivery)reader.ReadElementContentAsInt("DeliveryMethod");
            StatusCode     = (TokenStatusCode)reader.ReadElementContentAsInt("Status");
            DataValue      = reader.ReadElementContentAsString("Data");
        }
        void IGXDLMSBase.SetValue(GXDLMSSettings settings, ValueEventArgs e)
        {
            switch (e.Index)
            {
            case 1:
                LogicalName = GXCommon.ToLogicalName(e.Value);
                break;

            case 2:
                Token = (byte[])e.Value;
                break;

            case 3:
                if (e.Value is byte[])
                {
                    Time = (GXDateTime)GXDLMSClient.ChangeType((byte[])e.Value, DataType.DateTime, settings != null && settings.UseUtc2NormalTime);
                }
                else if (e.Value is string)
                {
                    Time = new GXDateTime((string)e.Value);
                }
                else
                {
                    Time = (GXDateTime)e.Value;
                }
                break;

            case 4:
                Descriptions.Clear();
                if (e.Value != null)
                {
                    foreach (object it in (IEnumerable <object>)e.Value)
                    {
                        Descriptions.Add(ASCIIEncoding.ASCII.GetString((byte[])it));
                    }
                }
                break;

            case 5:
                DeliveryMethod = (TokenDelivery)Convert.ToByte(e.Value);
                break;

            case 6:
                if (e.Value != null)
                {
                    List <object> arr;
                    if (e.Value is List <object> )
                    {
                        arr = (List <object>)e.Value;
                    }
                    else
                    {
                        arr = new List <object>((object[])e.Value);
                    }
                    StatusCode = (TokenStatusCode)Convert.ToInt32(arr[0]);
                    DataValue  = Convert.ToString(arr[1]);
                }
                else
                {
                    StatusCode = TokenStatusCode.FormatOk;
                    DataValue  = "";
                }
                break;

            default:
                e.Error = ErrorCode.ReadWriteDenied;
                break;
            }
        }