示例#1
0
        private PCNode pcNode1;                      //声明一个自定义的PCNode类型的变量



        /// ------------------------------------------------------------------------------
        /// <summary>
        /// 名    称: FrmMain构造函数
        /// 功    能: 启动窗体最先执行程序
        /// </summary>
        /// <returns>无</returns>
        /// ------------------------------------------------------------------------------
        ///
        //2. 构造函数(启动窗体最先执行程序)
        public FrmMain()
        {
            //系统生成的构造函数(初始化窗体的元素)
            InitializeComponent();
            //禁止检测跨线程调用异常(
            CheckForIllegalCrossThreadCalls = false;
            //初始化窗体类临时变量
            UARTport = null;          //初始化“系统工具-串口对象”
            uart1    = null;          //初始化“Uart类型(串口操作)对象”
            pcNode1  = new PCNode();  //
        }
示例#2
0
        /// ------------------------------------------------------------------------------
        /// <summary>
        /// 功    能:寻找PCNode。
        /// 形    参:无
        /// <returns>无</returns>
        /// -----------------------------------------------------------------------------
        public string findPCNode()
        {
            int    i, j;
            string s1;

            int[] uartNoArray;   //
            System.IO.Ports.SerialPort uartport;
            //1.临时变量

            bool result = false;     //

            byte[] recvData = null;  ////串口接收返回的信息

            byte[] shakeframe = { (byte)'S',        11, (byte)'T',       0xa,       0x0,
                                  (byte)'W', (byte)'h', (byte)'o', (byte)'a', (byte)'r',(byte)'e',
                                  (byte)'y', (byte)'o', (byte)'u', (byte)'?',
                                  (byte)'E', (byte)'N' };

            //初始化内部调用函数临时变量
            s1 = string.Empty;    //初始化临时字符串(置空)

            //创建_port1对象
            uartport = new System.IO.Ports.SerialPort();
            //查询所有串口,串口数在uartNoArray[0]中

            uartNoArray = Uart.findCOM();
            //没有找到串口情况
            if (uartNoArray[0] == 0)
            {
                return(s1 = "没有找到USB串口");
            }

            //有找到串口情况,遍历搜寻串口
            for (i = uartNoArray[0]; i >= 1; i--)
            {
                string comName = "COM" + uartNoArray[i].ToString(); //串口名称
                //
                uart1 = new Uart(uartport, comName, 9600);          //初始化串口工具类
                // pcNode1 = new PCNode(uart1);            //初始化KW01操作工具类

                //PE和PC节点握手
                //s1 = shake(shakeframe);        //与PC节点握手

                //2.打开串口
                result = uart1.open();
                if (!result)
                {
                    continue;
                }

                uart1.setReceInt(200);                                  //设置触发DataRecieved事件的字节数(目的是关闭该事件)

                result = uart1.sendData(shakeframe, shakeframe.Length); //发送握手数据

                if (!result)
                {
                    uart1.close(); continue;
                }
                //
                System.Threading.Thread.Sleep(100);   //线程休眠0.1s

                recvData = uart1.recvData();          //接收数据


                if (recvData == null || recvData.Length == 0 || recvData[0] != 'M')
                {
                    uart1.close(); continue;
                }

                //将握手成功,数组转换成字符串,返回
                for (j = 3; j < recvData[1] + 2; j++)
                {
                    s1 += (char)recvData[j];
                }

                s1 = comName + ":" + s1;
                break;
            }
            if (i == 0)
            {
                s1 = "有USB串口,但无PCNode";
            }

            return(s1);
        }
示例#3
0
 /// ------------------------------------------------------------------------------
 /// <summary>
 /// 名    称:(0)Find_PC_Node:构造函数
 /// 功    能: 创建KW01寻节点实例
 /// 内部参数: uart1:  串口工具类
 /// </summary>
 /// <param name="uart1">串口工具类</param>
 /// <returns>true_串口初始化成功 false_初始化失败</returns>
 /// ------------------------------------------------------------------------------
 public PCNode()
 {
     uart1 = null;
 }