/// <summary> /// UpdateInSitu /// </summary> /// <remarks> /// doesn't make a backup as it's only modifying the tags not re-writing the audio /// </remarks> /// <param name="tagSizeComplete"></param> private void UpdateInSitu(uint tagSizeComplete) { // if tag is before the audio, it shouldn't have a footer Debug.Assert(TagModel.Header.Footer == false); // calculate enough padding to fill the gap between tag and audio start TagModel.Header.PaddingSize = _audioStart - tagSizeComplete; // open source file in readwrite mode using (FileStream writeStream = _sourceFileInfo.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.Read)) { // write header, tags and padding to start of audio FrameManager.Serialize(TagModel, writeStream); // verify we've filled the gap exactly Debug.Assert(writeStream.Position == _audioStart); // now overwrite or append the ID3V1 tag WriteID3v1(writeStream); } }
public void Initialization(object initializedObject) { MonoBehaviour targetObject = (MonoBehaviour)initializedObject; foreach (GameObject g in targetObject.gameObject.GetInsideUI()) { IUINode uiNode = g.GetComponent <IUINode>(); if (uiNode != null) { UIBindingComponent[] components = g.GetComponents <UIBindingComponent>(); foreach (UIBehaviour ui in g.GetComponents <UIBehaviour>()) { UIBindingComponent[] targetBindingComponent = components.Where(p => p.targetComponent == ui.GetType().Name).ToArray(); if (targetBindingComponent.Length > 0) { FrameManager.CreateInstence <IUIBinder>(ui.GetType().Name).Binding(ui, targetBindingComponent.First(), targetObject as IUILogicalNode); } } } } }
private void ProcKRBSwitch() { byte[] frameData = new byte[16]; FrameUnit frameUnit = FrameManager.CreateFrame(frameData, cmdType); try { while (true) { frameUnit.WaitData(-1); FrameTransmit.Send(boardAddr, 1, cmdType, ChannelDataKRB, DataCountKRB + 1); } } catch (ThreadAbortException) { } finally { FrameManager.DeleteFrame(frameUnit); } }
private void Start() { parentTransform = transform.parent; if (parentTransform.name.Equals("Rotateable")) { parentTransform = parentTransform.parent; } gameController = FindObjectOfType <GameController>(); frameManager = FindObjectOfType <FrameManager>(); initialPosition = parentTransform.position; isBeingTouched = false; frame = parentTransform.GetComponentInChildren <Frame>(); frameSize = 23.5f; frameAttachable = parentTransform.GetComponentInChildren <FrameAttachable>(); empty = GameObject.Find("Frame" + (frameManager.initialEmptyFrameRow) + (frameManager.initialEmptyFrameColumn)); frames = GameObject.Find("Frames"); laser = FindObjectOfType <Laser>(); }
private void ProcMR() { byte[] dataBuffer = new byte[2048]; StringBuilder sb = new StringBuilder(); FrameUnit frameUnit = FrameManager.CreateFrame(dataBuffer, 0x30); try { while (true) { if (frameUnit.WaitData(3000) == false) { ShowText(txtAnalog, ""); } else { sb.Length = 0; for (int i = 8; i < frameUnit.FrameLength - 4; i += 2) { Int16 chVal; chVal = (Int16)(dataBuffer[i] + dataBuffer[i + 1] * 256); sb.Append("═ех└" + ((i - 8) / 2).ToString() + ": " + chVal.ToString() + " "); sb.Append("\r\n"); } ShowText(txtAnalog, sb.ToString()); } } } catch (ThreadAbortException) { } finally { FrameManager.DeleteFrame(frameUnit); } }
private void NewMethod() { boardTypeDetail = comboBox1.SelectedIndex + 1; boardAddress = byte.Parse(textBoxBoardAddr.Text); byte[] buffer = new byte[1]; buffer[0] = (byte)boardTypeDetail; Protocol.FrameTransmit.Send(1, boardAddress, 7, buffer, 1); StringBuilder sb = new StringBuilder(); byte[] dataBuffer = new byte[40]; FrameUnit frameUnit = FrameManager.CreateFrame(dataBuffer, 0x07); if (frameUnit.WaitData(2000) == false) { MessageBox.Show("查询失败"); } else { MessageBox.Show("版本号:" + dataBuffer[7].ToString() + "." + dataBuffer[8].ToString() + "\r\n" + "版本日期:" + dataBuffer[9].ToString() + "年" + dataBuffer[10].ToString() + "月" + dataBuffer[11].ToString()); } }
private bool ReadAnalogCh(byte ch, out Int16 val) { FrameUnit frameUnit = FrameManager.CreateFrame(dataBuffer, 0x30); //接收任何数据帧 bool ret; boardAddress1 = byte.Parse(textBoxBoardAddr.Text); try { byte[] buffer = new byte[1]; buffer[0] = ch; Protocol.FrameTransmit.Send(1, boardAddress1, 0x30, buffer, 1); if (frameUnit.WaitData(3000) == false) { MessageBox.Show("收不到数据"); ShowText(buttonMR, "开始采集"); val = 0; ret = false; } else { val = dataBuffer[9]; val *= 256; val += dataBuffer[8]; ret = true; } } catch (ThreadAbortException) { ret = false; val = 0; } finally { FrameManager.DeleteFrame(frameUnit); } return(ret); }
static void Main(string[] args) { if (args.Length > 0) { Id = int.Parse(args[0]); } LogManager.inst.Init(Id); PathExt.InitPath(); TimeManager.inst.Init(); InitXml(); ConsoleInputHandler.inst.Init(); CryptoManage.inst.Init(); MovePatchManager.inst.Init(); ProtocolGroupManager.inst.Init(); ClientManager.inst.Init(Id); new Thread(ConsoleInputHandler.inst.Run).Start(); Console.WriteLine("Ready to work ..."); FrameManager fps = new FrameManager(); fps.Init(); fps.SetFPS(50); while (bWorked) { fps.SetFrameBegin(); ClientManager.inst.Update(); TimeManager.inst.RefreshTime(); if (fps.GetFPSAndCpuInfo() != null && fps.GetFPSAndCpuInfo().fps < 10) { if ((FrameManager.Now - FrameManager.FlagStartTime).TotalSeconds > 1) { Log.Error("fps warning!"); } } fps.SetFrameEnd(); } }
public KategorieChooserTBItem() : base() { cbCategories = new ComboBox(); // Empty box UpdateValues(); var fm = FrameManager.GetInstance(); editCatsButton = new ToggleButton("Edit"); editCatsButton.Clicked += delegate { if (editCatsButton.Active) { fm.ChangeMainFrameMode(DisplayMode.KATEGORIE); } else { fm.ChangeMainFrameMode(DisplayMode.TEXTE); } }; this.PackStart(cbCategories, false, false, 0); this.PackStart(editCatsButton, false, false, 0); }
private void ProcBoardStatus() { byte[] frameData = new byte[16]; FrameUnit frameUnit = FrameManager.CreateFrame(frameData, 0x10); byte[] data = new byte[1]; try { while (true) { frameUnit.WaitData(-1); data[0] = (byte)boardStatus; FrameTransmit.Send(boardAddr, 1, 0x10, data, 1); } } catch (ThreadAbortException) { } finally { FrameManager.DeleteFrame(frameUnit); } }
private void ProcUpdateStatus() { FrameUnit frameUnit = FrameManager.CreateFrame(frameBuffer3, 0x03); byte[] data = new byte[1]; try { while (true) { frameUnit.WaitData(-1); data[0] = (byte)updateStatus; FrameTransmit.Send(boardAddr, 1, 0x03, data, 1); } } catch (ThreadAbortException) { } finally { FrameManager.DeleteFrame(frameUnit); } }
private void Setup() { _frameRateMinder = new MaxFrameRateMinder(60); _frameManager = FrameManager.Instance; _sensor = KinectSensor.GetDefault(); _sensor.OpenMultiSourceFrameReader(FrameSourceTypes.Color | FrameSourceTypes.Depth) .MultiSourceFrameArrived += OnMultiSourceFrameArrived; _frameManager.CoordinateMapper = _sensor.CoordinateMapper; _sensor.Open(); try { while (true) { Thread.Sleep(10); } } catch (Exception ex) { _sensor.Close(); System.Diagnostics.Debug.WriteLine("Kinect image producer thread shutting down..."); } }
private void ProcVersion() { byte[] frameData = new byte[16]; FrameUnit frameUnit = FrameManager.CreateFrame(frameData, 0x07); byte[] data = new byte[2]; try { while (true) { frameUnit.WaitData(-1); data[0] = (byte)version1; data[1] = (byte)version2; FrameTransmit.Send(boardAddr, 1, 0x07, data, 2); } } catch (ThreadAbortException) { } finally { FrameManager.DeleteFrame(frameUnit); } }
private void TransferSignUp() { FrameManager.MovePage(ControlsTitles.SignUp); }
private void TransferLogin() { FrameManager.MovePage(ControlsTitles.Login); }
private void ConnectOrDisconnect() { var ip = cmbIP.Text; var port = int.Parse(txtPort.Text); if (mThreadConnectToServer == null) { mThreadConnectToServer = new Thread(new ThreadStart(delegate() { try { if (stream != null) { stream.Close(); } tcpclient = new TcpClient(ip, port); //SetButtonState(btnConnect, "断开(&S)"); tcpclient.ReceiveBufferSize = 0xFFFF + 1; tcpclient.SendBufferSize = 0xFFFF + 1; stream = tcpclient.GetStream(); int revFilePartCount = 0; try { stream.Write(System.Text.Encoding.Default.GetBytes("OK"), 0, 2); SetButtonState(btnConnect, "断开(&S)"); } catch (Exception ex) { if (stream != null) { stream.Close(); } if (tcpclient != null) { tcpclient.Close(); } mThreadConnectToServer.Abort(); return; } //创建帧分析对象 fFrameMgr = new FrameManager((ushort)(serialPort1.ReadBufferSize * 3), stream); //实现帧处理函数 fFrameMgr.OnReceiveFrame += new FrameManager.OnReceiveFrameHandler( delegate(/*object _stream,*/ FileTransferProtocol.CommandType frameType, int parameter, byte[] commandData) { //NetworkStream nStream = (NetworkStream)_stream; switch (frameType) { case FileTransferProtocol.CommandType.FileName: string fileName = System.Text.Encoding.Default.GetString(commandData, 0, commandData.Length); if (fileName != null) { if (fStream != null) { fStream.Close(); fStream = null; } revFilePartCount = 0; string CurrentPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName); string startDir = CurrentPath + @"\update\"; if (!Directory.Exists(startDir)) { Directory.CreateDirectory(startDir); } if (File.Exists(startDir + fileName)) { File.Delete(startDir + fileName); } fStream = File.Open(startDir + fileName, FileMode.CreateNew); AddItemToList(listBox1, DateTime.Now.ToString() + " 准备接收文件:" + fileName + " 文件总长度:" + parameter); } break; case FileTransferProtocol.CommandType.FileData: if (fStream != null && commandData != null && commandData.Length > 0) { revFilePartCount++; fStream.Write(commandData, 0, commandData.Length); AddItemToList(listBox1, string.Format("收到 第{0}块 数据长度:{1} 服务器端分块号:{2} ", revFilePartCount, commandData.Length, parameter)); } break; case FileTransferProtocol.CommandType.FileSendFinish: if (fStream != null) { fStream.Close(); fStream = null; AddItemToList(listBox1, DateTime.Now.ToString() + " 收到文件结束信号"); } break; case FileTransferProtocol.CommandType.WhatIsYourMNandVersion: byte[] frame = FileTransferProtocol.GetFrameWhatIsYourMNandVersion(); stream.Write(frame, 0, frame.Length); break; case FileTransferProtocol.CommandType.Message: string message = System.Text.Encoding.Default.GetString(commandData, 0, commandData.Length); AddItemToList(listBox1, message); break; } return(true); }); //------------------------------------------------------------------------------------ //方式0数采仪被动更新(只有在更新服务器询问[指定列表的]数采仪时,则数据采仪才更新) //------------------------------------------------------------------------------------ ////把 网络 或 串口 的 数据 传给 帧分析对象的Handler函数做分析 if (receiveThread == null) { receiveThread = new Thread(new ThreadStart(delegate() { int MaxLength = FileTransferProtocol.MaxFrameLength - FileTransferProtocol.FrameStructLength;//64*1024;0xFFFF+1;64K; Byte[] data = new Byte[MaxLength]; try { bool running = true; while (running) { Debug.WriteLine(string.Format("{0}", Thread.CurrentThread.Name)); Int32 bytes = 0; try { bytes = stream.Read(data, 0, data.Length); } catch (System.IO.IOException er) { DisConnect(); } if (bytes > 0) { //这是处理收到帧 running = fFrameMgr.Handler(bytes, data); } else { //远端客户主动断开socket running = false; } } } catch (ThreadAbortException er) { AddItemToList(listBox1, string.Format(DateTime.Now.ToString() + " 连接{0}:{1}未成功或已取消", ip, port)); receiveThread = null; } catch (Exception err) { AddItemToList(listBox1, DateTime.Now.ToString() + " " + err.Message); } })); receiveThread.Start(); } else { if (stream != null) { stream.Close(); } receiveThread.Abort(); receiveThread = null; } //-----------------------------------------方式0-------------------------------------- } catch (ThreadAbortException er) { AddItemToList(listBox1, string.Format(DateTime.Now.ToString() + " 连接{0}:{1}未成功或已取消", ip, port)); mThreadConnectToServer = null; } catch (SocketException er) { AddItemToList(listBox1, DateTime.Now.ToString() + " " + er.Message); DisConnect(); } })); mThreadConnectToServer.Start(); } else { DisConnect(); } }
// Go to Home Page private void HomeButton_Tapped(object sender, RoutedEventArgs e) { FrameManager.GoTo(FrameManager.MainPageFrame); }
static void Main(string[] args) { if (GlobalVariables.ParseCommands(args) == false) { return; } if (GlobalVariables.BuildStarDatabase == true) { StarCatalog.BuildPPMCatalog(GlobalVariables.PPMCatalogSource); StarCatalog.BuildVSXCatalog(GlobalVariables.VSXCatalogSource); return; } using (var db = new StarCatalogContext()) { if (GlobalVariables.LoadFrames == true) { FrameManager.GetFrameInfo(GlobalVariables.InputDirectory, db); return; } if (GlobalVariables.LoadResults == true) { string chartname = new ChartManager().LoadChart(GlobalVariables.InputDirectory, db); new SampleManager().LoadStarField(GlobalVariables.InputDirectory, chartname, db); return; } var field = StarField.LoadStarField(GlobalVariables.Chart, db); // Apply quality filter. field.Stars = field.Stars.OrderByDescending(x => x.AvgInstrumentalMag).Where(x => x.MinSNR > GlobalVariables.MinSNR && x.Flags < 16).ToList(); field.DoPhotometricReduction(); // Output results StringBuilder candidates = new StringBuilder(); candidates.AppendLine(String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}", "Star", "RMag", "C-VMag", "C-VMag-E", "VMag", "C-ColorIndex", "ColorIndex", "Label", "Known Variable", "Uncertainty", "Score", "Flags", "URL")); StringBuilder timeseries = new StringBuilder(); timeseries.AppendLine(String.Format("{0},{1},{2},{3},{4},{5}", "Score", "Star", "ObsDate", "VMag", "TFAMag", "Uncertainty")); StringBuilder aavsolog = new StringBuilder(); aavsolog.AppendLine("#TYPE=EXTENDED"); aavsolog.AppendLine("#OBSCODE=" + GlobalVariables.ObsCode); aavsolog.AppendLine("#SOFTWARE=VSA V" + Assembly.GetEntryAssembly().GetName().Version); aavsolog.AppendLine("#DELIM=,"); aavsolog.AppendLine("#DATE=JD"); aavsolog.AppendLine("#OBSTYPE=DSLR"); aavsolog.AppendLine("#NAME,DATE,MAG,MERR,FILT,TRANS,MTYPE,CNAME,CMAG,KNAME,KMAG,AMASS,GROUP,CHART,NOTES"); Console.WriteLine("Outputing results."); foreach (Star star in field.Stars) { D_VSXEntry entry = StarCatalog.GetVSXEntry((double)star.RA, (double)star.DEC); string variabletype = ""; if (entry != null && entry.VFlag < 2) { Console.WriteLine("Found variable star: " + entry.Name); variabletype = "http://www.aavso.org/vsx/index.php?view=detail.top&oid=" + entry.OID.Trim(); string ensemble = "Custom ensemble of " + (star.Comparables.Count() - 1).ToString() + " due to low chart count."; if (field.ChartComparables.Count > 1) { ensemble = field.ChartComparables[1].Label; for (int f = 2; f < field.ChartComparables.Count; f++) { ensemble += "/" + field.ChartComparables[f].Label; } } // Query to get auid. string auid = StarCatalog.GetAUID(entry); if (auid != null) { aavsolog.AppendLine(String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14}", auid, Math.Round(field.Frames[0].Time, 4), Math.Round(star.VMag, 3).ToString().PadLeft(7, ' '), Math.Round(star.e_VMag, 3), "V", "YES", "STD", "ENSEMBLE", "na", field.ChartComparables[0].Label.Replace("[CHECK]", "").Trim(), Math.Round(field.ChartComparables[0].VMag, 3).ToString().PadLeft(7, ' '), "na", "na", field.Frames[0].Chart, String.Format("MAG=avg {0} img|MERR=StdDe|ENSEMBLE={1}", star.Samples.Count(), ensemble))); } } string label = ""; if (field.ChartComparables.Contains(star)) { label = star.Label; } candidates.Append(String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", star.Name, star.CatalogEntry.Rmag, star.VMag, star.e_VMag, star.CatalogEntry.Vmag, star.CalculatedColorIndex, star.ColorIndex, label, variabletype, star.EnsembleError, star.Score, Convert.ToString(star.Flags, 2).PadLeft(5, '0'))); // Output the calculated differential magnitude with the comparable star. int i = 0; foreach (SampleData sample in star.Samples) { timeseries.AppendLine(String.Format("{0},{1},{2},{3},{4},{5}", star.Score, star.Name, field.Frames[i].Time, sample.ApparentVMag - star.VMag, sample.TFAVMag - star.VMag, sample.Uncertainty)); i++; } candidates.Append(String.Format(",http://simbad.u-strasbg.fr/simbad/sim-coo?Coord={0}%20{1}%20{2}%20{3}%20{4}%20{5}&Radius=2&Radius.unit=arcsec&", star.Name.Substring(0, 2), star.Name.Substring(2, 2), star.Name.Substring(4, 4), star.Name.Substring(8, 3), star.Name.Substring(11, 2), star.Name.Substring(13, 2))); candidates.AppendLine(); } File.WriteAllText(GlobalVariables.GetOutput(".\\AAVSO\\" + field.Frames[0].Chart + ".txt"), aavsolog.ToString()); File.WriteAllText(GlobalVariables.GetOutput(".\\candidates_out.csv"), candidates.ToString()); File.WriteAllText(GlobalVariables.GetOutput(".\\timeseries_out.csv"), timeseries.ToString()); } }
/// <summary> /// Parse ID3 tags from stream and calculate where the audio must be /// </summary> /// <remarks> /// if this throws an exception, the File is not usable. /// </remarks> private void Initialise() { // create an empty framemodel, to use if we don't parse anything better FrameModel tagModel = new FrameModel(); // clear out any previous taghandler _tagHandler = null; // don't know how big the audio is until we've parsed the tags _audio = null; UInt32 audioNumBytes; using (FileStream sourceStream = _sourceFileInfo.Open(FileMode.Open, FileAccess.Read, FileShare.Read)) { // all the header calculations use UInt32; // this guarantees all the file offsets we have to deal with fit in a UInt32 if (sourceStream.Length > UInt32.MaxValue) { throw new InvalidAudioFrameException("MP3 file can't be bigger than 4gb"); } // in the absence of any recognised tags, // audio starts at the start _audioStart = 0; // audio is entire file length audioNumBytes = (UInt32)sourceStream.Length; // try to read an ID3v1 block. // If ID3v2 block exists, its values overwrite these // Otherwise, if ID3V1 block exists, its values are used // The audio is anything that's left after all the tags are excluded. try { ID3v1 id3v1 = new ID3v1(); id3v1.Deserialize(sourceStream); // fill in ID3v2 block from the ID3v1 data tagModel = id3v1.FrameModel; // audio is shorter by the length of the id3v1 tag audioNumBytes -= ID3v1.TagLength; } catch (TagNotFoundException) { // ignore "no ID3v1 block" // everything else isn't caught here, and throws out to the caller } try { sourceStream.Seek(0, SeekOrigin.Begin); tagModel = FrameManager.Deserialize(sourceStream); // audio starts after the tag _audioStart = (uint)sourceStream.Position; // audio is shorter by the length of the id3v2 tag audioNumBytes -= _audioStart; } catch (TagNotFoundException) { // ignore "no ID3v2 block" // everything else isn't caught here, and throws out to the caller } // create a taghandler to hold the tagmodel we've parsed, if any _tagHandler = new TagHandler(tagModel); } // closes sourceStream // save the location of the audio in the original file // passing in audio size and id3 length tag (if any) to help with bitrate calculations _audio = new AudioFile(_sourceFileInfo, _audioStart, audioNumBytes, _tagHandler.Length); _audioReplaced = false; }
public void UnRegistMsg(string msg) { FrameManager.GetInstence <MsgManager>(notifiedObject.MsgStstem).UnRegistMsg(this, msg); }
private void btnStart_Click(object sender, EventArgs e) { //开启服务 if (mUpdateServiceThread == null) { mUpdateServiceThread = new Thread(delegate(object obj) { try { //EventLog eventLog = new EventLog(Application.ProductName , ".", "DebugSource"); //eventLog.Source = "DebugSource"; object[] ipPortRootdirFilenamelist = (object[])obj; // Set the TcpListener on port . IPAddress localAddr = IPAddress.Parse(ipPortRootdirFilenamelist[0].ToString()); Int32 port = int.Parse(ipPortRootdirFilenamelist[1].ToString()); //string rootdir = (string)ipPortRootdirFilenamelist[2]; //ListBox.ObjectCollection Items = (ListBox.ObjectCollection)ipPortRootdirFilenamelist[3]; // TcpListener server = new TcpListener(port); server = new TcpListener(localAddr, port); // Start listening for client requests. server.Start(); this.Invoke(new EventHandler(delegate(Object own, EventArgs args) { this.btnStart.Text = "停止服务"; this.btnStart.Update(); })); // Enter the listening loop. int count = 0; //eventLog.WriteEntry(DateTime.Now.ToString() + " 更服务端口已开启。"); AddItemToList(listBoxLog, DateTime.Now.ToString() + " 更服务端口已开启。"); while (true) { //Console.Write("Waiting for a connection... "); // Perform a blocking call to accept requests. // You could also user server.AcceptSocket() here. TcpClient client = server.AcceptTcpClient(); count++; this.Invoke(new EventHandler(delegate(Object own, EventArgs args) { this.lblOnlineCount.Text = string.Format("在线客户数量:{0}", count); this.lblOnlineCount.Update(); })); //AddItemToList(listBoxLog,"在线客户端数量:" + count); Thread NewClientThread = new Thread(delegate(object clientobj) { TcpClient tcpclient = null; try { object[] clientRootdirFilenamelist = (object[])clientobj; tcpclient = (TcpClient)clientRootdirFilenamelist[0]; string rootdir = (string)clientRootdirFilenamelist[1]; List <string> filenamelist = (List <string>)clientRootdirFilenamelist[2]; NetworkStream stream = tcpclient.GetStream(); lock (streamList) { streamList.Add(stream); } int MaxLength = FileTransferProtocol.MaxFrameLength - FileTransferProtocol.FrameStructLength;//64*1024;0xFFFF+1;64K; Byte[] data = new Byte[MaxLength]; FrameManager fm = new FrameManager(MaxLength, tcpclient); //收到客户端发来的帧数据 fm.OnReceiveFrame += new FrameManager.OnReceiveFrameHandler(delegate(FileTransferProtocol.CommandType frameType, int parameter, byte[] commandData) { //TcpClient tcpclient = (TcpClient)own; //NetworkStream stream = tcpclient.GetStream(); switch (frameType) { //收到远端客户端关闭帧信号 case FileTransferProtocol.CommandType.CloseSocket: if (tcpclient != null) { tcpclient.Close(); Debug.WriteLine("CurrentThread:{0} 准备退出", Thread.CurrentThread.Name); } //是否继续帧分析处理 return(false); //如果是对方应答服务端发送的FileTransferProtocol.CommandType.WhatIsYourMNandVersion的指令 case FileTransferProtocol.CommandType.MNAndVersion: //如果在MN例表中 且 version<服务端version string MN = System.Text.Encoding.Default.GetString(commandData, 0, FileTransferProtocol.MNLength); int limited = BitConverter.ToInt32(commandData, FileTransferProtocol.MNLength); if (parameter < int.Parse(txtVersion.Text)) { if (lstMN.Items.Contains(MN)) { SendFileToNet(stream, rootdir, filenamelist, MN, limited); } else { byte[] frame = FileTransferProtocol.GetFrameMessage(string.Format("此数采仪{0}未在可更新列表中。", MN)); stream.Write(frame, 0, frame.Length); } } else { byte[] frame = FileTransferProtocol.GetFrameMessage(string.Format("此数采仪{0}程序已经是最新版了。", MN)); stream.Write(frame, 0, frame.Length); } break; } //是否继续帧分析处理 Debug.WriteLine("CurrentThread:{0} 继续运行", Thread.CurrentThread.Name); return(true); }); bool running = true; while (running) { Debug.WriteLine(string.Format("{0}", Thread.CurrentThread.ThreadState)); Int32 bytes = stream.Read(data, 0, data.Length); if (bytes > 0) { running = fm.Handler(bytes, data); } else { //远端客户主动断开socket running = false; } } } catch (Exception er) { //eventLog.WriteEntry(DateTime.Now.ToString() + "异常:" + er.Source + " " + er.Message); AddItemToList(listBoxLog, DateTime.Now.ToString() + "异常:" + er.Source + " " + er.Message); } finally { tcpclient.Close(); } lock ((object)count) { count--; //AddItemToList(listBoxLog,"在线客户端数量:" + count); try { this.Invoke(new EventHandler(delegate(Object own, EventArgs args) { this.lblOnlineCount.Text = string.Format("在线客户数量:{0}", count); this.lblOnlineCount.Update(); })); } catch (Exception er) { } } }); NewClientThread.Name = "读线程" + NewClientThread.ManagedThreadId; threadList.Add(NewClientThread); NewClientThread.Start(new object[] { client, ipPortRootdirFilenamelist[2] /*rootdir*/, ipPortRootdirFilenamelist[3] /*listBox1.Items*/ }); //Console.WriteLine("Connected!"); } } catch (SocketException er) { //Console.WriteLine("网络异常: {0}", e); //MessageBox.Show(er.Message, "网络异常"); //如果是server.Stop()停止服务引起的则忽略错误的显示 if (er.SocketErrorCode == SocketError.Interrupted) { } else { AddItemToList(listBoxLog, DateTime.Now.ToString() + " " + er.Source + " " + er.Message); } } finally { // Stop listening for new clients. server.Stop(); } }); mUpdateServiceThread.Name = "更新程序监听主线程"; mUpdateServiceThread.Start(new object[] { cmbIP.Text, txtPort.Text, txtRootDir.Text, fileNameList }); } else//关闭服务 { server.Stop(); AbortUpdateServiceThread(); } }
private void Start() { _frameManager = GameObject.FindObjectOfType <FrameManager>(); }
private void ProcScan() { StringBuilder sb = new StringBuilder(); StringBuilder sbLog = new StringBuilder(); StringBuilder sbAll = new StringBuilder(); FrameUnit frameUnit = FrameManager.CreateFrame(dataBuffer, 0x30); //接收任何数据帧 float maxAmpliVal, minAmpliVal; float maxFreqVal, minFreqVal; float maxModFreqVal, minModFreqVal; Lon.IO.Ports.FunGen fGen = new Lon.IO.Ports.FunGen(); try { byte[] buffer = new byte[1]; buffer[0] = MRChannel; float tempVal; for (int i = 0; i < ((float)(numScanEnd.Value) - (float)(numScanStart.Value) + 0.1f) * 10; i++) { while (fGen.SetFmFreq(0, (float)numScanStart.Value + i * 0.1f) == false) { MessageBox.Show("3022未准备好"); } sbLog.Length = 0; sbLog.Append("!!!!!!!!!"); sbLog.Append(DateTime.Now.ToLongTimeString()); sbLog.Append(" 3022输出低频:"); sbLog.Append(((float)numScanStart.Value + i * 0.1f).ToString()); sbLog.Append("//{{{1\r\n"); AppendText(txtLog, sbLog.ToString()); Thread.Sleep(1000); Protocol.FrameTransmit.Send(1, boardAddress1, 0x30, buffer, 1); if (frameUnit.WaitData(3000) == false) { MessageBox.Show("收不到数据"); ShowText(btnLowScan, "开始扫描"); break; } else { sb.Length = 0; for (int k = 8; k < frameUnit.FrameLength - 4; k += 2) { float chVal; chVal = dataBuffer[k] + dataBuffer[k + 1] * 256; sb.Append("通道" + ((k - 8) / 2).ToString() + ": " + chVal.ToString() + " "); sb.Append("\r\n"); } ShowText(txtVal, sb.ToString()); sbAll.Append(DateTime.Now.ToLongTimeString()); sbAll.Append(":\r\n"); sbAll.Append(sb.ToString()); sbAll.Append(":\r\n"); sbLog.Length = 0; sbLog.Append("时间\t电压\t频率\t低频//{{{2\r\n"); sbLog.Append(DateTime.Now.ToLongTimeString()); sbLog.Append("\t"); tempVal = dataBuffer[8 + (int)numScanCh.Value * 2] + dataBuffer[9 + (int)numScanCh.Value * 2] * 256; maxAmpliVal = tempVal; minAmpliVal = tempVal; sbLog.Append(tempVal.ToString()); sbLog.Append("\t"); tempVal = dataBuffer[10 + (int)numScanCh.Value * 2] + dataBuffer[11 + (int)numScanCh.Value * 2] * 256; maxFreqVal = tempVal; minFreqVal = tempVal; sbLog.Append(tempVal.ToString()); sbLog.Append("\t"); tempVal = dataBuffer[12 + (int)numScanCh.Value * 2] + dataBuffer[13 + (int)numScanCh.Value * 2] * 256; maxModFreqVal = tempVal; minModFreqVal = tempVal; sbLog.Append(tempVal.ToString()); sbLog.Append("\r\n"); AppendText(txtLog, sbLog.ToString()); } #region 开始采集 for (int j = 0; j < (int)(numTstTime.Value * 60); j++) { Thread.Sleep(1000); Protocol.FrameTransmit.Send(1, boardAddress1, 0x30, buffer, 1); if (frameUnit.WaitData(30) == false) { MessageBox.Show("收不到数据"); ShowText(btnLowScan, "开始扫描"); break; } else { sb.Length = 0; for (int k = 8; k < frameUnit.FrameLength - 4; k += 2) { float chVal; chVal = dataBuffer[k] + dataBuffer[k + 1] * 256; sb.Append("通道" + ((k - 8) / 2).ToString() + ": " + chVal.ToString() + " "); sb.Append("\r\n"); } ShowText(txtVal, sb.ToString()); sbAll.Append(DateTime.Now.ToLongTimeString()); sbAll.Append(":\r\n"); sbAll.Append(sb.ToString()); sbAll.Append(":\r\n"); sbLog.Length = 0; sbLog.Append(DateTime.Now.ToLongTimeString()); sbLog.Append("\t"); tempVal = dataBuffer[8 + (int)numScanCh.Value * 2] + dataBuffer[9 + (int)numScanCh.Value * 2] * 256; if (tempVal > maxAmpliVal) { maxAmpliVal = tempVal; } if (tempVal < maxAmpliVal) { minAmpliVal = tempVal; } sbLog.Append(tempVal.ToString()); sbLog.Append("\t"); tempVal = dataBuffer[10 + (int)numScanCh.Value * 2] + dataBuffer[11 + (int)numScanCh.Value * 2] * 256; if (tempVal > maxFreqVal) { maxFreqVal = tempVal; } if (tempVal < minFreqVal) { minFreqVal = tempVal; } sbLog.Append(tempVal.ToString()); sbLog.Append("\t"); tempVal = dataBuffer[12 + (int)numScanCh.Value * 2] + dataBuffer[13 + (int)numScanCh.Value * 2] * 256; if (tempVal > maxModFreqVal) { maxModFreqVal = tempVal; } if (tempVal < minModFreqVal) { minModFreqVal = tempVal; } sbLog.Append(tempVal.ToString()); sbLog.Append("\r\n"); AppendText(txtLog, sbLog.ToString()); } } #endregion sbLog.Length = 0; sbLog.Append("//}}}2\r\n"); sbLog.Append("!!!!!!!!!"); sbLog.Append(DateTime.Now.ToLongTimeString()); sbLog.Append(" 3022测试低频结束\r\n"); sbLog.Append("!!!!!!!!!幅度最大值:"); sbLog.Append(maxAmpliVal); sbLog.Append("\r\n"); sbLog.Append("!!!!!!!!!幅度最小值:"); sbLog.Append(minAmpliVal); sbLog.Append("\r\n"); sbLog.Append("!!!!!!!!!频率最大值:"); sbLog.Append(maxFreqVal); sbLog.Append("\r\n"); sbLog.Append("!!!!!!!!!频率最小值:"); sbLog.Append(minFreqVal); sbLog.Append("\r\n"); sbLog.Append("!!!!!!!!!调制频率最大值:"); sbLog.Append(maxModFreqVal); sbLog.Append("\r\n"); sbLog.Append("!!!!!!!!!调制频率最小值:"); sbLog.Append(minModFreqVal); sbLog.Append("\r\n"); sbLog.Append(((float)numScanStart.Value + i * 0.1f).ToString()); sbLog.Append("//}}}1\r\n"); AppendText(txtLog, sbLog.ToString()); } } catch (ThreadAbortException) { } finally { FrameManager.DeleteFrame(frameUnit); } }
//FileStream fStream = null; private void SetupFrameHandler() { serialPortFrameMgr = new FrameManager((ushort)(serialPort1.ReadBufferSize * 3), serialPort1); serialPortFrameMgr.OnReceiveFrame += new FrameManager.OnReceiveFrameHandler( delegate(/*object own,*/ FileTransferProtocol.CommandType frameType, int parameter, byte[] commandData) { //SerialPort serialPort = (SerialPort)own; switch (frameType) { case FileTransferProtocol.CommandType.FileName: string fileName = System.Text.Encoding.Default.GetString(commandData, 0, commandData.Length); if (fileName != null) { if (fStream != null) { fStream.Close(); fStream = null; } string CurrentPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName); string startDir = CurrentPath + @"\update\"; if (!Directory.Exists(startDir)) { Directory.CreateDirectory(startDir); } if (File.Exists(startDir + fileName)) { File.Delete(startDir + fileName); } fStream = File.Open(startDir + fileName, FileMode.CreateNew); SetText(DateTime.Now.ToString() + " 准备接收文件:" + fileName + " 文件总长度:" + parameter); } break; case FileTransferProtocol.CommandType.FileData: if (fStream != null && commandData != null && commandData.Length > 0) { fStream.Write(commandData, 0, commandData.Length); SetText("收到文件数据长度" + commandData.Length); } break; case FileTransferProtocol.CommandType.FileSendFinish: if (fStream != null) { fStream.Close(); fStream = null; SetText(DateTime.Now.ToString() + " 收到文件结束信号"); } break; case FileTransferProtocol.CommandType.WhatIsYourMNandVersion: //byte[] frame = FileTransferProtocol.GetFrameMNAndVersion(1, "456"); byte[] frame = FileTransferProtocol.GetFrameWhatIsYourMNandVersion(); serialPort1.Write(frame, 0, frame.Length); break; case FileTransferProtocol.CommandType.Message: string message = System.Text.Encoding.Default.GetString(commandData, 0, commandData.Length); this.Invoke(new EventHandler(delegate(object s, EventArgs ar) { this.txtData.Text += message + "\r\n"; })); break; } return(true); }); }
public void GetFrameTest() { // multiple tests simulating different usage scenarios var fm = new FrameManager(5); for (int i = 0; i < 9; ++i) { Frame newF = new Frame { frameId = i + 1, frameResource = "Placeholder Content" }; fm.AddFrame(newF); Frame[] expect; Frame[] actual; if (i + 1 == 6) { expect = new Frame[6] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 2, frameResource = "Placeholder Content" }, new Frame { frameId = 3, frameResource = "Placeholder Content" }, new Frame { frameId = 4, frameResource = "Placeholder Content" }, new Frame { frameId = 5, frameResource = "Placeholder Content" }, new Frame { frameId = 6, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } else if (i + 1 == 7) { expect = new Frame[4] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 3, frameResource = "Placeholder Content" }, new Frame { frameId = 5, frameResource = "Placeholder Content" }, new Frame { frameId = 7, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } else if (i + 1 == 9) { expect = new Frame[5] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 3, frameResource = "Placeholder Content" }, new Frame { frameId = 5, frameResource = "Placeholder Content" }, new Frame { frameId = 7, frameResource = "Placeholder Content" }, new Frame { frameId = 9, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } } // another test case with different target_length fm = new FrameManager(3); for (int i = 0; i < 9; ++i) { Frame newF = new Frame { frameId = i + 1, frameResource = "Placeholder Content" }; fm.AddFrame(newF); Frame[] expect; Frame[] actual; if (i + 1 == 3) { expect = new Frame[3] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 2, frameResource = "Placeholder Content" }, new Frame { frameId = 3, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } else if (i + 1 == 4) { expect = new Frame[4] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 2, frameResource = "Placeholder Content" }, new Frame { frameId = 3, frameResource = "Placeholder Content" }, new Frame { frameId = 4, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } else if (i + 1 == 5) { expect = new Frame[3] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 3, frameResource = "Placeholder Content" }, new Frame { frameId = 5, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } else if (i + 1 == 6) { expect = new Frame[3] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 3, frameResource = "Placeholder Content" }, new Frame { frameId = 5, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } else if (i + 1 == 7) { expect = new Frame[4] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 3, frameResource = "Placeholder Content" }, new Frame { frameId = 5, frameResource = "Placeholder Content" }, new Frame { frameId = 7, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } else if (i + 1 == 9) { expect = new Frame[3] { new Frame { frameId = 1, frameResource = "Placeholder Content" }, new Frame { frameId = 5, frameResource = "Placeholder Content" }, new Frame { frameId = 9, frameResource = "Placeholder Content" } }; actual = (Frame[])fm.GetFrame(); CollectionAssert.AreEqual(expect, actual); } } }
private void Capture_Button_Click(object sender, RoutedEventArgs e) { FrameManager.GoTo(FrameManager.CapturePage, false); }
private void OnDisable() { _instance = null; }
private void Awake() { frame = GetComponentInParent <FrameManager>(); cellAddButton.onClick.RemoveListener(OnCellAddButtonPress); cellAddButton.onClick.AddListener(OnCellAddButtonPress); }
public void Send(string _message) { byte[] frame = FrameManager.WrapFrame110(_message); Client.SendFrame(frame); }
/// <summary> /// /// </summary> /// <param name="account"></param> /// <param name="characterDAO"></param> /// <param name="type"></param> public CharacterEntity(AccountTicket account, CharacterDAO characterDAO, EntityTypeEnum type = EntityTypeEnum.TYPE_CHARACTER) : base(type, characterDAO.Id) { m_lastRegenTime = -1; m_lastEmoteId = -1; Away = false; DatabaseRecord = characterDAO; Alignment = characterDAO.Alignment; Account = account; PartyId = -1; PartyInvitedPlayerId = -1; PartyInviterPlayerId = -1; GuildInvitedPlayerId = -1; GuildInviterPlayerId = -1; NotifyOnFriendConnection = true; Quests = new List<CharacterQuest>(characterDAO.Quests.Select(record => new CharacterQuest(this, record))); CharacterJobs = new JobBook(this); Statistics = new GenericStats(characterDAO); SpellBook = SpellBookFactory.Instance.Create(this); Waypoints = CharacterWaypointRepository.Instance.GetByCharacterId(Id); FrameManager = new FrameManager<CharacterEntity, string>(this); Inventory = new CharacterInventory(this); Bank = BankManager.Instance.GetBankByAccountId(AccountId); PersonalShop = new PersistentInventory((int)EntityTypeEnum.TYPE_MERCHANT, Id); Relations = SocialRelationRepository.Instance.GetByAccountId(AccountId); var guildMember = GuildManager.Instance.GetMember(characterDAO.Guild.GuildId, Id); if (guildMember != null) if (type == EntityTypeEnum.TYPE_CHARACTER) guildMember.CharacterConnected(this); else SetCharacterGuild(guildMember); // Merchant SetChatChannel(ChatChannelEnum.CHANNEL_GUILD, () => DispatchGuildMessage); SetChatChannel(ChatChannelEnum.CHANNEL_GROUP, () => DispatchPartyMessage); RefreshPersonalShopTaxe(); CheckRestrictions(); LoadEquippedMount(); }
private void ProcUpDate() { FrameUnit frameUnit = FrameManager.CreateFrame(dataBuffer, 2); try { using (FileStream fs = new FileStream(firmware, FileMode.Open)) { long length = fs.Length; long totalLeng = length; byte[] buffer = null; int limit = 0; if (boardTypeDetail <= 2) { limit = 80; buffer = new byte[limit + 7]; } else if (boardTypeDetail <= 4) { limit = 8192; buffer = new byte[limit + 7]; } else if (boardTypeDetail == 9) { limit = 1024; buffer = new byte[limit + 7]; } else if (boardTypeDetail == 13) { limit = 512; buffer = new byte[limit + 7]; } else if (boardTypeDetail == 14) { limit = 512; buffer = new byte[limit + 7]; } else if (boardTypeDetail == 16) { limit = 512; buffer = new byte[limit + 7]; } else { limit = lenTable[boardTypeDetail]; buffer = new byte[limit + 7]; } int startIndex = 0; while (length > 0) { if (length > limit) { fs.Read(buffer, 5, limit); length -= limit; buffer[0] = (byte)(startIndex & 0xff); buffer[1] = (byte)((startIndex >> 8) & 0xff); startIndex++; if (isApp) { buffer[2] = (byte)(boardTypeDetail + 0x80); } else { buffer[2] = (byte)(boardTypeDetail); } buffer[3] = majorNum; buffer[4] = minorNum; ushort crc = Helper.CRC16.ComputeCRC16(buffer, 0, limit + 5); buffer[limit + 5] = (byte)(crc & 0xff); buffer[limit + 6] = (byte)((crc >> 8) & 0xff); Protocol.FrameTransmit.Send(srcAddr, boardAddress, 2, buffer, limit + 7); ShowProcess(1 - (length * 1.0f / totalLeng)); //Thread.Sleep(50); //等待功能板响应 frameUnit.WaitData(-1); } else { int rdLen = fs.Read(buffer, 5, limit); length -= rdLen; buffer[0] = (byte)(startIndex & 0xff); buffer[1] = (byte)((startIndex >> 8) & 0xff | 0x80); startIndex++; buffer[2] = (byte)boardTypeDetail; buffer[3] = majorNum; buffer[4] = minorNum; ushort crc = Helper.CRC16.ComputeCRC16(buffer, 0, rdLen + 5); buffer[rdLen + 5] = (byte)(crc & 0xff); buffer[rdLen + 6] = (byte)((crc >> 8) & 0xff); Protocol.FrameTransmit.Send(srcAddr, boardAddress, 2, buffer, rdLen + 7); ShowProcess(1 - (length * 1.0f / totalLeng)); frameUnit.WaitData(-1); } } fs.Close(); } ShowProcess(-1); } catch (ThreadAbortException) { } finally { FrameManager.DeleteFrame(frameUnit); } }