private void UpdateWeekProfile(GXDLMSWeekProfile it, ListViewItem li, ListView list)
        {
            string str;

            if (GXHelpers.IsAscii(it.Name))
            {
                str = ASCIIEncoding.ASCII.GetString(it.Name);
            }
            else
            {
                str = GXDLMSTranslator.ToHex(it.Name);
            }
            if (li == null)
            {
                li = list.Items.Add(str);
                li.SubItems.AddRange(new string[] { it.Monday.ToString(), it.Tuesday.ToString(),
                                                    it.Wednesday.ToString(), it.Thursday.ToString(), it.Friday.ToString(),
                                                    it.Saturday.ToString(), it.Sunday.ToString() });
                li.Tag = it;
            }
            else
            {
                li.SubItems[0].Text = str;
                li.SubItems[1].Text = it.Monday.ToString();
                li.SubItems[2].Text = it.Tuesday.ToString();
                li.SubItems[3].Text = it.Wednesday.ToString();
                li.SubItems[4].Text = it.Thursday.ToString();
                li.SubItems[5].Text = it.Friday.ToString();
                li.SubItems[6].Text = it.Saturday.ToString();
                li.SubItems[7].Text = it.Sunday.ToString();
            }
        }
示例#2
0
 /// <summary>
 /// Constructor.
 /// </summary>
 public GXDLMSSeasonProfile(string name, GXDateTime start, GXDLMSWeekProfile weekProfile)
 {
     if (name != null)
     {
         Name = ASCIIEncoding.ASCII.GetBytes(name);
     }
     Start = start;
     if (weekProfile != null)
     {
         WeekName = weekProfile.Name;
     }
 }
        private void RemoveWeekProfile(GXDLMSActivityCalendar target, int index, ListView lv)
        {
            List <GXDLMSWeekProfile> entries = new List <GXDLMSWeekProfile>();

            if (index == 3)
            {
                if (target.WeekProfileTableActive != null)
                {
                    entries.AddRange(target.WeekProfileTableActive);
                }
            }
            else
            {
                if (target.WeekProfileTablePassive != null)
                {
                    entries.AddRange(target.WeekProfileTablePassive);
                }
            }

            while (lv.SelectedItems.Count != 0)
            {
                ListViewItem      li   = lv.SelectedItems[0];
                GXDLMSWeekProfile item = (GXDLMSWeekProfile)li.Tag;
                li.Remove();
                errorProvider1.SetError(lv, Properties.Resources.ValueChangedTxt);
                if (index == 3)
                {
                    Target.UpdateDirty(index, target.WeekProfileTableActive);
                }
                else
                {
                    Target.UpdateDirty(index, target.WeekProfileTablePassive);
                }
                entries.Remove(item);
            }
            if (index == 3)
            {
                target.WeekProfileTableActive = entries.ToArray();
            }
            else
            {
                target.WeekProfileTablePassive = entries.ToArray();
            }
        }
        private void AddWeekProfile(GXDLMSActivityCalendar target, int index, ListView li)
        {
            GXDLMSWeekProfile item = new GXDLMSWeekProfile();

            GXDLMSWeekProfile[] list;
            GXDLMSDayProfile[]  days;
            if (index == 3)
            {
                list = target.WeekProfileTableActive;
                days = target.DayProfileTableActive;
            }
            else
            {
                list = target.WeekProfileTablePassive;
                days = target.DayProfileTablePassive;
            }

            GXDLMSActivityCalendarWeekProfileDlg dlg = new GXDLMSActivityCalendarWeekProfileDlg(item, days);

            if (dlg.ShowDialog(this) == DialogResult.OK)
            {
                List <GXDLMSWeekProfile> items = new List <GXDLMSWeekProfile>();
                if (list != null)
                {
                    items.AddRange(list);
                }
                items.Add(item);
                if (index == 4)
                {
                    target.WeekProfileTableActive = items.ToArray();
                }
                else
                {
                    target.WeekProfileTablePassive = items.ToArray();
                }
                UpdateWeekProfile(item, null, li);
                errorProvider1.SetError(li, Properties.Resources.ValueChangedTxt);
                target.UpdateDirty(index, list);
            }
        }
 static GXDLMSWeekProfile[] SetWeekProfileTable(GXDLMSSettings settings, Object value)
 {
     if (value != null)
     {
         List <GXDLMSWeekProfile> items = new List <GXDLMSWeekProfile>();
         foreach (object[] item in (object[])value)
         {
             GXDLMSWeekProfile it = new GXDLMSWeekProfile();
             it.Name      = (byte[])item[0];
             it.Monday    = Convert.ToInt32(item[1]);
             it.Tuesday   = Convert.ToInt32(item[2]);
             it.Wednesday = Convert.ToInt32(item[3]);
             it.Thursday  = Convert.ToInt32(item[4]);
             it.Friday    = Convert.ToInt32(item[5]);
             it.Saturday  = Convert.ToInt32(item[6]);
             it.Sunday    = Convert.ToInt32(item[7]);
             items.Add(it);
         }
         return(items.ToArray());
     }
     return(null);
 }
 static GXDLMSWeekProfile[] SetWeekProfileTable(GXDLMSSettings settings, Object value)
 {
     if (value != null)
     {
         List <GXDLMSWeekProfile> items = new List <GXDLMSWeekProfile>();
         List <object>            arr, item;
         if (value is List <object> )
         {
             arr = (List <object>)value;
         }
         else
         {
             arr = new List <object>((object[])value);
         }
         foreach (object tmp in arr)
         {
             if (tmp is List <object> )
             {
                 item = (List <object>)tmp;
             }
             else
             {
                 item = new List <object>((object[])tmp);
             }
             GXDLMSWeekProfile it = new GXDLMSWeekProfile();
             it.Name      = (byte[])item[0];
             it.Monday    = Convert.ToInt32(item[1]);
             it.Tuesday   = Convert.ToInt32(item[2]);
             it.Wednesday = Convert.ToInt32(item[3]);
             it.Thursday  = Convert.ToInt32(item[4]);
             it.Friday    = Convert.ToInt32(item[5]);
             it.Saturday  = Convert.ToInt32(item[6]);
             it.Sunday    = Convert.ToInt32(item[7]);
             items.Add(it);
         }
         return(items.ToArray());
     }
     return(null);
 }
 static GXDLMSWeekProfile[] SetWeekProfileTable(GXDLMSSettings settings, Object value)
 {
     if (value != null)
     {
         List <GXDLMSWeekProfile> items = new List <GXDLMSWeekProfile>();
         foreach (object[] item in (object[])value)
         {
             GXDLMSWeekProfile it = new GXDLMSWeekProfile();
             it.Name      = GXDLMSClient.ChangeType((byte[])item[0], DataType.String, settings.UseUtc2NormalTime).ToString();
             it.Monday    = Convert.ToInt32(item[1]);
             it.Tuesday   = Convert.ToInt32(item[2]);
             it.Wednesday = Convert.ToInt32(item[3]);
             it.Thursday  = Convert.ToInt32(item[4]);
             it.Friday    = Convert.ToInt32(item[5]);
             it.Saturday  = Convert.ToInt32(item[6]);
             it.Sunday    = Convert.ToInt32(item[7]);
             items.Add(it);
         }
         return(items.ToArray());
     }
     return(null);
 }
        private void EditWeekProfile(GXDLMSActivityCalendar target, GXDLMSWeekProfile[] list, int index, ListViewItem li, ListView lv)
        {
            GXDLMSWeekProfile item = (GXDLMSWeekProfile)li.Tag;

            GXDLMSDayProfile[] days;
            if (index == 3)
            {
                days = target.DayProfileTableActive;
            }
            else
            {
                days = target.DayProfileTablePassive;
            }

            GXDLMSActivityCalendarWeekProfileDlg dlg = new GXDLMSActivityCalendarWeekProfileDlg(item, days);

            if (dlg.ShowDialog(this) == DialogResult.OK)
            {
                UpdateWeekProfile(item, li, lv);
                errorProvider1.SetError(lv, Properties.Resources.ValueChangedTxt);
                Target.UpdateDirty(index, list);
            }
        }
        private static GXDLMSWeekProfile[] LoadWeekProfileTable(GXXmlReader reader, string name)
        {
            List <GXDLMSWeekProfile> list = new List <GXDLMSWeekProfile>();

            if (reader.IsStartElement(name, true))
            {
                while (reader.IsStartElement("Item", true))
                {
                    GXDLMSWeekProfile it = new GXDLMSWeekProfile();
                    it.Name      = GXDLMSTranslator.HexToBytes(reader.ReadElementContentAsString("Name"));
                    it.Monday    = reader.ReadElementContentAsInt("Monday");
                    it.Tuesday   = reader.ReadElementContentAsInt("Tuesday");
                    it.Wednesday = reader.ReadElementContentAsInt("Wednesday");
                    it.Thursday  = reader.ReadElementContentAsInt("Thursday");
                    it.Friday    = reader.ReadElementContentAsInt("Friday");
                    it.Saturday  = reader.ReadElementContentAsInt("Saturday");
                    it.Sunday    = reader.ReadElementContentAsInt("Sunday");
                    list.Add(it);
                }
                reader.ReadEndElement(name);
            }
            return(list.ToArray());
        }
示例#10
0
 void IGXDLMSBase.SetValue(int index, object value)
 {
     if (index == 1)
     {
         if (value is string)
         {
             LogicalName = value.ToString();
         }
         else
         {
             LogicalName = GXDLMSClient.ChangeType((byte[])value, DataType.OctetString).ToString();
         }
     }
     else if (index == 2)
     {
         if (value is byte[])
         {
             CalendarNameActive = GXDLMSClient.ChangeType((byte[])value, DataType.String).ToString();
         }
         else
         {
             CalendarNameActive = Convert.ToString(value);
         }
     }
     else if (index == 3)
     {
         SeasonProfileActive = null;
         if (value != null)
         {
             List <GXDLMSSeasonProfile> items = new List <GXDLMSSeasonProfile>();
             foreach (object[] item in (object[])value)
             {
                 GXDLMSSeasonProfile it = new GXDLMSSeasonProfile();
                 it.Name     = GXDLMSClient.ChangeType((byte[])item[0], DataType.String).ToString();
                 it.Start    = (GXDateTime)GXDLMSClient.ChangeType((byte[])item[1], DataType.DateTime);
                 it.WeekName = GXDLMSClient.ChangeType((byte[])item[2], DataType.String).ToString();
                 items.Add(it);
             }
             SeasonProfileActive = items.ToArray();
         }
     }
     else if (index == 4)
     {
         WeekProfileTableActive = null;
         if (value != null)
         {
             List <GXDLMSWeekProfile> items = new List <GXDLMSWeekProfile>();
             foreach (object[] item in (object[])value)
             {
                 GXDLMSWeekProfile it = new GXDLMSWeekProfile();
                 it.Name      = GXDLMSClient.ChangeType((byte[])item[0], DataType.String).ToString();
                 it.Monday    = Convert.ToInt32(item[1]);
                 it.Tuesday   = Convert.ToInt32(item[2]);
                 it.Wednesday = Convert.ToInt32(item[3]);
                 it.Thursday  = Convert.ToInt32(item[4]);
                 it.Friday    = Convert.ToInt32(item[5]);
                 it.Saturday  = Convert.ToInt32(item[6]);
                 it.Sunday    = Convert.ToInt32(item[7]);
                 items.Add(it);
             }
             WeekProfileTableActive = items.ToArray();
         }
     }
     else if (index == 5)
     {
         DayProfileTableActive = null;
         if (value != null)
         {
             List <GXDLMSDayProfile> items = new List <GXDLMSDayProfile>();
             foreach (object[] item in (object[])value)
             {
                 GXDLMSDayProfile it = new GXDLMSDayProfile();
                 it.DayId = Convert.ToInt32(item[0]);
                 List <GXDLMSDayProfileAction> actions = new List <GXDLMSDayProfileAction>();
                 foreach (object[] it2 in (object[])item[1])
                 {
                     GXDLMSDayProfileAction ac = new GXDLMSDayProfileAction();
                     ac.StartTime         = (GXDateTime)GXDLMSClient.ChangeType((byte[])it2[0], DataType.Time);
                     ac.ScriptLogicalName = GXDLMSClient.ChangeType((byte[])it2[1], DataType.String).ToString();
                     ac.ScriptSelector    = Convert.ToUInt16(it2[2]);
                     actions.Add(ac);
                 }
                 it.DaySchedules = actions.ToArray();
                 items.Add(it);
             }
             DayProfileTableActive = items.ToArray();
         }
     }
     else if (index == 6)
     {
         if (value is byte[])
         {
             CalendarNamePassive = GXDLMSClient.ChangeType((byte[])value, DataType.String).ToString();
         }
         else
         {
             CalendarNamePassive = Convert.ToString(value);
         }
     }
     else if (index == 7)
     {
         SeasonProfilePassive = null;
         if (value != null)
         {
             List <GXDLMSSeasonProfile> items = new List <GXDLMSSeasonProfile>();
             foreach (object[] item in (object[])value)
             {
                 GXDLMSSeasonProfile it = new GXDLMSSeasonProfile();
                 it.Name     = GXDLMSClient.ChangeType((byte[])item[0], DataType.String).ToString();
                 it.Start    = (GXDateTime)GXDLMSClient.ChangeType((byte[])item[1], DataType.DateTime);
                 it.WeekName = GXDLMSClient.ChangeType((byte[])item[2], DataType.String).ToString();
                 items.Add(it);
             }
             SeasonProfilePassive = items.ToArray();
         }
     }
     else if (index == 8)
     {
         WeekProfileTablePassive = null;
         if (value != null)
         {
             List <GXDLMSWeekProfile> items = new List <GXDLMSWeekProfile>();
             foreach (object[] item in (object[])value)
             {
                 GXDLMSWeekProfile it = new GXDLMSWeekProfile();
                 it.Name      = GXDLMSClient.ChangeType((byte[])item[0], DataType.String).ToString();
                 it.Monday    = Convert.ToInt32(item[1]);
                 it.Tuesday   = Convert.ToInt32(item[2]);
                 it.Wednesday = Convert.ToInt32(item[3]);
                 it.Thursday  = Convert.ToInt32(item[4]);
                 it.Friday    = Convert.ToInt32(item[5]);
                 it.Saturday  = Convert.ToInt32(item[6]);
                 it.Sunday    = Convert.ToInt32(item[7]);
                 items.Add(it);
             }
             WeekProfileTablePassive = items.ToArray();
         }
     }
     else if (index == 9)
     {
         DayProfileTablePassive = null;
         if (value != null)
         {
             List <GXDLMSDayProfile> items = new List <GXDLMSDayProfile>();
             foreach (object[] item in (object[])value)
             {
                 GXDLMSDayProfile it = new GXDLMSDayProfile();
                 it.DayId = Convert.ToInt32(item[0]);
                 List <GXDLMSDayProfileAction> actions = new List <GXDLMSDayProfileAction>();
                 foreach (object[] it2 in (object[])item[1])
                 {
                     GXDLMSDayProfileAction ac = new GXDLMSDayProfileAction();
                     ac.StartTime         = (GXDateTime)GXDLMSClient.ChangeType((byte[])it2[0], DataType.Time);
                     ac.ScriptLogicalName = GXDLMSClient.ChangeType((byte[])it2[1], DataType.String).ToString();
                     ac.ScriptSelector    = Convert.ToUInt16(it2[2]);
                     actions.Add(ac);
                 }
                 it.DaySchedules = actions.ToArray();
                 items.Add(it);
             }
             DayProfileTablePassive = items.ToArray();
         }
     }
     else if (index == 10)
     {
         if (value is byte[])
         {
             Time = (GXDateTime)GXDLMSClient.ChangeType((byte[])value, DataType.DateTime);
         }
         else
         {
             Time = new GXDateTime(Convert.ToDateTime(value));
         }
     }
     else
     {
         throw new ArgumentException("SetValue failed. Invalid attribute index.");
     }
 }
示例#11
0
        public GXDLMSActivityCalendarWeekProfileDlg(GXDLMSWeekProfile target, GXDLMSDayProfile[] days)
        {
            InitializeComponent();
            Target           = target;
            AsciiBtn.Checked = GXHelpers.IsAscii(Target.Name);
            NameTb.Text      = GXHelpers.GetString(Target.Name);
            if (days == null || days.Length == 0)
            {
                MondayCb.Enabled     = TuesdayCb.Enabled = WednesdayCb.Enabled = ThursdayCb.Enabled =
                    FridayCb.Enabled = SaturdayCb.Enabled = SundayCb.Enabled = OkBtn.Enabled = false;
            }
            else
            {
                MondayCb.Items.AddRange(days);
                TuesdayCb.Items.AddRange(days);
                WednesdayCb.Items.AddRange(days);
                ThursdayCb.Items.AddRange(days);
                FridayCb.Items.AddRange(days);
                SaturdayCb.Items.AddRange(days);
                SundayCb.Items.AddRange(days);

                foreach (GXDLMSDayProfile it in days)
                {
                    if (it.DayId == Target.Monday)
                    {
                        MondayCb.SelectedItem = it;
                        break;
                    }
                }
                foreach (GXDLMSDayProfile it in days)
                {
                    if (it.DayId == Target.Tuesday)
                    {
                        TuesdayCb.SelectedItem = it;
                        break;
                    }
                }
                foreach (GXDLMSDayProfile it in days)
                {
                    if (it.DayId == Target.Wednesday)
                    {
                        WednesdayCb.SelectedItem = it;
                        break;
                    }
                }
                foreach (GXDLMSDayProfile it in days)
                {
                    if (it.DayId == Target.Thursday)
                    {
                        ThursdayCb.SelectedItem = it;
                        break;
                    }
                }
                foreach (GXDLMSDayProfile it in days)
                {
                    if (it.DayId == Target.Friday)
                    {
                        FridayCb.SelectedItem = it;
                        break;
                    }
                }
                foreach (GXDLMSDayProfile it in days)
                {
                    if (it.DayId == Target.Saturday)
                    {
                        SaturdayCb.SelectedItem = it;
                        break;
                    }
                }
                foreach (GXDLMSDayProfile it in days)
                {
                    if (it.DayId == Target.Sunday)
                    {
                        SundayCb.SelectedItem = it;
                        break;
                    }
                }
            }
        }
示例#12
0
 /// <summary>
 /// Constructor.
 /// </summary>
 public GXDLMSSeasonProfile(byte[] name, GXDateTime start, GXDLMSWeekProfile weekProfile)
 {
     Name     = name;
     Start    = start;
     WeekName = weekProfile.Name;
 }