Exemplo n.º 1
0
        /********************************************
         * 函数名称:run()
         * 功能:体温传感节点组件执行函数
         * 参数:无
         * 返回值:无
         * *****************************************/
        public void run()
        {
            while (true)
            {
                if (Form1.stop)
                {
                    this.EmptyingQueue();
                    return;
                }

                //-------------------体温传感器节点input端口传输数据-------------------//
                //若input端口不为空
                if (this.input_ports != null)
                {
                    //foreach(Input_port input in this.input_ports){
                    PortDataTransfer(this.input_ports[0]); //input端口进行数据传输
                    //}
                }

                //--------------------体温传感器组件启动执行---------------------------//
                TemperatureSensor ts = (TemperatureSensor)(this.TemperatureSensor);
                //step1、体温传感器组件接收数据
                ts.ComponentDataReceive(ts);

                //++++++++++++ Debug - 读取组件接收队列中的数据 +++++++++++//
                //Console.Write(ts.name + "组件接收队列内的数据(入队后):");
                //Console.WriteLine("组件接收队列长度:" + ts.Component_reveice_queue.Count);
                //foreach (TemperatureDataType arr in ts.Component_reveice_queue)
                //{
                //    Console.Write("[" +arr.Temperature+"] ");
                //}
                //Console.WriteLine("");
                ////Console.WriteLine("=========================");
                //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++//

                //step2、执行体温传感器功能,即采样数据,并将采样数据传至发送队列
                ts.CollectTemperatureData();
                //step3、体温传感器组件output端口传输数据
                ts.ComponentDataTransfer(ts); //传输采样体温数据

                //--------------------微处理器组件启动执行---------------------------//
                MicroProcessor mp = (MicroProcessor)this.microProcessor;
                //step1、微处理器组件接收数据
                mp.ComponentDataReceive(mp);
                //step2、执行微处理器功能
                mp.MessageEncapsulation(x);
                //step3、微处理器组件output端口传输数据
                mp.ComponentDataTransfer(mp);

                //--------------------缓冲区组件启动执行---------------------------//
                MyBuffer buf = (MyBuffer)this.myBuffer;
                //step1、缓冲区组件接收数据
                buf.ComponentDataReceive(buf);
                //step2、执行缓冲区功能
                buf.MessageBuffering(y);
                //step3、缓冲区组件output端口传输数据
                buf.ComponentDataTransfer(buf);

                //------------------------无线模块--------------------------------//
                WirelessModule wm = (WirelessModule)this.wirelessModule;
                //step1、无线模块组件接收数据
                wm.ComponentDataReceive(wm);
                //step2、执行无线模块数据帧封装功能
                wm.FrameEncapsulation(y, dest_address);
                //step3、无线模块组件output端口传输数据
                wm.ComponentDataTransfer(wm);

                //-------------------体温传感器节点output端口传输数据-------------------//
                //若output端口不为空
                if (this.output_ports != null)
                {
                    foreach (Output_port output in this.output_ports)
                    {
                        PortDataTransfer(output); //output端口进行数据传输
                    }
                }
            }
        }// public void run()