Ejemplo n.º 1
0
        /// <summary>
        /// 串口发送数据处理函数
        /// </summary>
        /// <param name="spb">串口助手对象</param>
        /// <param name="data">发送数据</param>
        /// <param name="format">发送数据格式</param>
        private void SerialPortDataWriteProcess(SerialPortHelper spb, string data, SerialFormat format = SerialFormat.None)
        {
            if (data == "" || !spb.IsOpen)
            {
                return;
            }
            if (format == SerialFormat.None)
            {
                format = SerialData.IsStringHex(data) ? SerialFormat.Hex : SerialFormat.String;
            }
            byte[] arrData;
            switch (format)
            {
            case SerialFormat.Hex:
                arrData = SerialData.ToHexByteArray(data);
                Console.WriteLine("发送数据:" + SerialData.ToHexString(arrData));
                break;

            case SerialFormat.String:
                arrData = SerialData.ToByteArray(data);
                Console.WriteLine("发送数据:" + data);
                break;

            case SerialFormat.None:
            default:
                return;
            }
            spb.Write(arrData);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 设置测量模式
        /// </summary>
        public void setMode(SerialPortHelper serialPort)
        {
            int temp_mode = 0;//用于存储各种扳手实际对应仪器的变量

            //设置PLC模式,一一对应,电子扳手:仪器的1->PLC的1;咔嗒扳手:仪器的3->PLC的1;电动扳手:仪器的2->PLC的2
            switch (CurrentTech.Mode)
            {
            case 1:
                s7Help.WriteTestMode(Vars.ControlMode ? 2 : 1);
                temp_mode = 2;
                break;

            case 2:
                //s7Help.WriteTestMode(Vars.ControlMode ? 3 : 2);
                s7Help.WriteTestMode(2);    //电动
                temp_mode = 6;
                break;

            case 3:
                s7Help.WriteTestMode(Vars.ControlMode ? 2 : 1);
                //s7Help.WriteTestMode(1);//咔嗒
                temp_mode = 3;
                break;
            }
            //设置校验仪模式
            for (int i = 0; i < 20; i++)
            {
                serialPort.send(temp_mode.ToString());
                Thread.Sleep(100);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 串口错误事件
        /// </summary>
        /// <param name="enumError">错误枚举</param>
        /// <param name="strError">错误内容</param>
        private void SerialPortErrorProcess(object sender, enumSerialError enumError, string strError)
        {
            this.Invoke(new Action(() =>
            {
                SerialPortHelper spb = (SerialPortHelper)sender;
                switch (enumError)
                {
                case enumSerialError.LinkError:
                    spb.CloseCom(out string str);
                    Console.WriteLine(spb.SerialMark + "串口错误:" + strError);
                    //MessageBox.Show(strError, "串口错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;

                case enumSerialError.WriteError:
                    Console.WriteLine(spb.SerialMark + "发送错误:" + strError);
                    break;

                case enumSerialError.ReceivedError:
                    Console.WriteLine(spb.SerialMark + "接收错误:" + strError);
                    break;

                default:
                    break;
                }
            }));
        }
Ejemplo n.º 4
0
        public HttpResponseMessage Get(int player, float load)
        {
            try
            {
                string portName = "";

                if (player == 1)
                {
                    portName = SerialPortHelper.player1Port;
                }
                else
                {
                    portName = SerialPortHelper.player2Port;
                }

                intensity = SerialPortHelper.CreateIntensity(load);

                SerialPortHelper.WritePort(portName, intensity);

                resultTest = $"Player: {player} Port name: {portName} Intensity: {intensity}";

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (System.Exception)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 串口对手初始化
        /// </summary>
        private void InitSerialPort()
        {
            //初始化串口配置类
            configCom1 = new ConfigCom(this.cbSerial1, this.cbBaudRate1, this.cbDataBits1, this.cbStop1, this.cbParity1);
            configCom2 = new ConfigCom(this.cbSerial2, this.cbBaudRate2, this.cbDataBits2, this.cbStop2, this.cbParity2);

            //初始化串口助手类
            serialPort1 = new SerialPortHelper();
            serialPort1.ConfigSerialPort = configCom1.GetConfigComData();
            serialPort1.BindSerialPortDataReceivedProcessEvent(new SerialPortHelper.DelegateSerialPortDataReceivedProcessEvent(SerialPortDataReceivedProcess));
            serialPort1.BindSerialPortErrorEvent(new SerialPortHelper.DelegateSerialPortErrorEvent(SerialPortErrorProcess));
            serialPort1.SerialReceviedTimeInterval = 40;
            serialPort1.SerialWriteTimeInterval    = 1;
            serialPort1.SerialReceviedLengthMax    = 1024;
            serialPort1.SerialMark = "串口1";

            serialPort2 = new SerialPortHelper();
            serialPort2.ConfigSerialPort = configCom1.GetConfigComData();
            serialPort2.BindSerialPortDataReceivedProcessEvent(new SerialPortHelper.DelegateSerialPortDataReceivedProcessEvent(SerialPortDataReceivedProcess));
            serialPort2.BindSerialPortErrorEvent(new SerialPortHelper.DelegateSerialPortErrorEvent(SerialPortErrorProcess));
            serialPort2.SerialReceviedTimeInterval = 40;
            serialPort2.SerialWriteTimeInterval    = 1;
            serialPort2.SerialReceviedLengthMax    = 1024;
            serialPort2.SerialMark = "串口2";
        }
Ejemplo n.º 6
0
        private void ComComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            var comboBox = (ComboBox)sender;

            // 需要关闭端口后设置
            serialPort = SerialPortHelper.GetSerialPort(comboBox.Text);

            // 数据接收回调
            SerialPortHelper.ParseReData = (byte[] data) =>
            {
                Console.WriteLine("解析数据!");
                controllerToRead.ParseDataToControllerItem(data);

                // 解析完成后,读取下一个控制器数据
                // ReadControllerData(serialPort, ++controllerToReadIndex);
            };

            // 同步时间
            byte[] txData = { 0x00,                                       0x00,                         0x10,                    0x01,                      0x07, (byte)(DateTime.Now.Year - 2000),
                              (byte)DateTime.Now.Month, (byte)DateTime.Now.Day, (byte)DateTime.Now.DayOfWeek, (byte)DateTime.Now.Hour, (byte)DateTime.Now.Minute,
                              (byte)DateTime.Now.Second };

            SerialPortHelper.SendData(serialPort, txData);

            Thread.Sleep(100);

            // 读取第一个控制器信息
            ReadControllerData(serialPort, 0);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 开关
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void PowerButton_Click(object sender, EventArgs e)
        {
            Button powerBtn  = (Button)sender;
            int    groupId   = 0;
            int    addressId = 0;

            HelperTool.GetControllerAddressId(powerBtn.Tag.ToString(), out groupId, out addressId);

            currentControllerItem = GetCurrentController(groupId, addressId);
            if (currentControllerItem == null)
            {
                return;
            }

            byte powerByte = 0x01;

            if (currentControllerItem.PowerState)
            {
                powerByte = 0x00;
                powerBtn.BackgroundImage = Properties.Resources.powerOff;
            }
            else
            {
                powerBtn.BackgroundImage = Properties.Resources.powerOn;
            }

            currentControllerItem.PowerState = !currentControllerItem.PowerState;

            byte[] txData = { (byte)currentControllerItem.GroupId, (byte)currentControllerItem.AddressId, 0x10, 0x10, 0x01, powerByte };

            SerialPortHelper.SendData(serialPort, txData);
        }
Ejemplo n.º 8
0
        private void SelectPort_SelectedIndexChanged(object sender, EventArgs e)
        {
            var prop         = SerialPortHelper.GetComPortProperties(((COMPortItem)SelectPort.SelectedItem).Name);
            var result       = (SerialPortHelper.Baud)prop.dwSettableBaud;
            var tmp          = Enum.GetValues((typeof(SerialPortHelper.Baud)));
            var selectedItem = SelectBaudRate.SelectedItem;

            SelectBaudRate.Items.Clear();
            var listBaud = new List <object>();

            foreach (Enum br in tmp)
            {
                var item = GetEnumDescription(br);
                try
                {
                    listBaud.Add(int.Parse(item));
                }
                catch (FormatException)
                { continue; }
            }
            SelectBaudRate.Items.AddRange(listBaud.OrderBy(o => o).ToArray());
            if (listBaud.Contains(selectedItem))
            {
                SelectBaudRate.SelectedItem = selectedItem;
            }
            else
            {
                SelectBaudRate.SelectedItem = SelectBaudRate.Items[0];
            }
        }
Ejemplo n.º 9
0
        static void Main(string[] args)
        {
            try
            {
                string portName = SerialPortHelper.FindProlificPortName();
                using (SSC32Board board = new SSC32Board(portName))
                {
                    Servos servos = new Servos();
                    servos.ConfigureFromFile("ConfigSSC32.cfg");

                    Servo baseServo = servos.BaseServo;
                    System.Console.WriteLine(baseServo);

                    baseServo.Move(-30, 100, board);
                    baseServo.Move(30, 100, board);
                }
            }
            catch (Exception ex)
            {
                System.Console.WriteLine(ex.ToString());
            }
            finally
            {
                System.Console.WriteLine("Hit <Enter> to end.");
                System.Console.ReadLine();
            }
        }
Ejemplo n.º 10
0
 public ClickTorque(SerialPortHelper serialPort, S7Help s7Help, Main wnd)
 {
     this.serialPort = serialPort;
     this.wnd        = wnd;
     name            = "咔嗒扳手";
     this.s7Help     = s7Help;
     hybirdLock      = new HslCommunication.Core.SimpleHybirdLock();
 }
Ejemplo n.º 11
0
 private void EnsureSSC32BoardIsInitialized()
 {
     if (m_SSC32Board == null)
     {
         string portName = SerialPortHelper.FindProlificPortName();
         m_SSC32Board = new SSC32Board(portName);
     }
 }
        public void SendMessage_NoExceptionThrown()
        {
            string     portName   = "COM3";
            string     message    = "Test Running";
            SignalType signalType = SignalType.String;

            Assert.DoesNotThrow(() => SerialPortHelper.SendMessage(portName, message, signalType));
        }
Ejemplo n.º 13
0
 private void RefreshSystemSerialPortList()
 {
     CmbComPort.ItemsSource = SerialPortHelper.GetSerialPorts();
     if (CmbComPort.Items.Count > 0)
     {
         CmbComPort.SelectedIndex = 0;
     }
 }
Ejemplo n.º 14
0
        private void ReadControllerData(SerialPort serialPort, int controllerIndex)
        {
            if (controllerIndex < controllerItems.Count())
            {
                controllerToRead = controllerItems[controllerToReadIndex];

                SerialPortHelper.ReadAllData(serialPort, controllerToRead.GroupId, controllerToRead.AddressId);
            }
        }
Ejemplo n.º 15
0
        bool CheckSerialPort()
        {
            if (SerialPortHelper.GetSerialPorts().Length == 0)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="ConfigPath"></param>
        private void InitItems(string CommandConfigPath, string SerialConfigPath)
        {
            StreamReader Reader;

            try
            {
                Reader = new StreamReader(CommandConfigPath);
            }
            catch (Exception)
            {
                throw new Exception("指令配置文件不存在!");
            }

            try
            {
                Command.CMD_ProjectPowerOn  = StrToHex(Reader.ReadLine());
                Command.CMD_ProjectPowerOff = StrToHex(Reader.ReadLine());

                Command.CMD_FilmPowerOn  = StrToHex(Reader.ReadLine());
                Command.CMD_FilmPowerOff = StrToHex(Reader.ReadLine());

                Command.CMD_FilmEnlarge  = StrToHex(Reader.ReadLine());
                Command.CMD_FilmMinnor   = StrToHex(Reader.ReadLine());
                Command.CMD_FilmZoomStop = StrToHex(Reader.ReadLine());

                Command.CMD_FilmAutoFocus = StrToHex(Reader.ReadLine());

                Command.CMD_FilmFroze   = StrToHex(Reader.ReadLine());
                Command.CMD_FilmUnFroze = StrToHex(Reader.ReadLine());

                Command.CMD_FilmSaveFilm     = StrToHex(Reader.ReadLine());
                Command.CMD_FilmDownloadFile = StrToHex(Reader.ReadLine());

                Command.CMD_FilmLightIncrease = StrToHex(Reader.ReadLine());
                Command.CMD_FilmLightReduce   = StrToHex(Reader.ReadLine());

                Command.CMD_TableLightIncrease = StrToHex(Reader.ReadLine());
                Command.CMD_TableLightReduce   = StrToHex(Reader.ReadLine());
                Command.CMD_TableLightClose    = StrToHex(Reader.ReadLine());

                Reader.Close();
            }
            catch (Exception)
            {
                throw new Exception("配置文件错误!");
            }

            try
            {
                Port = new SerialPortHelper(SerialConfigPath);
            }
            catch (Exception)
            {
                throw;
            }
        }
Ejemplo n.º 17
0
        //试验动作线程
        //Thread th_temp=null;
        #endregion

        #region 构造函数
        public Main(Login wnd)
        {
            InitializeComponent();
            serialPort = new InstrumentSerialPort(this);//仪器串口
            //创建借还扳手窗口,并隐藏
            borrowForm = new BorrowToolWnd();
            borrowForm.Hide();
            serialScanPort = new ScanSerialPort(this, borrowForm);//扫码枪串口
            this.wnd       = wnd;
        }
Ejemplo n.º 18
0
 /// <summary>
 /// SerialPortHelper初始化
 /// </summary>
 private void InitSerialPortHelper()
 {
     spb = new SerialPortHelper();
     spb.ConfigSerialPort = cc.GetConfigComData();
     spb.BindSerialPortDataReceivedProcessEvent(new SerialPortHelper.DelegateSerialPortDataReceivedProcessEvent(SerialPortDataReceivedProcess));
     spb.BindSerialPortErrorEvent(new SerialPortHelper.DelegateSerialPortErrorEvent(SerialPortErrorProcess));
     spb.SerialReceviedTimeInterval = 40;
     spb.SerialWriteTimeInterval    = 1;
     spb.SerialReceviedLengthMax    = 1024;
 }
Ejemplo n.º 19
0
        private void RefreshSystemSerialPortList()
        {
            CmbComPort.ItemsSource = SerialPortHelper.GetSerialPorts();
            if (CmbComPort.Items.Count > 0)
            {
                CmbComPort.SelectedIndex = 0;
            }

            LblPortStatus.Content = @"系统哥哥说,他就知道这几个家伙了。";
        }
Ejemplo n.º 20
0
 public DigitalTorque(SerialPortHelper serialPort, S7Help s7Help, Main wnd)
 {
     this.name            = "数显扳手";
     this.serialPort      = serialPort;
     this.wnd             = wnd;
     this.s7Help          = s7Help;
     hybirdLock           = new HslCommunication.Core.SimpleHybirdLock();
     manualWriteValueForm = new ManualWriteValueForm();
     manualWriteValueForm.Hide();
 }
Ejemplo n.º 21
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            SerialPortHelper.GetData();
        }
Ejemplo n.º 22
0
 private void LoadParams()
 {
     CmbBoundRate.ItemsSource   = SerialPortHelper.GetSerialPortBoundRate();
     CmbDataBit.ItemsSource     = SerialPortHelper.GetSerialPortDataBits();
     CmbStopBit.ItemsSource     = SerialPortHelper.GetSerialPortStopBits();
     CmbParity.ItemsSource      = SerialPortHelper.GetSerialPortParity();
     CmbBoundRate.SelectedIndex = 0;
     CmbDataBit.SelectedIndex   = 0;
     CmbStopBit.SelectedIndex   = 0;
     CmbParity.SelectedIndex    = 0;
     RefreshSystemSerialPortList();
 }
Ejemplo n.º 23
0
 public MainWindow()
 {
     InitializeComponent();
     LbLoadedBinFile.ItemsSource = _loadedBinFiles;
     _messageTimer = new Timer
     {
         Interval = 10,
         Enabled  = true
     };
     LoadParams();
     _portHelper     = new SerialPortHelper();
     _portDownloader = new SerialPortDownloader(_portHelper);
 }
Ejemplo n.º 24
0
        private void RefreshButton_Click(object sender, EventArgs e)
        {
            // 同步时间
            byte[] txData = { 0x00,                                       0x00,                         0x10,                    0x01,                      0x07, (byte)(DateTime.Now.Year - 2000),
                              (byte)DateTime.Now.Month, (byte)DateTime.Now.Day, (byte)DateTime.Now.DayOfWeek, (byte)DateTime.Now.Hour, (byte)DateTime.Now.Minute,
                              (byte)DateTime.Now.Second };

            SerialPortHelper.SendData(serialPort, txData);

            // RefreshSettingDisplay();

            ReadSelectedComData(currentControllerItem.GroupId, currentControllerItem.AddressId);
        }
Ejemplo n.º 25
0
 private void LoadParams()
 {
     CmbBoundRate.ItemsSource   = SerialPortHelper.GetSerialPortBoundRate();
     CmbDataBit.ItemsSource     = SerialPortHelper.GetSerialPortDataBits();
     CmbStopBit.ItemsSource     = SerialPortHelper.GetSerialPortStopBits();
     CmbParity.ItemsSource      = SerialPortHelper.GetSerialPortParity();
     CmbBoundRate.SelectedIndex = 9;
     CmbDataBit.SelectedIndex   = 3;
     CmbStopBit.SelectedIndex   = 0;
     CmbParity.SelectedIndex    = 0;
     RefreshSystemSerialPortList();
     _messageTimer.Elapsed += (sender, args) => Dispatcher.Invoke(() => LblMessage.Content = _messageBarMessage);
     _messageTimer.Start();
 }
Ejemplo n.º 26
0
        static void Main()
        {
            string portName = SerialPortHelper.FindProlificPortName();

            using (SSC32Board board = new SSC32Board(portName))
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                MainForm mainForm = new MainForm();
                mainForm.Initialize(board);
                Application.Run(mainForm);
            }
        }
Ejemplo n.º 27
0
 public void SetHost(HomeGenieService hg, SchedulerItem item)
 {
     homegenie     = hg;
     schedulerItem = item;
     Reset();
     netHelper        = new NetHelper(homegenie);
     serialPortHelper = new SerialPortHelper();
     tcpClientHelper  = new TcpClientHelper();
     udpClientHelper  = new UdpClientHelper();
     mqttClientHelper = new MqttClientHelper();
     knxClientHelper  = new KnxClientHelper();
     schedulerHelper  = new SchedulerHelper(homegenie);
     programHelper    = new ProgramHelperBase(homegenie);
 }
Ejemplo n.º 28
0
 public RobotHandler(string ip, int port)
 {
     _ip   = ip;
     _port = port;
     InitAngleKs();
     InitSocket(ip, port);
     try
     {
         _serialPortHelper = new SerialPortHelper(ConfigHelper.GetInstance().ComPort, 9600);
     }
     catch (Exception e)
     {
         LogHelper.GetInstance().ShowMsg("Init SerialPort fail:" + e.Message);
     }
 }
Ejemplo n.º 29
0
        /// <summary>
        /// 发送命令到设备
        /// </summary>
        /// <param name="controllerItem"></param>
        private void SendSettingToDevice(ControllerItem controllerItem)
        {
            controllerItem.SortTimers();

            // 起始地址
            int         startAddress = 0x20;
            List <byte> txData       = new List <byte>()
            {
                (byte)controllerItem.GroupId, (byte)controllerItem.AddressId, 0x10, (byte)startAddress, 0x50
            };

            // 添加关断定时器数据
            for (int i = 0; i < maxTimePointCount; i++)
            {
                if (i >= controllerItem.OffTimerCount)
                {
                    txData.AddRange(new byte[] { 0xff, 0xff });

                    continue;
                }

                byte[] minutesBytes = BitConverter.GetBytes(controllerItem.OffTimersMinutes[i]);

                txData.AddRange(new byte[] { minutesBytes[0], minutesBytes[1] });
            }

            // 添加打开定时器
            for (int i = 0; i < maxTimePointCount; i++)
            {
                if (i >= controllerItem.OnTimerCount)
                {
                    txData.AddRange(new byte[] { 0xff, 0xff, 0, 0, 0, 0, 0, 0 });

                    continue;
                }

                byte[] minutesBytes = BitConverter.GetBytes(controllerItem.OnTimersMinutes[i]);

                txData.AddRange(new byte[] { minutesBytes[0], minutesBytes[1] });

                foreach (var item in controllerItem.OnTimersColorValues[i])
                {
                    txData.Add((byte)item);
                }
            }

            SerialPortHelper.SendData(serialPort, txData.ToArray());
        }
Ejemplo n.º 30
0
        /// <summary>
        /// 串口开关按钮事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSerialPortSwitch_Click(object sender, EventArgs e)
        {
            Button           btn      = (Button)sender;
            ConfigCom        cc       = (btn.Tag.ToString() == "1") ? configCom1 : configCom2;
            SerialPortHelper spb      = (btn.Tag.ToString() == "1") ? serialPort1 : serialPort2;
            CheckBox         chkTimer = (btn.Tag.ToString() == "1") ? chkSerialWriteLoop1 : chkSerialWriteLoop2;
            GroupBox         grp      = btn.Parent as GroupBox;

            if (btn.Text == "打开串口")
            {
                string strError;
                try
                {
                    spb.OpenCom(cc.GetConfigComData(), out strError);
                }
                catch (Exception err)
                {
                    strError = err.Message;
                }
                if (strError != "null")
                {
                    MessageBox.Show(strError);
                }
                else
                {
                    cc.GetDetectCom().Close();
                    Console.WriteLine("开启{0}端口成功。", cc.PortName);
                    btn.Text = "关闭串口";
                    GroupBoxEnable(grp, false);
                }
            }
            else
            {
                spb.CloseCom(out string strError);
                if (strError != "null")
                {
                    MessageBox.Show(strError);
                }
                else
                {
                    cc.GetDetectCom().Open();
                    Console.WriteLine("关闭端口成功。");
                    btn.Text = "打开串口";
                    GroupBoxEnable(grp, true);
                    chkTimer.Checked = false;
                }
            }
        }