private void SaveGsmConfigClick(object sender, RoutedEventArgs e) { try { sconnSite toSave = sconnDataShare.getSite(_siteId); //load data to save for (int i = 0; i < ipcDefines.RAM_SMS_RECP_NO; i++) { TextBox inputname = (TextBox)_editViewControls["Recipient" + i]; CheckBox chkbx = (CheckBox)_editViewControls["RecipientEn" + i]; //TODO //toSave.siteCfg.gsmRcpts[i].NumberE164 = inputname.Text; //toSave.siteCfg.gsmRcpts[i].Enabled = (bool)chkbx.IsChecked; } if (_configManager.WriteSiteGsmCfg(toSave)) //try uploading changed device { sconnDataSrc filesrc = new sconnDataSrc(); filesrc.SaveConfig(DataSourceType.xml); } } catch (Exception) { throw; } }
public bool RemoveAt(int siteIndex) { if ((siteIndex > siteInc) || (siteIndex < 0)) { return(false); //cannot remove item over stack boundaries } try { for (int i = siteIndex; i < siteInc - 1; i++) { sites[i] = sites[i + 1]; } siteInc--; sconnSite[] newSites = new sconnSite[siteInc]; for (int i = 0; i < siteInc; i++) { newSites[i] = sites[i]; } sites = newSites; return(true); } catch (Exception) { return(false); } }
private void savePasswordBtn_Click(object sender, RoutedEventArgs e) { if (InputDataValid()) { sconnSite site = sconnDataShare.getSite(_siteId); byte[] passwdFormated = Encoding.UTF8.GetBytes(InputConfirmTb.Text.ToCharArray()); for (int i = 0; i < passwdFormated.GetLength(0); i++) { site.siteCfg.globalConfig.memCFG[ipcDefines.mAdrSitePasswd] = passwdFormated[i]; } //clear unused password bytes int passwdLen = passwdFormated.GetLength(0); for (int j = 0; j < ipcDefines.PasswordSize - passwdLen; j++) { site.siteCfg.globalConfig.memCFG[ipcDefines.mAdrSitePasswd + passwdLen + j] = 0; } if (_cfgMan.WriteGlobalCfg(site)) //upload changed password { site.authPasswd = InputConfirmTb.Text; //update runtime password for auth _configSource.SaveConfig(DataSourceType.xml); // save changes to file this.Close(); //close window after success } } else { System.Windows.MessageBox.Show("Password mismatch"); } }
public bool ConnectToSite() { try { Progress = ConnectionProgress.Connecting; sconnSite site = sconnDataShare.getSite(_siteId); Progress = ConnectionProgress.Authenticating; bool stat = _confMan.ReadSiteRunningConfig(site); //update if (stat) { Progress = ConnectionProgress.Success; Dispatcher.BeginInvoke((Action)(() => { ConnectedDel.Invoke(this, new EventArgs(), true, this._siteId); })); } else { Progress = ConnectionProgress.ConnectErr; } return(stat); } catch (Exception e) { Progress = ConnectionProgress.ConnectErr; return(false); } }
private void ConfigureSite(int siteId) { //write config to remote device sconnSite site = sconnDataShare.getSite(siteId); _configManager.WriteGlobalCfg(site); _configManager.WriteDeviceCfg(site); }
public void UpdateEditBody() { sconnSite site = sconnDataShare.getSite(_siteId); UpdateEdit(ref site); //reload view for changes this.Children.Clear(); this.Children.Add(_siteEditPanel); }
public SiteEditView(int siteId) { _siteId = siteId; _siteEditPanel = new StackPanel(); sconnSite site = sconnDataShare.getSite(siteId); UpdateEdit(ref site); }
public static bool addSite(sconnSite addsite) { if (addsite.serverIP == null || addsite.authPasswd == null) { return(false); } addsite.siteID = GetLastItemID() + 1; //set ID as last device, site was not created by DataShare sconnSites.Push(addsite); return(true); }
private void EditSiteData(int siteId) { //load site into gui sconnSite site = sconnDataShare.getSite(siteId); SiteNameInput.Text = site.siteName; SiteHostnameInput.Text = site.serverIP; SitePortInput.Text = site.serverPort.ToString(); SiteIntervalInput.Text = site.statusCheckInterval.ToString(); SitePasswordInput.Text = site.authPasswd; }
private void AddSiteButton_Click(object sender, RoutedEventArgs e) { sconnSite site = new sconnSite("DefaultSite", 10000, "192.168.1.100", 37222, "testpass"); //string siteName, int interval, string server, int port, string password // site.siteCfg.fillSampleCfg(); sconnDataShare.addSite(site); _sitesPanel.ReloadSitesFromShare(); _sitesPanel.SelectItem(site.siteID); //select current item for edit EditSiteData(site.siteID); //load item for edit InitSiteList(); //reload gui }
private void AddSiteToList(string ip, string hostname) { sconnSite site = new sconnSite(hostname, 10000, ip, 37222, "testpass"); // site.siteCfg.fillSampleCfg(); sconnDataShare.addSite(site); _sitesPanel.ReloadSitesFromShare(); _sitesPanel.SelectItem(site.siteID); //select current item for edit EditSiteData(site.siteID); //load item for edit InitSiteList(); //reload gui }
public static bool addSite(string hostname, int port, string password, string siteName) { if (hostname == null || password == null) { return(false); } sconnSite site = new sconnSite(siteName, 1000, hostname, port, password); sconnSites.Push(site); return(true); }
public bool WriteDeviceCfg(ref sconnSite site) { if (site.siteCfg == null) { return(false); } int devices = site.siteCfg.deviceNo; for (int i = 0; i < devices; i++) { WriteDeviceCfgSingle(ref site, i); }//each device return(true); }
public sconnSite Pop() { siteInc--; if (siteInc <= 0) { throw new InsufficientExecutionStackException(); } else { sconnSite poped = sites[siteInc]; sconnSite[] newSites = new sconnSite[siteInc]; sites.CopyTo(newSites, 0); return(poped); } }
public int getSiteDeviceNo(ref sconnSite site) { SconnClient client = new SconnClient(site.serverIP, site.serverPort, "testpass", true); int sites = 0; byte[] cmd = new byte[ipcDefines.NET_CMD_PACKET_LEN]; cmd[0] = ipcCMD.GET; cmd[1] = ipcCMD.getDevNo; byte[] resp = client.berkeleySendMsg(cmd); //ethernet.berkeleySendMsg(site.serverIP, cmd, site.serverPort); if (resp[0] == ipcCMD.SVAL) { sites = (int)resp[1]; // second byte is data, <SVAL> <DATA> <EVAL> } client.CloseConnection(); return(sites); }
public void Push(sconnSite site) { siteInc++; if (siteInc >= stackMaxSize) { throw new StackOverflowException(); } else { sconnSite[] newSites = new sconnSite[siteInc]; if (siteInc > 0) { sites.CopyTo(newSites, 0); } sites = newSites; sites[siteInc - 1] = site; } }
private sconnSite[] configFromXML(ref XmlDocument doc) { try { XmlNode config = doc.GetElementsByTagName(configFieldName)[0] as XmlNode; XmlNodeList siteElements = config.ChildNodes; sconnSite[] sites = new sconnSite[siteElements.Count]; for (int i = 0; i < siteElements.Count; i++) { sites[i] = siteFromXML(siteElements.Item(i)); } return(sites); } catch (Exception) { throw; } }
private void Bootstrap_FindAndLoad_UsbDevices() { USB usbcomm = new USB(); // usbcomm.UsbComm_Test_Trx(); // usbcomm.UsbComm_Sample_Trx(); bool usbConn = usbcomm.TestConnection(); if (usbConn) { sconnSite site = new sconnSite("USB_PROG", 400, "", 0, ""); //string siteName, int intervalMs, string server, int port, string password) site.UsbCom = true; sconnDataShare.addSite(site); _configManager.saveConfig(); } // string resp = usbcomm.ReadUsbBlocking(); // usbcomm.TransmitLoop(); }
private void siteEditSaveButton_Click(object sender, RoutedEventArgs e) { try { int siteId = _sitesPanel.SelectedItemId; sconnSite site = sconnDataShare.getSite(siteId); site.siteName = SiteNameInput.Text; site.serverIP = SiteHostnameInput.Text; site.serverPort = int.Parse(SitePortInput.Text); site.statusCheckInterval = int.Parse(SiteIntervalInput.Text); site.authPasswd = SitePasswordInput.Text; _configManager.saveConfig(); InitSiteList(); //reload gui ConfigChanged.Invoke(this, new EventArgs()); } catch (Exception err) { } }
private void SaveGlobalConfigClick(object sender, RoutedEventArgs e) { try { sconnSite toSave = sconnDataShare.getSite(_siteId); GbxConfigureSiteNames gnames = (GbxConfigureSiteNames)_editViewControls["GlobalNames"]; toSave.siteCfg.GlobalNameConfig = gnames.Serialize(); if (_configManager.WriteGlobalNamesCfg(toSave) && _configManager.WriteGlobalCfg(toSave)) //try uploading changed device { sconnDataSrc filesrc = new sconnDataSrc(); filesrc.SaveConfig(DataSourceType.xml); } } catch (Exception) { throw; } }
public bool updateSiteStatus(ref sconnSite site) //read I/O values { int devices = 0; if (site.siteCfg != null) { devices = site.siteCfg.deviceNo; } else { devices = getSiteDeviceNo(ref site); site.siteCfg = new ipcSiteConfig(devices); //init device configs } short siteMemAddr = (short)(ipcDefines.mAdrDevStart); try { for (int i = 0; i < devices; i++) { siteMemAddr = (short)(ipcDefines.mAdrDevStart + (i * ipcDefines.deviceConfigSize)); //device start addresss byte[] deviceCFG = new byte[ipcDefines.deviceConfigSize]; if (deviceCFG.GetLength(0) == ipcDefines.deviceConfigSize) { site.siteCfg.deviceConfigs[i].memCFG = deviceCFG; } else { return(false); } } } catch (Exception) { return(false); } return(true); }
private XElement siteToXMLlinq(sconnSite site) { XElement siteNode = new XElement("site" + site.siteID.ToString()); XElement statusCheckIntervalNode = new XElement("statusCheckInterval"); statusCheckIntervalNode.Value = site.statusCheckInterval.ToString(); siteNode.Add(statusCheckIntervalNode); XElement siteName = new XElement("siteName"); siteName.Value = site.siteName; siteNode.Add(siteName); XElement authPasswd = new XElement("authPasswd"); authPasswd.Value = site.authPasswd; siteNode.Add(authPasswd); XElement serverIP = new XElement("serverIP"); serverIP.Value = site.serverIP; siteNode.Add(serverIP); XElement serverPort = new XElement("serverPort"); serverPort.Value = site.serverPort.ToString(); siteNode.Add(serverPort); XElement ViewEnable = new XElement("ViewEnable"); ViewEnable.Value = site.ViewEnable.ToString(); siteNode.Add(ViewEnable); XElement siteID = new XElement("siteID"); siteID.Value = site.siteID.ToString(); siteNode.Add(siteID); XElement deviceNoNode = new XElement("element", "deviceNo", ""); deviceNoNode.Value = site.siteCfg.deviceNo.ToString(); siteNode.Add(deviceNoNode); XElement deviceConfigs = new XElement("element", "deviceConfigs", ""); string deviceData = ""; for (int i = 0; i < site.siteCfg.deviceNo; i++) { deviceData += Convert.ToBase64String(site.siteCfg.deviceConfigs[i].memCFG); } deviceConfigs.Value = deviceData; siteNode.Add(deviceConfigs); XElement globalConfig = new XElement("element", "globalConfig", ""); globalConfig.Value = Convert.ToBase64String(site.siteCfg.globalConfig.memCFG); siteNode.Add(globalConfig); return(siteNode); }
private void SaveDeviceConfigClick(object sender, RoutedEventArgs e, int devId) { //load data to save sconnSite toSave = sconnDataShare.getSite(_siteId); TextBox devicename = (TextBox)_editViewControls["Device" + devId.ToString()]; string dname = devicename.Text; toSave.siteCfg.deviceConfigs[devId].SetDeviceNameAt(0, dname); int inputsNo = toSave.siteCfg.deviceConfigs[devId].memCFG[ipcDefines.mAdrInputsNO]; int outputsNo = toSave.siteCfg.deviceConfigs[devId].memCFG[ipcDefines.mAdrOutputsNO]; int relayNo = toSave.siteCfg.deviceConfigs[devId].memCFG[ipcDefines.mAdrRelayNO]; int schedNo = ipcDefines.RAM_DEV_SCHED_NO; GbxConfigureInputsGroup gbxInputConfig = (GbxConfigureInputsGroup)_editViewControls["Input_Cfg" + devId]; for (int i = 0; i < inputsNo; i++) { TextBox inputname = (TextBox)_editViewControls["Input" + devId + "." + i]; string inname = inputname.Text; toSave.siteCfg.deviceConfigs[devId].SetDeviceNameAt(i + ipcDefines.mAddr_NAMES_Inputs_Pos, inname); toSave.siteCfg.deviceConfigs[devId].memCFG[ipcDefines.mAdrInput + i * ipcDefines.mAdrInputMemSize + ipcDefines.mAdrInputType] = gbxInputConfig.GetInputTypeAt(i); toSave.siteCfg.deviceConfigs[devId].memCFG[ipcDefines.mAdrInput + i * ipcDefines.mAdrInputMemSize + ipcDefines.mAdrInputAG] = gbxInputConfig.GetInputAgAt(i); } GbxConfigureOutputsGroup gbxOutputConfig = (GbxConfigureOutputsGroup)_editViewControls["Output_Cfg" + devId]; for (int i = 0; i < outputsNo; i++) { TextBox inputname = (TextBox)_editViewControls["Output" + devId + "." + i]; string inname = inputname.Text; toSave.siteCfg.deviceConfigs[devId].SetDeviceNameAt(i + ipcDefines.mAddr_NAMES_Outputs_Pos, inname); toSave.siteCfg.deviceConfigs[devId].memCFG[ipcDefines.mAdrOutput + i * ipcDefines.mAdrOutputMemSize + ipcDefines.mAdrOutputType] = gbxOutputConfig.GetOutputTypeAt(i); } //GbxConfigureOutputsGroup GbxOutputConfig = (GbxConfigureOutputsGroup)EditViewControls["Relay_Cfg" + devId + "." + i]; for (int i = 0; i < relayNo; i++) { TextBox inputname = (TextBox)_editViewControls["Relay" + devId]; string inname = inputname.Text; toSave.siteCfg.deviceConfigs[devId].SetDeviceNameAt(i + ipcDefines.mAddr_NAMES_Relays_Pos, inname); } //load schedules GbxConfigureSchedulesGroup gbxScheduleConfig = (GbxConfigureSchedulesGroup)_editViewControls["Sched_Cfg" + devId]; for (int i = 0; i < schedNo; i++) { toSave.siteCfg.deviceConfigs[devId].ScheduleCFG[i][ipcDefines.SCHED_TYPE_POS] = (byte)gbxScheduleConfig.GetScheduleTypeAt(i); toSave.siteCfg.deviceConfigs[devId].ScheduleCFG[i][ipcDefines.SCHED_ACTION_TYPE_POS] = (byte)gbxScheduleConfig.GetScheduleActionAt(i); byte[] frombytes = gbxScheduleConfig.GetDateTimeConfig(DateTimeType.FromDate, (byte)i); for (int j = 0; j < ipcDefines.RAM_DEV_SCHED_DATETIME_SIZE; j++) { toSave.siteCfg.deviceConfigs[devId].ScheduleCFG[i][ipcDefines.SCHED_TIME_FROM_POS + j] = frombytes[j]; } byte[] tobytes = gbxScheduleConfig.GetDateTimeConfig(DateTimeType.ToDate, (byte)i); for (int k = 0; k < ipcDefines.RAM_DEV_SCHED_DATETIME_SIZE; k++) { toSave.siteCfg.deviceConfigs[devId].ScheduleCFG[i][ipcDefines.SCHED_TIME_TO_POS + k] = frombytes[k]; } } //load net cfg DeviceNetworkConfig networkConfigPanel = (DeviceNetworkConfig)_editViewControls["Net_Cfg" + devId]; toSave.siteCfg.deviceConfigs[devId].NetworkConfig = networkConfigPanel.GetNetworkConfig(); //load dev auth cfg GbxConfigureAuthDevicesGroup dauthcfg = (GbxConfigureAuthDevicesGroup)_editViewControls["Device authorization " + devId]; toSave.siteCfg.deviceConfigs[devId].AuthDevicesCFG = dauthcfg.Serialize(); try { //TODO upload net cfg only on change bool netwrite = _configManager.WriteDeviceNetCfg(toSave, devId); bool devwrite = _configManager.WriteDeviceCfgSingle(toSave, devId); bool namewrite = _configManager.WriteDeviceNamesCfgSingle(toSave, devId); bool schedwrite = _configManager.WriteDeviceSchedulesCfgSingle(toSave, devId); bool dauthwrite = _configManager.WriteDeviceDevAuthCfgSingle(toSave, devId); if (devwrite || namewrite || schedwrite || schedwrite) //try uploading changed device { sconnDataSrc filesrc = new sconnDataSrc(); filesrc.SaveConfig(DataSourceType.xml); } } catch (Exception) { throw; } }
private void UpdateSite(sconnSite site) { _configManager.updateSiteConfig(site); //update status for each device ( read IO registers ) }
private void UpdateEdit(ref sconnSite site) { if (site.siteCfg != null) { int sites = site.siteCfg.deviceNo; this.Children.Clear(); _siteEditPanel.Children.Clear(); TabControl siteTabView = new TabControl(); /************* Global site config *******************/ if (site.siteCfg.globalConfig.memCFG != null) { TabItem globalTabItem = new TabItem(); globalTabItem.Header = "Site"; StackPanel globalCfgPanel = new StackPanel(); globalCfgPanel.Width = SconnView.ViewWidth; globalCfgPanel.Height = SconnView.ViewHeight; globalCfgPanel.HorizontalAlignment = HorizontalAlignment.Stretch; globalCfgPanel.VerticalAlignment = VerticalAlignment.Stretch; SolidColorBrush panelBrush = new SolidColorBrush(Colors.LightBlue); SolidColorBrush deviceBrush = new SolidColorBrush(Colors.SkyBlue); globalCfgPanel.Background = panelBrush; GroupBox siteGlobalCfgGroup = new GroupBox(); siteGlobalCfgGroup.Header = "Global config"; Grid siteCfgGrid = new Grid(); ColumnDefinition colDef1 = new ColumnDefinition(); ColumnDefinition colDef2 = new ColumnDefinition(); siteCfgGrid.ColumnDefinitions.Add(colDef1); siteCfgGrid.ColumnDefinitions.Add(colDef2); siteCfgGrid.Background = deviceBrush; string[] configFieldNames = { "Device Number", "Config 2", "Config 3", "Config 4", "Config 5", "Config 6", "Config 7", "Config 8" }; for (int k = 0; k < configFieldNames.GetLength(0); k++) { RowDefinition rowDef1 = new RowDefinition(); siteCfgGrid.RowDefinitions.Add(rowDef1); } for (int i = 0; i < configFieldNames.GetLength(0); i++) { Label globallabelDesc = new Label(); globallabelDesc.Content = configFieldNames[i]; Grid.SetRow(globallabelDesc, i); Grid.SetColumn(globallabelDesc, 0); siteCfgGrid.Children.Add(globallabelDesc); TextBox globalTextBox = new TextBox(); globalTextBox.Text = site.siteCfg.globalConfig.memCFG[ipcDefines.mAdrGlobalConfig + i].ToString(); Grid.SetRow(globalTextBox, i); Grid.SetColumn(globalTextBox, 1); siteCfgGrid.Children.Add(globalTextBox); } Button changePassButton = new Button(); changePassButton.Content = "Change password"; Grid.SetRow(changePassButton, 7); Grid.SetColumn(changePassButton, 0); changePassButton.Click += new RoutedEventHandler((sender, e) => ChangePasswordClick(sender, e)); siteCfgGrid.Children.Add(changePassButton); Button saveButton = new Button(); saveButton.Content = "Save "; Grid.SetRow(saveButton, 7); Grid.SetColumn(saveButton, 1); saveButton.Click += new RoutedEventHandler((sender, e) => SaveGlobalConfigClick(sender, e)); siteCfgGrid.Children.Add(saveButton); /******* GSM CONFIG *********/ Grid gsmCfgGrid = new Grid(); ColumnDefinition gsmcolDef1 = new ColumnDefinition(); ColumnDefinition gsmcolDef2 = new ColumnDefinition(); ColumnDefinition gsmcolDef3 = new ColumnDefinition(); gsmCfgGrid.ColumnDefinitions.Add(gsmcolDef1); gsmCfgGrid.ColumnDefinitions.Add(gsmcolDef2); gsmCfgGrid.ColumnDefinitions.Add(gsmcolDef3); gsmCfgGrid.Background = deviceBrush; GroupBox siteGsmCfgGroup = new GroupBox(); siteGsmCfgGroup.Header = "GSM config"; //TODO if (site.siteCfg.GsmConfig != null) { for (int k = 0; k < ipcDefines.RAM_SMS_RECP_NO + 1; k++) { RowDefinition rowDef1 = new RowDefinition(); gsmCfgGrid.RowDefinitions.Add(rowDef1); } for (int i = 0; i < ipcDefines.RAM_SMS_RECP_NO; i++) { Label globallabelDesc = new Label(); globallabelDesc.Content = "Recipient " + i.ToString(); Grid.SetRow(globallabelDesc, i); Grid.SetColumn(globallabelDesc, 0); gsmCfgGrid.Children.Add(globallabelDesc); CheckBox enBox = new CheckBox(); enBox.Content = "Enabled"; Grid.SetRow(enBox, i); Grid.SetColumn(enBox, 1); //TODO //enBox.IsChecked = site.siteCfg.gsmRcpts[i].Enabled; gsmCfgGrid.Children.Add(enBox); this._editViewControls.Add("RecipientEn" + i, enBox); TextBox globalTextBox = new TextBox(); //GlobalTextBox.Text = site.siteCfg.gsmRcpts[i].NumberE164; Grid.SetRow(globalTextBox, i); Grid.SetColumn(globalTextBox, 2); gsmCfgGrid.Children.Add(globalTextBox); this._editViewControls.Add("Recipient" + i, globalTextBox); } Button saveGsmButton = new Button(); saveGsmButton.Content = "Save"; Grid.SetRow(saveGsmButton, ipcDefines.RAM_SMS_RECP_NO); Grid.SetColumn(saveGsmButton, 0); saveGsmButton.Click += new RoutedEventHandler((sender, e) => SaveGsmConfigClick(sender, e)); gsmCfgGrid.Children.Add(saveGsmButton); } siteGlobalCfgGroup.Content = siteCfgGrid; globalCfgPanel.Children.Add(siteGlobalCfgGroup); GbxConfigureSiteNames namesGrp = new GbxConfigureSiteNames(site.siteCfg.GlobalNameConfig); globalCfgPanel.Children.Add(namesGrp); this._editViewControls.Add("GlobalNames", namesGrp); //TODO if (site.siteCfg.GsmConfig != null) { siteGsmCfgGroup.Content = gsmCfgGrid; globalCfgPanel.Children.Add(siteGsmCfgGroup); } globalTabItem.Content = globalCfgPanel; siteTabView.Items.Add(globalTabItem); } /************ Device configs *****************/ for (int i = 0; i < sites; i++) { TabItem deviceTabItem = new TabItem(); deviceTabItem.Header = "Dev " + site.siteCfg.deviceConfigs[i].memCFG[ipcDefines.mAdrDevID]; StackPanel deviceCfgPanel = new StackPanel(); deviceCfgPanel.Width = SconnView.ViewWidth; deviceCfgPanel.Height = SconnView.ViewHeight; deviceCfgPanel.HorizontalAlignment = HorizontalAlignment.Stretch; deviceCfgPanel.VerticalAlignment = VerticalAlignment.Stretch; SolidColorBrush panelBrush = new SolidColorBrush(Colors.LightBlue); SolidColorBrush deviceBrush = new SolidColorBrush(Colors.SkyBlue); deviceCfgPanel.Background = panelBrush; GroupBox deviceGlobalCfgGroup = new GroupBox(); deviceGlobalCfgGroup.Header = "Device global config"; Grid siteCfgGrid = new Grid(); ColumnDefinition colDef1 = new ColumnDefinition(); ColumnDefinition colDef2 = new ColumnDefinition(); siteCfgGrid.Background = deviceBrush; siteCfgGrid.ColumnDefinitions.Add(colDef1); siteCfgGrid.ColumnDefinitions.Add(colDef2); string[] deviceConfigFields = { "Device ID : ", "Device Domain : ", "Device Revision :", "Device Type : ", "Inputs : ", "Outputs : ", "Relays : ", "Keypad : ", "Temperature : ", "Humidity : ", "Pressure : " }; for (int k = 0; k < deviceConfigFields.GetLength(0); k++) { RowDefinition rowDef1 = new RowDefinition(); siteCfgGrid.RowDefinitions.Add(rowDef1); } for (int j = 0; j < deviceConfigFields.GetLength(0); j++) { Label fieldlabelDesc = new Label(); fieldlabelDesc.Content = deviceConfigFields[j]; Grid.SetRow(fieldlabelDesc, j); Grid.SetColumn(fieldlabelDesc, 0); siteCfgGrid.Children.Add(fieldlabelDesc); Label fieldlabelVal = new Label(); fieldlabelVal.Content = site.siteCfg.deviceConfigs[i].memCFG[j].ToString(); Grid.SetRow(fieldlabelVal, j); Grid.SetColumn(fieldlabelVal, 1); siteCfgGrid.Children.Add(fieldlabelVal); } deviceGlobalCfgGroup.Content = siteCfgGrid; /******** names **********/ GroupBox deviceNamesCfgGroup = new GroupBox(); deviceNamesCfgGroup.Header = "Device names config"; Grid siteNamesCfgGrid = new Grid(); siteNamesCfgGrid.Background = deviceBrush; ColumnDefinition nameCol1 = new ColumnDefinition(); ColumnDefinition nameCol2 = new ColumnDefinition(); siteNamesCfgGrid.ColumnDefinitions.Add(nameCol1); siteNamesCfgGrid.ColumnDefinitions.Add(nameCol2); int inputsNo = site.siteCfg.deviceConfigs[i].memCFG[ipcDefines.mAdrInputsNO]; int outputsNo = site.siteCfg.deviceConfigs[i].memCFG[ipcDefines.mAdrOutputsNO]; int relayNo = site.siteCfg.deviceConfigs[i].memCFG[ipcDefines.mAdrRelayNO]; string[] deviceNamesConfigFields = { "Device Name : ", "Input names : ", "Output names :", "Relay names : ", }; if (site.siteCfg.deviceConfigs[i].NamesCFG != null) { int totalrows = site.siteCfg.deviceConfigs[i].memCFG[ipcDefines.mAdrInputsNO] + site.siteCfg.deviceConfigs[i].memCFG[ipcDefines.mAdrOutputsNO] + site.siteCfg.deviceConfigs[i].memCFG[ipcDefines.mAdrRelayNO] + deviceConfigFields.GetLength(0) + 1; //save; for (int k = 0; k < totalrows; k++) { RowDefinition rowDef1 = new RowDefinition(); siteNamesCfgGrid.RowDefinitions.Add(rowDef1); } Label fieldDevlabelDesc = new Label(); fieldDevlabelDesc.Content = deviceNamesConfigFields[0]; Grid.SetRow(fieldDevlabelDesc, 0); Grid.SetColumn(fieldDevlabelDesc, 0); siteNamesCfgGrid.Children.Add(fieldDevlabelDesc); TextBox fieldDevlabelVal = new TextBox(); if (site.siteCfg.deviceConfigs[i].NamesCFG != null) { fieldDevlabelVal.Text = site.siteCfg.deviceConfigs[i].GetDeviceNameAt(0); } fieldDevlabelVal.MaxLength = 16; Grid.SetRow(fieldDevlabelVal, 0); Grid.SetColumn(fieldDevlabelVal, 1); siteNamesCfgGrid.Children.Add(fieldDevlabelVal); this._editViewControls.Add("Device" + i.ToString(), fieldDevlabelVal); //Inputs Label fieldDevInputlabelDesc = new Label(); fieldDevInputlabelDesc.Content = deviceNamesConfigFields[1]; Grid.SetRow(fieldDevInputlabelDesc, 1); Grid.SetColumn(fieldDevInputlabelDesc, 0); siteNamesCfgGrid.Children.Add(fieldDevInputlabelDesc); for (int o = 0; o < inputsNo; o++) { TextBox fieldDevInputlabelVal = new TextBox(); if (site.siteCfg.deviceConfigs[i].NamesCFG != null) { fieldDevInputlabelVal.Text = site.siteCfg.deviceConfigs[i].GetDeviceNameAt(o + 1); } fieldDevInputlabelVal.MaxLength = 16; Grid.SetRow(fieldDevInputlabelVal, 1 + o); Grid.SetColumn(fieldDevInputlabelVal, 1); siteNamesCfgGrid.Children.Add(fieldDevInputlabelVal); this._editViewControls.Add("Input" + i + "." + o, fieldDevInputlabelVal); } //outputs Label fieldDevOutputlabelDesc = new Label(); fieldDevOutputlabelDesc.Content = deviceNamesConfigFields[2]; Grid.SetRow(fieldDevOutputlabelDesc, 2 + inputsNo); Grid.SetColumn(fieldDevOutputlabelDesc, 0); siteNamesCfgGrid.Children.Add(fieldDevOutputlabelDesc); for (int o = 0; o < outputsNo; o++) { TextBox fieldDevOutputlabelVal = new TextBox(); if (site.siteCfg.deviceConfigs[i].NamesCFG != null) { fieldDevOutputlabelVal.Text = site.siteCfg.deviceConfigs[i].GetDeviceNameAt(o + ipcDefines.mAddr_NAMES_Outputs_Pos); } fieldDevOutputlabelVal.MaxLength = 16; Grid.SetRow(fieldDevOutputlabelVal, 3 + inputsNo + o); Grid.SetColumn(fieldDevOutputlabelVal, 1); siteNamesCfgGrid.Children.Add(fieldDevOutputlabelVal); this._editViewControls.Add("Output" + i + "." + o, fieldDevOutputlabelVal); } //relays Label fieldDevRelaylabelDesc = new Label(); fieldDevRelaylabelDesc.Content = deviceNamesConfigFields[3]; Grid.SetRow(fieldDevRelaylabelDesc, 3 + inputsNo + outputsNo); Grid.SetColumn(fieldDevRelaylabelDesc, 0); siteNamesCfgGrid.Children.Add(fieldDevRelaylabelDesc); for (int o = 0; o < relayNo; o++) { TextBox fieldDevRelaylabelVal = new TextBox(); if (site.siteCfg.deviceConfigs[i].NamesCFG != null) { fieldDevRelaylabelVal.Text = site.siteCfg.deviceConfigs[i].GetDeviceNameAt(o + ipcDefines.mAddr_NAMES_Relays_Pos); } fieldDevRelaylabelVal.MaxLength = 16; Grid.SetRow(fieldDevRelaylabelVal, 4 + inputsNo + outputsNo + o); Grid.SetColumn(fieldDevRelaylabelVal, 1); siteNamesCfgGrid.Children.Add(fieldDevRelaylabelVal); this._editViewControls.Add("Relay" + i + "." + o, fieldDevRelaylabelVal); } deviceNamesCfgGroup.Content = siteNamesCfgGrid; } /********** Output types ************/ GbxConfigureOutputsGroup gbxOutputConfig = new GbxConfigureOutputsGroup(site.siteCfg.deviceConfigs[i].memCFG, site.siteCfg.deviceConfigs[i].NamesCFG, outputsNo); this._editViewControls.Add("Output_Cfg" + i, gbxOutputConfig); /********** Input types ************/ GbxConfigureInputsGroup gbxInputConfig = new GbxConfigureInputsGroup(site.siteCfg.deviceConfigs[i].memCFG, site.siteCfg.deviceConfigs[i].NamesCFG, inputsNo); this._editViewControls.Add("Input_Cfg" + i, gbxInputConfig); /********** Relay types ************/ /********** Schedules ************/ GbxConfigureSchedulesGroup gbxScheduleConfig = new GbxConfigureSchedulesGroup(site.siteCfg.deviceConfigs[i].ScheduleCFG, ipcDefines.RAM_DEV_SCHED_NO); this._editViewControls.Add("Sched_Cfg" + i, gbxScheduleConfig); if (site.siteCfg.deviceConfigs[i].ScheduleCFG != null) { gbxScheduleConfig = new GbxConfigureSchedulesGroup(site.siteCfg.deviceConfigs[i].ScheduleCFG, ipcDefines.RAM_DEV_SCHED_NO); gbxScheduleConfig.ConfigChanged += GbxScheduleConfig_ConfigChanged; } Button saveButton = new Button(); saveButton.Content = "Save "; saveButton.SetValue(SiteId, i); saveButton.Click += new RoutedEventHandler((sender, e) => SaveDeviceConfigClick(sender, e, (int)saveButton.GetValue(SiteId))); /********** Authorized system devices ************/ GbxConfigureAuthDevicesGroup authcfgConfig = new GbxConfigureAuthDevicesGroup(); this._editViewControls.Add("Device authorization " + i, authcfgConfig); /*********** Network config **********/ GroupBox deviceNetCfgGroup = new GroupBox(); deviceNetCfgGroup.Header = "Network config"; Grid siteNetCfgGrid = new Grid(); ColumnDefinition netCol = new ColumnDefinition(); siteNetCfgGrid.Background = deviceBrush; siteNetCfgGrid.ColumnDefinitions.Add(netCol); RowDefinition netRow = new RowDefinition(); siteNetCfgGrid.RowDefinitions.Add(netRow); DeviceNetworkConfig networkConfigPanel = new DeviceNetworkConfig(site.siteCfg.deviceConfigs[i].NetworkConfig); this._editViewControls.Add("Net_Cfg" + i, networkConfigPanel); networkConfigPanel = new DeviceNetworkConfig(site.siteCfg.deviceConfigs[i].NetworkConfig); Grid.SetRow(networkConfigPanel, 0); Grid.SetColumn(networkConfigPanel, 0); siteNetCfgGrid.Children.Add(networkConfigPanel); deviceNetCfgGroup.Content = siteNetCfgGrid; deviceCfgPanel.Children.Add(deviceGlobalCfgGroup); deviceCfgPanel.Children.Add(deviceNamesCfgGroup); deviceCfgPanel.Children.Add(gbxOutputConfig); deviceCfgPanel.Children.Add(gbxInputConfig); deviceCfgPanel.Children.Add(gbxScheduleConfig); deviceCfgPanel.Children.Add(deviceNetCfgGroup); deviceCfgPanel.Children.Add(authcfgConfig); deviceCfgPanel.Children.Add(saveButton); deviceTabItem.Content = deviceCfgPanel; siteTabView.Items.Add(deviceTabItem); } SolidColorBrush panelBrush2 = new SolidColorBrush(Colors.DeepSkyBlue); _siteEditPanel.Background = panelBrush2; _siteEditPanel.Width = (double)SconnView.ViewWidth; _siteEditPanel.Height = (double)SconnView.ViewHeight; _siteEditPanel.HorizontalAlignment = HorizontalAlignment.Stretch; _siteEditPanel.VerticalAlignment = VerticalAlignment.Stretch; _siteEditPanel.Children.Add(siteTabView); this.Children.Add(_siteEditPanel); } //config is init else { } }
private XmlNode siteToXML(sconnSite site, ref XmlDocument doc) { XmlNode siteNode = doc.CreateNode("element", "site" + site.siteID.ToString(), ""); XmlNode statusCheckIntervalNode = doc.CreateNode("element", "statusCheckInterval", ""); statusCheckIntervalNode.InnerText = site.statusCheckInterval.ToString(); siteNode.AppendChild(statusCheckIntervalNode); XmlNode siteName = doc.CreateNode("element", "siteName", ""); siteName.InnerText = site.siteName; siteNode.AppendChild(siteName); XmlNode authPasswd = doc.CreateNode("element", "authPasswd", ""); authPasswd.InnerText = site.authPasswd; siteNode.AppendChild(authPasswd); XmlNode serverIP = doc.CreateNode("element", "serverIP", ""); serverIP.InnerText = site.serverIP; siteNode.AppendChild(serverIP); XmlNode serverPort = doc.CreateNode("element", "serverPort", ""); serverPort.InnerText = site.serverPort.ToString(); siteNode.AppendChild(serverPort); XmlNode ViewEnable = doc.CreateNode("element", "ViewEnable", ""); ViewEnable.InnerText = site.ViewEnable.ToString(); siteNode.AppendChild(ViewEnable); XmlNode siteID = doc.CreateNode("element", "siteID", ""); siteID.InnerText = site.siteID.ToString(); siteNode.AppendChild(siteID); XmlNode deviceNoNode = doc.CreateNode("element", "deviceNo", ""); deviceNoNode.InnerText = site.siteCfg.deviceNo.ToString(); siteNode.AppendChild(deviceNoNode); XmlNode deviceConfigs = doc.CreateNode("element", "deviceConfigs", ""); string deviceData = ""; for (int i = 0; i < site.siteCfg.deviceNo; i++) { deviceData += Convert.ToBase64String(site.siteCfg.deviceConfigs[i].memCFG); } deviceConfigs.InnerText = deviceData; siteNode.AppendChild(deviceConfigs); XmlNode globalConfig = doc.CreateNode("element", "globalConfig", ""); globalConfig.InnerText = Convert.ToBase64String(site.siteCfg.globalConfig.memCFG); siteNode.AppendChild(globalConfig); return(siteNode); }
public AlarmSystemDetailModel(List <sconnDevice> devices, sconnSite site) : this(devices) { Config = site; }
public CommSconnProtocol() { site = new sconnSite(); cfgMngr = new sconnCfgMngr(); }
public CommSconnProtocol() { connector = new iotConnector(); site = new sconnSite(); cfgMngr = new sconnCfgMngr(); }
private sconnSite siteFromXML(XmlNode siteNode) { sconnSite site = new sconnSite(); XmlNodeList nodes = siteNode.ChildNodes; for (int i = 0; i < nodes.Count; i++) { XmlNode node = nodes.Item(i); if (node.Name == "statusCheckInterval") { site.statusCheckInterval = int.Parse(node.InnerText); } else if (node.Name == "siteName") { site.siteName = node.InnerText; } else if (node.Name == "authPasswd") { site.authPasswd = node.InnerText; } else if (node.Name == "serverIP") { site.serverIP = node.InnerText; } else if (node.Name == "serverPort") { site.serverPort = int.Parse(node.InnerText); } else if (node.Name == "ViewEnable") { site.ViewEnable = bool.Parse(node.InnerText); } else if (node.Name == "deviceNo") { int deviceNo = int.Parse(node.InnerText); } else if (node.Name == "deviceConfigs") { //decode base64 first byte[] allDeviceCfg = Convert.FromBase64String(node.InnerText); if (allDeviceCfg.GetLength(0) > 0) { int deviceNo = allDeviceCfg.GetLength(0) / ipcDefines.deviceConfigSize; for (int j = 0; j < deviceNo; j++) { byte[] devConfig = new byte[ipcDefines.deviceConfigSize]; for (int k = 0; k < ipcDefines.deviceConfigSize; k++) { devConfig[k] = allDeviceCfg[j * ipcDefines.deviceConfigSize + k]; } site.siteCfg.addDeviceCfg(); site.siteCfg.deviceConfigs[j].memCFG = devConfig; } } } else if (node.Name == "globalConfig") { site.siteCfg.globalConfig.memCFG = Convert.FromBase64String(node.InnerText); } } return(site); }