private void button6_Click(object sender, EventArgs e) { if (AntennaList.Count > 0 && txtIP.Text != "") { Reader r = new Reader(); r.IPaddress = txtIP.Text; r.numAntennas = AntennaList.Count; for (int i = 0; i < r.numAntennas; i++) { antenna a = new antenna(); a.antennaNumber = Int32.Parse(AntennaList[i].PortNumber); a.rxPower = AntennaList[i].RXPower; a.txPower = AntennaList[i].TXPower; r.antenna.Add(a); } reader.Add(r); comboBoxStore.Enabled = true; txtSettingsName.Enabled = true; dataGridViewReaders.Enabled = true; buttonAddReader.Enabled = true; buttonRemoveReader.Enabled = true; dataGridViewReaders.Rows.Clear(); for (int x = 0; x < reader.Count; x++) { dataGridViewReaders.Rows.Add(reader[x].IPaddress, reader[x].numAntennas); } panel1.Visible = false; txtIP.Text = ""; AntennaList.Clear(); flpAntennaConfig.Controls.Clear(); } }
/*将指定reader下的所有天线信息保存到内存中*/ private bool updateSettings_saveAntennaInfo(ref Reader stReader) { int iReaderId = stReader.ReaderID; Log.WriteLog(LogType.Trace, "come in updateSettings_saveAntennaInfo"); try { Log.WriteLog(LogType.Trace, "goto get reader[" + iReaderId + "] all antenas info."); string sAntSql = "select AntennaID, TxPower, RxPower, AntennaNumber, ReaderID from Antenna where ReaderID = " + iReaderId + ";"; DataSet stAntDs = SqlAccess.GetDataSet(sAntSql); DataTable stAntDt = stAntDs.Tables[0]; if (stAntDt.Rows.Count > 0) { Log.WriteLog(LogType.Trace, "there are " + stAntDt.Rows.Count + " antenna in reader[" + iReaderId + "] "); for (int iARowIdx = 0; iARowIdx < stAntDt.Rows.Count; iARowIdx++) { StringBuilder sLog = new StringBuilder(); antenna stAntenna = new antenna(); DataRow stAntDr = stAntDt.Rows[iARowIdx]; stAntenna.rxPower = decimal.Parse(stAntDr["RxPower"].ToString()); stAntenna.txPower = decimal.Parse(stAntDr["TxPower"].ToString()); stAntenna.antennaNumber = int.Parse(stAntDr["AntennaNumber"].ToString()); stAntenna.AntennaID = int.Parse(stAntDr["AntennaID"].ToString()); stAntenna.ReaderID = int.Parse(stAntDr["ReaderID"].ToString()); stReader.antenna.Add(stAntenna); sLog.Clear(); sLog.AppendFormat("success to set antenna row[{0}] info into memery \r\n", iARowIdx); sLog.AppendFormat("the antenna info:id[{0}], txPower[{1}], rxPower[{2}], antennaNumber[{3}], readerID[{4}]", stAntDr["AntennaID"], stAntDr["TxPower"], stAntDr["RxPower"], stAntDr["AntennaNumber"], stAntDr["ReaderID"]); Log.WriteLog(LogType.Trace, sLog); } } else { Log.WriteLog(LogType.Trace, "there is not antenna record in reader[" + iReaderId + "]"); } } catch (Exception ex) { return(false); } return(true); }
private void OnEnable() { //initalize modifiable variables a = (antenna)target; targetObject = new UnityEditor.SerializedObject(a); serializedJoints = targetObject.FindProperty("joints"); serializedMaxRotation = targetObject.FindProperty("maxRotation"); serializedLastPosition = targetObject.FindProperty("lastPosition"); serializedLastVelocity = targetObject.FindProperty("lastVelocity"); serializedBendFactor = targetObject.FindProperty("bendFactor"); serializedRoots = targetObject.FindProperty("roots"); serializedDamper = targetObject.FindProperty("damper"); serializedSpringConstant = targetObject.FindProperty("springConstant"); serializedRestCond = targetObject.FindProperty("restCond"); serializedVelocityTriggerX = targetObject.FindProperty("velocityTriggerX"); serializedVelocityTriggerY = targetObject.FindProperty("velocityTriggerY"); }
/*向reader增加一个天线信息*/ public static bool SA_AddAntenna(antenna stAntenna, int iReaderId) { StringBuilder sLogStr = new StringBuilder(); int iAntennaId; sLogStr.AppendFormat("come in SA_AddAntennas \r\n antennaNumber[{0}], txPower[{1}], rxPower[{2}], readerId[{3}] ", stAntenna.antennaNumber, stAntenna.txPower, stAntenna.rxPower, iReaderId); Log.WriteLog(LogType.Trace, sLogStr); try { LTS.Antenna oAntenna = new LTS.Antenna(); //lts下的数据类型,用来保存将要和数据库交互的数据 oAntenna.AntennaNumber = stAntenna.antennaNumber; oAntenna.TxPower = stAntenna.txPower; oAntenna.RxPower = stAntenna.rxPower; oAntenna.ReaderID = iReaderId; iAntennaId = DAT.DataAccess.AddAntenna(oAntenna); if (iAntennaId == -1) { Log.WriteLog(LogType.Error, "error to call DataAccess.AddAntenna"); return(false); } sLogStr.Length = 0; sLogStr.AppendFormat("success to add antenna record with id[{0}],AntennaNumber[{1}],TxPower[{2}],RxPower[{3}],ReaderID[{4}]", iAntennaId, oAntenna.AntennaNumber, oAntenna.TxPower, oAntenna.RxPower, oAntenna.ReaderID); Log.WriteLog(LogType.Trace, sLogStr); return(true); } catch (Exception ex) { Log.WriteLog(LogType.Error, "TraceLog Error:" + ex.Message.ToString()); return(false); } }
/*处理读写器submit点击事件:添加一个读写器对象,并将其加入读写器队列*/ private void addSettings_antennaSubmit_Click(object sender, EventArgs e) { Log.WriteLog(LogType.Trace, "come in addSetting_antennaSubmit_Click"); if (AntennaList.Count > 0 && txtIP.Text != "") { Reader stReader = new Reader(); /*判断 txtIP地址合法性*/ { string sIp = txtIP.Text; Regex rx = new Regex(@"((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))"); if (!rx.IsMatch(sIp)) { Log.WriteLog(LogType.Trace, "the ip[" + sIp + "] format is invariable, can not create reader"); MessageBox.Show("Is not IP address"); return; } /*判断该ip在该store和setting下是否已经配置过,如果是,则先删除之前的reader配置,才能配置新的*/ string sSql = "SELECT Reader.ReaderID FROM Reader " + "JOIN Settings ON Reader.SettingsID = Settings.SettingsID " + "JOIN Store ON Settings.StoreID = Store.StoreID " + "WHERE Store.StoreID = " + giStoreId + " and Settings.SettingsName = '" + txtSettingsName.Text + "' and Reader.IPaddress = '" + txtIP.Text + "';"; try { DataSet stDs = SqlAccess.GetDataSet(sSql); if (stDs.Tables[0].Rows.Count > 0) { Log.WriteLog(LogType.Trace, "the ip[" + txtIP.Text + "] has been config in store[" + giStoreId + "] setting[" + txtSettingsName.Text + "] reader, please delete it first3"); MessageBox.Show("the ip[" + txtIP.Text + "] has been config in machine[" + giStoreId + "] setting[" + txtSettingsName.Text + "] reader, please delete it first3"); return; } } catch (Exception ex) { MessageBox.Show("process termination, because error to get reader id"); return; } /*判断内存里面是否已经有相同的ip*/ for (int idx = 0; idx < reader.Count; idx++) { if (string.Equals(sIp, reader[idx].IPaddress)) { Log.WriteLog(LogType.Trace, "the ip[" + sIp + "] has been config in this add route, please delete it first5"); MessageBox.Show("the ip[" + sIp + "] has been config in this add route, please delete it first5"); return; } } } /*将天线配置及读写器ip写入读写器对象*/ stReader.IPaddress = txtIP.Text; stReader.iReaderType = cbReaderType.SelectedIndex; stReader.numAntennas = AntennaList.Count; for (int i = 0; i < stReader.numAntennas; i++) { antenna a = new antenna(); a.antennaNumber = Int32.Parse(AntennaList[i].PortNumber); a.rxPower = AntennaList[i].RXPower; a.txPower = AntennaList[i].TXPower; stReader.antenna.Add(a); Log.WriteLog(LogType.Trace, "success to add antenna[" + i + "] into reader, the antenna info is:RxPower[" + a.rxPower + "], TxPower[" + a.txPower + "], antenna number[" + a.antennaNumber + "]"); } //reader添加到reader数组 reader.Add(stReader); Log.WriteLog(LogType.Trace, "success to add reader into memery,the reader info is:ip[" + stReader.IPaddress + "], antenna num[" + stReader.numAntennas + "], readerType[" + stReader.iReaderType + "]"); //使能控件可用性 comboBoxStore.Enabled = true; txtSettingsName.Enabled = true; dataGridViewReaders.Enabled = true; btAddReader.Enabled = true; buttonRemoveReader.Enabled = true; dataGridViewReaders.Rows.Clear(); //reader信息加载到显示控件 for (int x = 0; x < reader.Count; x++) { dataGridViewReaders.Rows.Add(reader[x].IPaddress, reader[x].numAntennas); } panel1.Visible = false; txtIP.Text = ""; AntennaList.Clear(); flpAntennaConfig.Controls.Clear(); } else { MessageBox.Show("please input reader ip address and antenna infomation."); } }
public override void OnInspectorGUI() { targetObject.Update(); //creates GUI tab tab = GUILayout.Toolbar(tab, tabTitles); switch (tab) { //basic vehicle stuff case 0: getVehicleValue(); break; //wheel stuff case 1: //creates a drop down memnu with each steering method steeringMethod.intValue = EditorGUILayout.Popup("Steering Method", steeringMethod.intValue, steeringMethodMenu); //creates a feild to input prefab/mesh to create a new vehicle wheelMesh = (GameObject)EditorGUILayout.ObjectField("Wheel Mesh", wheelMesh, typeof(GameObject)); //adds wheel if (GUILayout.Button("Add Wheel")) { makeWheel(wheelMesh); } //mirrors wheel from +x side to the -x side if (GUILayout.Button("Mirror Wheel")) { mirrorObj("wheel"); } getWheels(); break; //turret Stuff case 2: label("Adding Turret"); //creates feilds for adding another turret turretMesh = (GameObject)EditorGUILayout.ObjectField("Turret mesh", turretMesh, typeof(GameObject)); barrelMesh = (GameObject)EditorGUILayout.ObjectField("Barrel mesh", barrelMesh, typeof(GameObject)); turretParent = (GameObject)EditorGUILayout.ObjectField("Turret Parent", turretParent, typeof(GameObject)); //adds a turret if (GUILayout.Button("Add Turret")) { GameObject turret = Instantiate(turretTemplate, Vector3.zero, new Quaternion(), turretParent.transform); turret.name = "turret"; Instantiate(turretMesh, turret.transform.position, turret.transform.rotation, turret.transform); Instantiate(barrelMesh, turret.transform.position, turret.transform.rotation, turret.transform); } //gets all the turret and displays turret information getTurrets(); break; //misc stuff case 3: //creates a dropdown menu that shows antenna settings miscDropDowns[0] = EditorGUILayout.Foldout(miscDropDowns[0], "Antenna"); if (miscDropDowns[0]) { //creates feild to imput prefab/meshs to add an antenna antennaProp = (GameObject)EditorGUILayout.ObjectField("Antenna prefab", antennaProp, typeof(GameObject)); miscParent = (GameObject)EditorGUILayout.ObjectField("Parent", miscParent, typeof(GameObject)); if (GUILayout.Button("Add Antenna")) { GameObject antennaTemp = Instantiate(antennaProp, Vector3.zero, new Quaternion(), miscParent.transform); antennaProp.name = "antenna"; antennaProp.tag = "prop"; //checks if the input is a mesh with or without the antenna script if (antennaTemp.GetComponent <antenna>() == null) { antenna component = antennaTemp.AddComponent(typeof(antenna)) as antenna; } } } //creates a drop down menu with miscDropDowns[1] = EditorGUILayout.Foldout(miscDropDowns[1], "Lights"); if (miscDropDowns[1]) { lightProp = (GameObject)EditorGUILayout.ObjectField("Light Prefab", lightProp, typeof(GameObject)); miscParent = (GameObject)EditorGUILayout.ObjectField("Parent", miscParent, typeof(GameObject)); if (GUILayout.Button("Add Light")) { GameObject lightTemp = Instantiate(lightProp, Vector3.zero, new Quaternion(), miscParent.transform); lightTemp.name = "light"; lightTemp.tag = "prop"; } if (GUILayout.Button("Mirror Lights")) { mirrorObj("light"); } } //updates the misc array int miscCount = 0; miscSerialized.ClearArray(); for (int i1 = 0; i1 < v.transform.childCount; i1++) { if (v.transform.GetChild(i1).tag == "prop") { miscSerialized.InsertArrayElementAtIndex(miscCount); miscSerialized.GetArrayElementAtIndex(miscCount).objectReferenceValue = v.transform.GetChild(i1).gameObject; miscCount += 1; } } break; } //update modified values targetObject.ApplyModifiedProperties(); try { if (GUI.changed) { EditorUtility.SetDirty(v); EditorSceneManager.MarkSceneDirty(v.gameObject.scene); } } catch { } }
private void comboBoxSettingsName_SelectedIndexChanged(object sender, EventArgs e) { try { reader.Clear(); int index = comboBoxSettingsName.SelectedIndex; int setid = setList[index].SettingsID; List <LTS.Reader> r = DAT.DataAccess.GetReader().Where(w => w.SettingsID == setid).ToList(); if (r != null) { for (int d = 0; d < r.Count; d++) { Reader re = new Reader(); re.IPaddress = r[d].IPaddress; re.numAntennas = r[d].NumAntennas; re.readerID = r[d].ReaderID; List <LTS.Antenna> ant = DAT.DataAccess.GetAntenna().Where(c => c.ReaderID == re.readerID).ToList(); if (ant != null) { for (int k = 0; k < ant.Count; k++) { antenna a = new antenna(); a.antennaID = ant[k].AntennaID; a.antennaNumber = ant[k].AntennaNumber; a.rxPower = ant[k].RxPower; a.txPower = ant[k].TxPower; re.antenna.Add(a); } reader.Add(re); } } dataGridViewReaders.Rows.Clear(); for (int x = 0; x < reader.Count; x++) { dataGridViewReaders.Rows.Add(reader[x].IPaddress, reader[x].numAntennas); } } readerBackUp.Clear(); int indexR = comboBoxSettingsName.SelectedIndex; int setidR = setList[indexR].SettingsID; List <LTS.Reader> ri = DAT.DataAccess.GetReader().Where(w => w.SettingsID == setidR).ToList(); if (ri != null) { for (int d = 0; d < ri.Count; d++) { Reader red = new Reader(); red.IPaddress = ri[d].IPaddress; red.numAntennas = ri[d].NumAntennas; red.readerID = ri[d].ReaderID; List <LTS.Antenna> ant = DAT.DataAccess.GetAntenna().Where(c => c.ReaderID == red.readerID).ToList(); if (ant != null) { for (int k = 0; k < ant.Count; k++) { antenna a = new antenna(); a.antennaID = ant[k].AntennaID; a.antennaNumber = ant[k].AntennaNumber; a.rxPower = ant[k].RxPower; a.txPower = ant[k].TxPower; red.antenna.Add(a); } readerBackUp.Add(red); } } } } catch (Exception ex) { MessageBox.Show("Sorry Something went wrong, the action was not completed!"); } }
//Margo private void button6_Click(object sender, EventArgs e) { try { lblIP.Visible = false; lblAntenna.Visible = false; if (AntennaList.Count > 0) { if (txtIP.Text != "") { string[] parts = txtIP.Text.Split('.'); if (parts.Length < 4) { lblIP.Visible = true; } else { bool valid = false; foreach (string part in parts) { byte checkPart = 0; if (!byte.TryParse(part, out checkPart)) { valid = true; } } if (valid != false) { lblIP.Visible = true; } else { Reader r = new Reader(); r.IPaddress = txtIP.Text; r.numAntennas = AntennaList.Count; for (int i = 0; i < r.numAntennas; i++) { antenna a = new antenna(); a.antennaNumber = Int32.Parse(AntennaList[i].PortNumber); a.rxPower = AntennaList[i].RXPower; a.txPower = AntennaList[i].TXPower; r.antenna.Add(a); } reader.Add(r); comboBoxStore.Enabled = true; comboBoxSettingsName.Enabled = true; dataGridViewReaders.Enabled = true; buttonAddReader.Enabled = true; buttonRemoveReader.Enabled = true; dataGridViewReaders.Rows.Clear(); for (int x = 0; x < reader.Count; x++) { dataGridViewReaders.Rows.Add(reader[x].IPaddress, reader[x].numAntennas); } panel1.Visible = false; txtIP.Text = ""; AntennaList.Clear(); flpAntennaConfig.Controls.Clear(); } } } else { lblIP.Visible = true; } } else { lblAntenna.Visible = true; if (txtIP.Text != "") { string[] parts = txtIP.Text.Split('.'); if (parts.Length < 4) { lblIP.Visible = true; } else { bool valid = false; foreach (string part in parts) { byte checkPart = 0; if (!byte.TryParse(part, out checkPart)) { valid = true; } } if (valid != false) { lblIP.Visible = true; } } } else { lblIP.Visible = true; } } } catch (Exception ex) { MessageBox.Show("Sorry Something went wrong, the action was not completed!"); } }
private void updateSettings_btnUpdate_Click(object sender, EventArgs e) { ArrayList aDelSql = new ArrayList(); int iSettingsID, iReaderID; Reader stReader; Log.WriteLog(LogType.Trace, "come in updateSettings_btnUpdate_Click"); #if false //modify at 20171202 string sCommStr = "Data Source=.; Initial Catalog=ssms; UID=sa;PASSWORD=123456;pooling=false; "; #else string sCommStr = Properties.Settings.Default.ssmsConnectionString; #endif /*获取settingsID*/ iSettingsID = giSettingId; /*获得要删除的reader和antenna的信息*/ if (!updateSettings_encodeSqlForDel(ref aDelSql)) { Log.WriteLog(LogType.Error, "errorr to call updateSettings_encodeSqlForDel"); return; } /*建立数据库连接*/ using (SqlConnection conn = new SqlConnection(sCommStr)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; SqlTransaction tx = conn.BeginTransaction(); cmd.Transaction = tx; try { Log.WriteLog(LogType.Trace, "begin delete readers and antennas transition"); /*删除数据库中已有的reader和antenna配置*/ for (int n = 0; n < aDelSql.Count; n++) { string sqlString = aDelSql[n].ToString(); if (sqlString.Trim().Length > 1) { cmd.CommandText = sqlString; cmd.ExecuteNonQuery(); Log.WriteLog(LogType.Trace, "success to exec sql[" + sqlString + "];"); } } Log.WriteLog(LogType.Trace, "success to delete all readers and antenna under store[" + giStoreId + "][" + comboBoxStore.Text + "] settings[" + giSettingId + "][" + comboBoxSettings.Text + "]"); Log.WriteLog(LogType.Trace, "goto create new readers and antennas according to memery"); for (int idx = 0; idx < reader.Count; idx++) { stReader = reader[idx]; /*插入reader记录*/ string sSql = "INSERT INTO Reader VALUES('" + stReader.IPaddress + "'," + stReader.numAntennas + ", " + iSettingsID + ", " + stReader.iReaderType + ") select @@identity;"; cmd.CommandText = sSql; iReaderID = Convert.ToInt32(cmd.ExecuteScalar()); Log.WriteLog(LogType.Trace, "success to exec sql[" + sSql + "];"); /*插入reader下所有antenna*/ for (int iAntIdx = 0; iAntIdx < stReader.numAntennas; iAntIdx++) { antenna stAnt = stReader.antenna[iAntIdx]; string sAntSql = "INSERT INTO Antenna VALUES(" + stAnt.txPower + ", " + stAnt.rxPower + ", " + stAnt.antennaNumber + ", " + iReaderID + ");"; cmd.CommandText = sAntSql; cmd.ExecuteNonQuery(); Log.WriteLog(LogType.Trace, "success to exec sql[" + sAntSql + "];"); } } Log.WriteLog(LogType.Trace, "success to create new readers and antennas according to memery"); //更新setting的名字 if (!string.Equals(comboBoxSettings.Text, tSettingsName.Text)) { Log.WriteLog(LogType.Trace, "goto change settings[" + giSettingId + "] name from[" + comboBoxSettings.Text + "] to [" + tSettingsName.Text + "]"); string sSql = "update Settings set SettingsName='" + tSettingsName.Text + "' where SettingsID=" + giSettingId + ";"; cmd.CommandText = sSql; cmd.ExecuteNonQuery(); Log.WriteLog(LogType.Trace, "success to exec sql[" + sSql + "];"); } tx.Commit(); Log.WriteLog(LogType.Trace, "end transition"); MessageBox.Show(Macro.SUCCESS_UPDATE_SETTING); ((Main)this.Parent.Parent).ChangeView <UpdateSettings>(); } catch (System.Data.SqlClient.SqlException E) { tx.Rollback(); Log.WriteLog(LogType.Error, "error to exec sql transition, the error info is [" + E.Message + "]"); //MessageBox.Show(E.Message); throw E; } finally { cmd.Dispose(); conn.Close(); } } return; }
/*处理reader submit按钮点击事件*/ private void updateSettings_antennaSubmit_click(object sender, EventArgs e) { Log.WriteLog(LogType.Trace, "come in updateSettings_antennaSubmit_click"); if (txtIP.Text == "") { Log.WriteLog(LogType.Warning, "the ip is empty, please input ip info"); MessageBox.Show("the ip is empty, please input ip info"); return; } if (AntennaList.Count == 0) { Log.WriteLog(LogType.Warning, "there is not antenna config info, please input them."); MessageBox.Show("there is not antenna config info, please input them."); return; } if (AntennaList.Count > 0 && txtIP.Text != "") { /*判断 txtIP地址合法性*/ if (!updateSettings_readerIpIsEnable()) { return; } /*生成一个reader对象*/ Reader r = new Reader(); r.IPaddress = txtIP.Text; r.numAntennas = AntennaList.Count; r.iReaderType = cbReaderType.SelectedIndex; /*生成antenna对象,并把其添加到reader对象中*/ for (int i = 0; i < r.numAntennas; i++) { antenna a = new antenna(); a.antennaNumber = Int32.Parse(AntennaList[i].PortNumber); a.rxPower = AntennaList[i].RXPower; a.txPower = AntennaList[i].TXPower; r.antenna.Add(a); Log.WriteLog(LogType.Trace, "success to add antenna[" + i + "] into reader, the antenna info is:RxPower[" + a.rxPower + "], TxPower[" + a.txPower + "], antenna number[" + a.antennaNumber + "]"); } reader.Add(r); Log.WriteLog(LogType.Trace, "success to add reader into memery,the reader info is:ip[" + r.IPaddress + "], antenna num[" + r.numAntennas + "]"); comboBoxStore.Enabled = true; tSettingsName.Enabled = true; dgvReaders.Enabled = true; bAddReader.Enabled = true; buttonRemoveReader.Enabled = true; comboBoxSettings.Enabled = true; /*通过控件显示所有reader信息*/ dgvReaders.Rows.Clear(); for (int x = 0; x < reader.Count; x++) { dgvReaders.Rows.Add(reader[x].IPaddress, reader[x].numAntennas); } panel1.Visible = false; txtIP.Text = ""; AntennaList.Clear(); flpAntennaConfig.Controls.Clear(); } }