protected void Page_Load(object sender, EventArgs e) { user = new eUser(UserArea); user.Check(); model = new eModel(ModelID, user); Action = new eAction(); Action.Actioning += new eActionHandler(Action_Actioning); Action.Listen(); }
protected void Page_Load(object sender, EventArgs e) { allids = getParentIDS(pid); user = new eUser("System"); model = new eModel(ModelID, user); Action = new eAction(user); Action.Actioning += new eActionHandler(Action_Actioning); Action.Listen(); }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["area"] != null) { UserArea = Request.QueryString["area"].ToString(); } eUser user = new eUser(UserArea); eModel model = new eModel(ModelID, user); LitBody.Text = model.getListHTML(); }
protected void Page_Load(object sender, EventArgs e) { user = new eUser("Mobile"); user.Check(); model = new eModel(ModelID, user); model.Mode = "mobile"; switch (model.Action.Value) { case "": LitBody.Text = model.getListHTML(); break; case "add": LitBody.Text = model.getAddHTML(); break; case "edit": LitBody.Text = model.getEditHTML(); break; case "copy": LitBody.Text = model.getEditHTML(); break; case "view": LitBody.Text = model.getViewHTML(); break; case "save": model.Save(); break; case "del": model.Delete(); break; case "addsub": eBase.Write(model.getAddHTML()); eBase.End(); break; case "viewsub": eBase.Write(model.getViewHTML()); eBase.End(); break; } }
/// <summary> /// This method will parse Spectrum Analyzer configuration and model string read from data file and will update current configuration to match that. /// Note: for this to work the device must be disconnected, you cannot change runtime parameters if a device is connected /// Rather than parsing, a better way since the begining would have been to store each and everyone of the parameters separately in the file but, /// given that was not the case and to keep backward compatibility with files, we keep the string human readable format /// and parse it here for machine usability. /// </summary> private void UpdateOfflineConfigurationParameters_Analyzer(string sConfigurationString, string sModel) { if (PortConnected) return; //we do this only if device is offline if (!String.IsNullOrEmpty(sConfigurationString)) { string sValues = sConfigurationString.Replace(" - ", "@").ToLower(); //get a reliable separator field sValues = sValues.Replace("from file:", ""); sValues = sValues.Replace("mhz", ""); sValues = sValues.Replace("khz", ""); sValues = sValues.Replace("dbm", ""); sValues = sValues.Replace("start:", ""); sValues = sValues.Replace("stop:", ""); sValues = sValues.Replace("center:", ""); sValues = sValues.Replace("span:", ""); sValues = sValues.Replace("sweep step:", ""); sValues = sValues.Replace("rbw:", ""); sValues = sValues.Replace("amp offset:", ""); sValues = sValues.Replace(" ", ""); string[] arrValues = sValues.Split('@'); //note, we do not use many of these fiels because already came from sweep data in binary format m_fRBWKHZ = 0.0f; m_fOffset_dB = 0.0f; if (arrValues.Length >= 6) { if (arrValues.Length >= 6) m_fRBWKHZ = Convert.ToDouble(arrValues[5]); if (arrValues.Length >= 7) m_fOffset_dB = (float)Convert.ToDouble(arrValues[6]); } } if (!String.IsNullOrEmpty(sModel)) { string sValues = sModel.Replace(" - ", "@").ToLower(); //get a reliable separator field sValues = sValues.Replace("-", "@"); sValues = sValues.Replace("from file:", ""); sValues = sValues.Replace("expansion module:", ""); sValues = sValues.Replace("client v", ""); sValues = sValues.Replace("firmware v", ""); sValues = sValues.Replace("model:", ""); sValues = sValues.Replace("active range:", ""); sValues = sValues.Replace("mhz", ""); sValues = sValues.Replace("no expansion module found",eModel.MODEL_NONE.ToString().ToLower()); sValues = sValues.Replace(" ", ""); string[] arrValues = sValues.Split('@'); m_sRFExplorerFirmware = ""; m_eMainBoardModel = eModel.MODEL_NONE; m_eExpansionBoardModel= eModel.MODEL_NONE; m_eActiveModel = eModel.MODEL_NONE; m_bExpansionBoardActive = false; if (arrValues.Length > 2) { //Update model enumerators from text string sModelMainBoard = arrValues[2]; string sModelExpansion = arrValues[3]; m_bExpansionBoardActive = false; //First determine what is the active board if (sModelExpansion.Contains(_ACTIVE.ToLower())) { m_bExpansionBoardActive = true; } sModelMainBoard = sModelMainBoard.Replace(_ACTIVE.ToLower(), ""); sModelExpansion = sModelExpansion.Replace(_ACTIVE.ToLower(), ""); //Now get each board model m_eMainBoardModel = GetModelEnumFromText(sModelMainBoard); m_eExpansionBoardModel = GetModelEnumFromText(sModelExpansion); if (m_bExpansionBoardActive) { m_eActiveModel = m_eExpansionBoardModel; } else { m_eActiveModel = m_eMainBoardModel; } //Get firmware m_sRFExplorerFirmware = arrValues[1]; //Get max min frequency MinFreqMHZ = Convert.ToDouble(arrValues[4]); MaxFreqMHZ = Convert.ToDouble(arrValues[5]); MaxSpanMHZ = 0.0; //Unknown span, not saved in file format } } }
/// <summary> /// Returns a human readable and normalized identifier text for the model specified in the enum /// </summary> /// <param name="model">RFExplorer model</param> /// <returns>model text identifier such as 433M or WSUB1G</returns> public static string GetModelTextFromEnum(eModel model) { return arrModels[(int)model]; }
public bool ProcessReceivedString(bool bProcessAllEvents, out string sReceivedString) { bool bDraw = false; sReceivedString = ""; try { do { bool bWrongFormat = false; object objNew = null; long nCount = 0; try { Monitor.Enter(m_arrReceivedData); nCount = m_arrReceivedData.Count; if (nCount == 0) break; objNew = m_arrReceivedData.Dequeue(); } catch (Exception obEx) { ReportLog("m_arrReceivedStrings processing: " + obEx.ToString()); } finally { Monitor.Exit(m_arrReceivedData); } if (objNew.GetType() == typeof(RFEConfiguration)) { RFEConfiguration objConfiguration = (RFEConfiguration)objNew; ReportLog("Received configuration: " + objConfiguration.sLineString); if (m_arrSpectrumAnalyzerEmbeddedCalibrationOffsetDB == null) { //request internal calibration data, if available SendCommand("Cq"); } if (IsGenerator()) { //signal generator RFGenStartFrequencyMHZ = objConfiguration.fStartMHZ; RFGenStepFrequencyMHZ = objConfiguration.fStepMHZ; RFGenCWFrequencyMHZ = objConfiguration.fRFEGenCWFreqMHZ; RFGenSweepSteps = objConfiguration.nFreqSpectrumSteps; RFGenStopFrequencyMHZ = RFGenStartFrequencyMHZ + RFGenSweepSteps * RFGenStepFrequencyMHZ; RFGenPowerON = objConfiguration.bRFEGenPowerON; RFGenPowerLevel = objConfiguration.nRFEGenPowerLevel; RFGenHighPowerSwitch = objConfiguration.bRFEGenHighPowerSwitch; MaxFreqMHZ = 6000; MinFreqMHZ = 23.438; RFGenStepWaitMS = objConfiguration.nRFEGenSweepWaitMS; OnReceivedConfigurationData(new EventArgs()); } else { //spectrum analyzer if ((Math.Abs(StartFrequencyMHZ - objConfiguration.fStartMHZ) >= 0.001) || (Math.Abs(StepFrequencyMHZ - objConfiguration.fStepMHZ) >= 0.001)) { StartFrequencyMHZ = objConfiguration.fStartMHZ; StepFrequencyMHZ = objConfiguration.fStepMHZ; ReportLog("New Freq range - buffer cleared."); } AmplitudeTopDBM = objConfiguration.fAmplitudeTopDBM; AmplitudeBottomDBM = objConfiguration.fAmplitudeBottomDBM; FreqSpectrumSteps = objConfiguration.nFreqSpectrumSteps; m_bExpansionBoardActive = objConfiguration.bExpansionBoardActive; if (m_bExpansionBoardActive) { m_eActiveModel = m_eExpansionBoardModel; if (ExpansionBoardModel == RFECommunicator.eModel.MODEL_WSUB3G) { //If it is a MODEL_WSUB3G, make sure we use the MAX HOLD mode to account for proper DSP Thread.Sleep(500); if (m_bUseMaxHold) { ReportLog("Updated remote mode to Max Hold for reliable DSP calculations with fast signals"); SendCommand_SetMaxHold(); } else { ReportLog("Remote mode is not Max Hold, some fast signals may not be detected"); SendCommand_Realtime(); } } } else { m_eActiveModel = m_eMainBoardModel; } m_eMode = objConfiguration.eMode; MinFreqMHZ = objConfiguration.fMinFreqMHZ; MaxFreqMHZ = objConfiguration.fMaxFreqMHZ; MaxSpanMHZ = objConfiguration.fMaxSpanMHZ; m_fRBWKHZ = objConfiguration.fRBWKHZ; m_fOffset_dB = objConfiguration.fOffset_dB; if ((m_eActiveModel == eModel.MODEL_2400) || (m_eActiveModel == eModel.MODEL_6G)) { MinSpanMHZ = 2.0; } else { MinSpanMHZ = 0.112; } if (objConfiguration.nFreqSpectrumSteps == 13) { m_eMode = RFECommunicator.eMode.MODE_WIFI_ANALYZER; } else { m_eMode = RFECommunicator.eMode.MODE_SPECTRUM_ANALYZER; } OnReceivedConfigurationData(new EventArgs()); } } else if (objNew.GetType() == typeof(RFESweepData)) { if (m_eMode == eMode.MODE_TRACKING) { if (m_bTrackingNormalizing) { if (m_SweepTrackingNormalizedContainer == null) m_SweepTrackingNormalizedContainer = new RFESweepDataCollection(3,true); RFESweepData objSweep=(RFESweepData)objNew; m_SweepTrackingNormalizedContainer.Add(objSweep); bool bWrongData=objSweep.GetAmplitudeDBM(objSweep.GetMinStep())<=MIN_AMPLITUDE_TRACKING_NORMALIZE; if (bWrongData || ((m_nAutoStopSNATrackingCounter != 0) && (m_SweepTrackingNormalizedContainer.Count >= m_nAutoStopSNATrackingCounter))) { StopTracking(); if (bWrongData) //invalid data, end so it can be restarted m_SweepTrackingNormalized = objSweep; else //if all samples collected, end and get average among them m_SweepTrackingNormalized = m_SweepTrackingNormalizedContainer.GetAverage(0, m_SweepTrackingNormalizedContainer.Count - 1); OnUpdateDataTrakingNormalization(new EventArgs()); } } else { RFESweepData objSweep = (RFESweepData)objNew; m_TrackingDataContainer.Add(objSweep); bDraw = true; OnUpdateDataTraking(new EventArgs()); if ((m_nAutoStopSNATrackingCounter != 0) && (m_nTrackingPass > m_nAutoStopSNATrackingCounter)) { StopTracking(); } } } else { if (!HoldMode) { RFESweepData objSweep = (RFESweepData)objNew; m_SweepDataContainer.Add(objSweep); bDraw = true; if (m_SweepDataContainer.IsFull()) { HoldMode = true; OnUpdateFeedMode(new EventArgs()); ReportLog("RAM Buffer is full."); } m_sSweepInfoText = "Captured:" + objSweep.CaptureTime.ToString("yyyy-MM-dd HH:mm:ss\\.fff"); TimeSpan objSpan = new TimeSpan(); objSpan = objSweep.CaptureTime - m_LastCaptureTime; if (objSpan.TotalSeconds < 60) { //if time between captures is less than 60 seconds, we can assume we are getting realtime data //and therefore can provide average sweep/seconds information, otherwise we were in hold or something //and data could not be used for these calculations. m_nAverageSweepSpeedIterator++; m_spanAverageSpeedAcumulator += (objSweep.CaptureTime - m_LastCaptureTime); if (m_fAverageSweepTime > 0.0) { m_sSweepInfoText += "\nSweep time: " + m_fAverageSweepTime.ToString("0.000") + " seconds - Avg Sweeps/second: " + (1.0 / m_fAverageSweepTime).ToString("0.0"); } if (m_nAverageSweepSpeedIterator >= 10) { m_fAverageSweepTime = m_spanAverageSpeedAcumulator.TotalSeconds / m_nAverageSweepSpeedIterator; m_nAverageSweepSpeedIterator = 0; m_spanAverageSpeedAcumulator = m_LastCaptureTime - m_LastCaptureTime; //set it to zero and start average all over again } } m_LastCaptureTime = objSweep.CaptureTime; OnUpdateData(new EventArgs()); } else { //if in hold mode, we just record last time came here to make sure we start from most reliable point in time m_LastCaptureTime = DateTime.Now; } } } else if (objNew.GetType() == typeof(RFEScreenData)) { if ((CaptureRemoteScreen) && (m_ScreenDataContainer.IsFull() == false)) { RFEScreenData objScreen = (RFEScreenData)objNew; objScreen.Model = ActiveModel; m_ScreenDataContainer.Add(objScreen); ScreenIndex = (UInt16)m_ScreenDataContainer.UpperBound; OnUpdateRemoteScreen(new EventArgs()); } else { //receiving Screen Dump data but it was intended to be disabled, resend a disable command now SendCommand("D0"); } } else { //received a string, so use it along to parse parameters string sLine = (string)objNew; sReceivedString = sLine; if ((sLine.Length > 3) && (sLine.Substring(0, 4) == _Acknowldedge)) { m_bAcknowledge = true; } else if ((sLine.Length > 16) && (sLine.Substring(0, 3) == "#Sn")) { m_sSerialNumber = sLine.Substring(3, 16); ReportLog("Device serial number: " + SerialNumber); } else if((sLine.Length > 2) && (sLine.Substring(0, 2) == "$q")) { //calibration data UInt16 nSize=Convert.ToUInt16(sLine[2]); if (IsGenerator()) { //signal generator uses a different approach for storing absolute amplitude value offset over an ideal -30dBm response if ((m_arrSignalGeneratorEmbeddedCalibrationActual30DBM == null) || (m_arrSignalGeneratorEmbeddedCalibrationActual30DBM.Length != nSize)) { m_arrSignalGeneratorEmbeddedCalibrationActual30DBM = new double[nSize]; for (int nInd = 0; nInd < nSize; nInd++) { m_arrSignalGeneratorEmbeddedCalibrationActual30DBM[nInd] = -30.0; } //Values using 10*delta from the value delivered when compared with 30dBm. //For instance if value delivered for a frequency is -28.5dBm, that is a +1.5dB difference //therefore a 1.5*10=15 value. If the value delivered is -33.2 that is a -3.2dB difference //therefore a -32 value. string sData = "Embedded calibration Signal Generator data received:"; for (int nInd = 0; nInd < nSize; nInd++) { m_arrSignalGeneratorEmbeddedCalibrationActual30DBM[nInd] = -30.0 + Convert.ToInt16(sLine[nInd + 3]) / 10.0; sData += m_arrSignalGeneratorEmbeddedCalibrationActual30DBM[nInd].ToString(); if (nInd < nSize - 1) sData += ","; } ReportLog(sData); } } else { if ((m_arrSpectrumAnalyzerEmbeddedCalibrationOffsetDB == null) || (m_arrSpectrumAnalyzerEmbeddedCalibrationOffsetDB.Length != nSize)) { m_arrSpectrumAnalyzerEmbeddedCalibrationOffsetDB = new float[nSize]; for (int nInd = 0; nInd < nSize; nInd++) { m_arrSpectrumAnalyzerEmbeddedCalibrationOffsetDB[nInd] = 0.0f; } } if (m_eActiveModel == eModel.MODEL_6G) { string sData = "Embedded calibration Spectrum Analyzer data received:"; for (int nInd = POS_EMBEDDED_CALIBRATED_6G; nInd < nSize; nInd++) { int nVal = Convert.ToInt32(sLine[nInd + 3]); if (nVal > 127) nVal = -(256 - nVal); //get the right sign m_arrSpectrumAnalyzerEmbeddedCalibrationOffsetDB[nInd] = nVal / 2.0f; //split by two to get dB sData += m_arrSpectrumAnalyzerEmbeddedCalibrationOffsetDB[nInd].ToString(); if (nInd < nSize - 1) sData += ","; } ReportLog(sData); } } } else if ((sLine.Length > 18) && (sLine.Substring(0, 18) == _ResetString)) { //RF Explorer device was reset for some reason, reconfigure client based on new configuration OnDeviceResetEvent(new EventArgs()); } else if ((sLine.Length > 5) && sLine.Substring(0, 6) == "#C2-M:") { ReportLog("Received RF Explorer device model info:" + sLine); m_eMainBoardModel = (eModel)Convert.ToUInt16(sLine.Substring(6, 3)); m_eExpansionBoardModel = (eModel)Convert.ToUInt16(sLine.Substring(10, 3)); m_sRFExplorerFirmware = (sLine.Substring(14, 5)); OnReceivedDeviceModel(new EventArgs()); } else if ((sLine.Length > 5) && sLine.Substring(0, 6) == "#C3-M:") { ReportLog("Received RF Explorer Generator device info:" + sLine); m_eMainBoardModel = (eModel)Convert.ToUInt16(sLine.Substring(6, 3)); m_eExpansionBoardModel = (eModel)Convert.ToUInt16(sLine.Substring(10, 3)); m_sRFExplorerFirmware = (sLine.Substring(14, 5)); OnReceivedDeviceModel(new EventArgs()); } else if ((sLine.Length > 2) && sLine.Substring(0, 3) == "#K1") { ReportLog("RF Explorer is now in TRACKING mode."); m_eMode = eMode.MODE_TRACKING; } else if ((sLine.Length > 2) && sLine.Substring(0, 3) == "#K0") { ReportLog("RF Explorer is now in ANALYZER mode."); m_eMode = eMode.MODE_SPECTRUM_ANALYZER; } else if ((sLine.Length > 2) && (sLine.Substring(0, 2) == "$S") && (StartFrequencyMHZ > 0.1)) { bWrongFormat = true; } #if SUPPORT_EXPERIMENTAL else if ((sLine.Length > 2) && sLine.Substring(0, 2) == "$R") { if (!HoldMode && m_nRAWSnifferIndex < m_nTotalBufferSize) { if (m_arrRAWSnifferData == null) { //don't allocate memory for this object before actually required as most users may not need this m_arrRAWSnifferData = new string[m_nTotalBufferSize]; } m_nRAWSnifferIndex++; if (m_nRAWSnifferIndex >= m_nTotalBufferSize) { m_nRAWSnifferIndex = m_nTotalBufferSize; HoldMode = true; UpdateFeedMode(); ReportLog("Buffer is full."); } else { m_arrRAWSnifferData[m_nRAWSnifferIndex] = sLine; } m_nMaxRAWSnifferIndex = m_nRAWSnifferIndex; DrawRAWDecoder(); } } #endif else if ((sLine.Length > 5) && (sLine.Substring(0, 6) == "#C2-F:")) { bWrongFormat = true; //parsed on the thread } else if ((sLine.Length > 5) && (sLine.Substring(0, 6) == "#C1-F:")) { bWrongFormat = true; //obsolete firmware } else { ReportLog(sLine); //report any line we don't understand - it is likely a human readable message } if (bWrongFormat) { ReportLog("Received unexpected data from RFExplorer device:" + sLine); ReportLog("Please update your RF Explorer to a recent firmware version and"); ReportLog("make sure you are using the latest version of RF Explorer for Windows."); ReportLog("Visit http://www.rf-explorer/download for latest firmware updates."); OnWrongFormatData(new EventArgs()); } } } while (bProcessAllEvents && (m_arrReceivedData.Count > 0)); } catch (Exception obEx) { ReportLog("ProcessReceivedString: " + sReceivedString + Environment.NewLine + obEx.ToString()); } return bDraw; }
protected void Page_Load(object sender, EventArgs e) { string auth = ""; if (1 == 1) { if (Request.Headers["auth"] == null) { eJson ErrJson = new eJson(); ErrJson.Add("errcode", "1"); ErrJson.Add("message", "未携带eToKen"); eBase.WriteJson(ErrJson); } auth = Request.Headers["auth"].ToString(); #region 日志 if (1 == 1) { eTable etb = new eTable("a_eke_sysErrors"); etb.Fields.Add("Message", "auth"); etb.Fields.Add("StackTrace", auth); etb.Add(); } #endregion } else { auth = "06841095ADDB705B76053D24C19BF707ED46C19D50CD552953B29A5B52A40AAD35CD1D9B25C640205D2767CA2C4A97F0A2B98CC48242454E00040655734261D6BFBE7CED29CA8AF766721AEA61ED411113CA840E5959FBCC0002BAB64731467E8705BAB1267CE992C2785DAE905F84C8B54C352C3D87C5D20D2C09DE7DC3F542E2AC6A66D8D1021E4E58051851C86871"; } eToken token = new eToken(auth); eUser user = new eUser(token); eModel model = new eModel(ModelID, user); model.Ajax = true; model.Mode = "WebAPI"; switch (model.Action.Value) { case "": model.WebAPIList(); break; case "edit": model.WebAPIEdit(); break; case "view": model.WebAPIView(); break; case "save": model.WebAPISave(); break; case "del": model.WebAPIDelete(); break; } eBase.End(); }
protected void Page_Load(object sender, EventArgs e) { eUser user = new eUser(UserArea); model = new eModel(ModelID, user); //model.Ajax = true; //默认为false switch (model.Action.Value) { case "delmore": //批量删除 string ids = eParameters.QueryString("ids"); ids = "'" + ids.Replace(",", "','") + "'"; eTable etb = new eTable(model.eForm.TableName, user); etb.Where.Add(model.eForm.primaryKey + " in (" + ids + ")"); etb.DeleteTrue(); Response.Redirect(Request.UrlReferrer.PathAndQuery, true); break; case "": LitBody.Text = model.getListHTML(); break; case "add": LitBody.Text = model.getAddHTML(); break; case "edit": LitBody.Text = model.getEditHTML(); break; case "copy": LitBody.Text = model.getEditHTML(); break; case "view": LitBody.Text = model.getViewHTML(); break; case "print": eBase.Write(model.getPrintHTML()); eBase.End(); break; case "save": model.Save(); break; case "del": model.Delete(); break; case "addsub": eBase.Write(model.getAddHTML()); eBase.End(); break; case "viewsub": eBase.Write(model.getViewHTML()); eBase.End(); break; case "export": model.ExportExcel(); break; case "getrole": string roleid = eParameters.QueryString("roleid"); DataTable rolePower = eBase.getUserPowerDefault(roleid, "", ""); eJson json = new eJson(rolePower); json.Convert = true; eBase.Write(json.ToString()); Response.End(); break; } }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["ajaxget"] != null) { Ajaxget = Convert.ToBoolean(Request.QueryString["ajaxget"]); } eUser user = new eUser(UserArea); model = new eModel(ModelID, user); //model.Ajax = true; //默认为false switch (model.Action.Value) { case "": LitBody.Text = model.getListHTML(); break; case "add": LitBody.Text = model.getAddHTML(); break; case "edit": LitBody.Text = model.getEditHTML(); break; case "copy": LitBody.Text = model.getEditHTML(); break; case "view": LitBody.Text = model.getViewHTML(); break; case "print": eBase.Write(model.getPrintHTML()); eBase.End(); break; case "save": model.Save(); break; case "del": model.Delete(); break; case "addsub": eBase.Write(model.getAddHTML()); eBase.End(); break; case "viewsub": eBase.Write(model.getViewHTML()); eBase.End(); break; case "export": model.ExportExcel(); break; case "getrole": string roleid = eParameters.QueryString("roleid"); DataTable rolePower = eBase.getUserPowerDefault(roleid, "", ""); eJson json = new eJson(rolePower); json.Convert = true; eBase.Write(json.ToString()); Response.End(); break; } }