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(); } }
/// <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()); }
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."); } }
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; } } } }
/// <summary> /// Constructor. /// </summary> public GXDLMSSeasonProfile(byte[] name, GXDateTime start, GXDLMSWeekProfile weekProfile) { Name = name; Start = start; WeekName = weekProfile.Name; }