Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
    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>();
    }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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());
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 10
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);
            }
        }
Ejemplo n.º 11
0
        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);
            }
        }
Ejemplo n.º 12
0
        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...");
            }
        }
Ejemplo n.º 13
0
        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);
 }
Ejemplo n.º 16
0
        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();
            }
        }
Ejemplo n.º 17
0
 // Go to Home Page
 private void HomeButton_Tapped(object sender, RoutedEventArgs e)
 {
     FrameManager.GoTo(FrameManager.MainPageFrame);
 }
Ejemplo n.º 18
0
        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());
            }
        }
Ejemplo n.º 19
0
        /// <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;
        }
Ejemplo n.º 20
0
 public void UnRegistMsg(string msg)
 {
     FrameManager.GetInstence <MsgManager>(notifiedObject.MsgStstem).UnRegistMsg(this, msg);
 }
Ejemplo n.º 21
0
        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();
            }
        }
Ejemplo n.º 22
0
 private void Start()
 {
     _frameManager = GameObject.FindObjectOfType <FrameManager>();
 }
Ejemplo n.º 23
0
        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);
            }
        }
Ejemplo n.º 24
0
        //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);
            });
        }
Ejemplo n.º 25
0
        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);
                }
            }
        }
Ejemplo n.º 26
0
 private void Capture_Button_Click(object sender, RoutedEventArgs e)
 {
     FrameManager.GoTo(FrameManager.CapturePage, false);
 }
Ejemplo n.º 27
0
 private void OnDisable()
 {
     _instance = null;
 }
Ejemplo n.º 28
0
 private void Awake()
 {
     frame = GetComponentInParent <FrameManager>();
     cellAddButton.onClick.RemoveListener(OnCellAddButtonPress);
     cellAddButton.onClick.AddListener(OnCellAddButtonPress);
 }
Ejemplo n.º 29
0
 public void Send(string _message)
 {
     byte[] frame = FrameManager.WrapFrame110(_message);
     Client.SendFrame(frame);
 }
Ejemplo n.º 30
0
        /// <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();
        }
Ejemplo n.º 31
0
        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);
            }
        }