Example #1
0
        public String get(String ipname, int trials, int pause)
        {
            String retval = "***";

            System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse(ipname);
            EthSystemConnector   conn      = new EthSystemConnector(ipaddress);

            conn.UserName = "******";
            DataManSystem dataman = new DataManSystem(conn);
            int           counter = 0;
            Boolean       found   = false;

            while ((found == false) && (counter < trials))
            {
                try {
                    dataman.Connect();
                    DmccResponse response = dataman.SendCommand("GET RESULT");
                    retval = response.PayLoad;
                    found  = true;
                }
                catch (Exception) {
                    System.Threading.Thread.Sleep(pause * 1000);
                }
                finally {
                    dataman.Disconnect();
                    counter++;
                }
            }
            return(retval);
        }
Example #2
0
 public void OnResponseReceived(DataManSystem dataManSystem, DmccResponse response)
 {
     if (Element != null)
     {
         Element.OnResponseReceived(response.PayLoad, response.Error?.LocalizedMessage);
     }
 }
Example #3
0
 /// <summary>
 /// 定时器周期触发事件处理函数
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Timer1_Tick(object sender, EventArgs e)
 {
     if (dataManSystem == null)
     {
         this.Invoke(DiscoverScanner);
     }
     else
     {
         try
         {
             ///关断定时器,防止重复触发
             this.timer1.Stop();
             ///使用“GET DEVICE.NAME”命令,检测扫码枪是否掉线
             DmccResponse dmccResponse = dataManSystem.SendCommand("GET DEVICE.NAME", 1000);
         }
         catch (Exception)
         {
             dataManSystem.Disconnect();
             dataManSystem = null;
             this.comboBox1.Items.Clear();
             systemInfos.Clear();
         }
         this.timer1.Start();
     }
 }
        public frmReconnecting(Form parent, DataManSystem system)
        {
            _parent      = parent;
            _system      = system;
            _syncContext = WindowsFormsSynchronizationContext.Current;

            InitializeComponent();
        }
Example #5
0
 private void DataManSystem_SystemDisconnected(object sender, EventArgs args)
 {
     dataManSystem.Disconnect();
     dataManSystem.Dispose();
     dataManSystem = null;
     this.Invoke(SetFormTitle, $"扫码校验");
     this.OnFreshScannerList();
 }
 /// <summary>
 /// Ctor. Creats a result collector instance
 /// </summary>
 /// <param name="aDmSystem">DataMan system to use for getting the result components</param>
 /// <param name="aResultTypes">result types that are required for a complete result</param>
 public ResultCollector(DataManSystem aDmSystem, ResultTypes aResultTypes)
 {
     m_DmSystem    = aDmSystem;
     m_ResultTypes = aResultTypes;
     m_DmSystem.ReadStringArrived    += new ReadStringArrivedHandler(OnReadStringArrived);
     m_DmSystem.ImageGraphicsArrived += new ImageGraphicsArrivedHandler(OnImageGraphicsArrived);
     m_DmSystem.ImageArrived         += new ImageArrivedHandler(OnImageArrived);
     m_DmSystem.XmlResultArrived     += new XmlResultArrivedHandler(OnXmlResultArrived);
 }
Example #7
0
            public void Connect()
            {
                try
                {
                    //EthSystemDiscoverer.SystemInfo eth_system_info = MasterCamera as EthSystemDiscoverer.SystemInfo;
                    //EthSystemConnector conn = new EthSystemConnector(eth_system_info.IPAddress, eth_system_info.Port);
                    EthSystemConnector conn = new EthSystemConnector(IPAddress);
                    conn.UserName = User;
                    conn.Password = Password;

                    _connector = conn;

                    _system = new DataManSystem(_connector);
                    _system.DefaultTimeout = 5000;


                    #region  Subscribe to events that are signalled when the system is connected / disconnected.
                    _system.SystemConnected    += new SystemConnectedHandler(OnSystemConnected);
                    _system.SystemDisconnected += new SystemDisconnectedHandler(OnSystemDisconnected);
                    //_system.SystemWentOnline += new SystemWentOnlineHandler(OnSystemWentOnline);
                    //_system.SystemWentOffline += new SystemWentOfflineHandler(OnSystemWentOffline);
                    //_system.KeepAliveResponseMissed += new KeepAliveResponseMissedHandler(OnKeepAliveResponseMissed);
                    //_system.BinaryDataTransferProgress += new BinaryDataTransferProgressHandler(OnBinaryDataTransferProgress);
                    //_system.OffProtocolByteReceived += new OffProtocolByteReceivedHandler(OffProtocolByteReceived);
                    //_system.AutomaticResponseArrived += new AutomaticResponseArrivedHandler(AutomaticResponseArrived);
                    #endregion

                    #region Subscribe to events that are signalled when the device sends auto-responses.
                    ResultTypes requested_result_types = ResultTypes.ReadXml | ResultTypes.Image | ResultTypes.ImageGraphics;
                    //ResultTypes requested_result_types = ResultTypes.ReadXml;
                    _results = new ResultCollector(_system, requested_result_types);
                    _results.ComplexResultCompleted += Results_ComplexResultCompleted;
                    //_results.SimpleResultDropped += Results_SimpleResultDropped;
                    #endregion

                    //_system.SetKeepAliveOptions(cbEnableKeepAlive.Checked, 3000, 1000);

                    _system.Connect();

                    try
                    {
                        _system.SetResultTypes(requested_result_types);
                    }
                    catch
                    { }
                }
                catch
                {
                    CleanupConnection();
                }
            }
Example #8
0
        private void CleanupConnection()
        {
            if (null != _system)
            {
                _system.SystemConnected      -= OnSystemConnected;
                _system.SystemDisconnected   -= OnSystemDisconnected;
                _system.ReadStringArrived    -= OnReadStringArrived;
                _system.ImageArrived         -= OnImageArrived;
                _system.ImageGraphicsArrived -= OnImageGraphicsArrived;
            }

            _connector = null;
            _system    = null;
        }
Example #9
0
        private void CleanupConnection()
        {
            if (null != _system)
            {
                _system.SystemConnected            -= OnSystemConnected;
                _system.SystemDisconnected         -= OnSystemDisconnected;
                _system.SystemWentOnline           -= OnSystemWentOnline;
                _system.SystemWentOffline          -= OnSystemWentOffline;
                _system.KeepAliveResponseMissed    -= OnKeepAliveResponseMissed;
                _system.BinaryDataTransferProgress -= OnBinaryDataTransferProgress;
                _system.OffProtocolByteReceived    -= OffProtocolByteReceived;
                _system.AutomaticResponseArrived   -= AutomaticResponseArrived;
            }

            _connector = null;
            _system    = null;
        }
Example #10
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            if (listBoxDetectedSystems.SelectedIndex == -1 || listBoxDetectedSystems.SelectedIndex >= listBoxDetectedSystems.Items.Count)
            {
                return;
            }

            btnConnect.Enabled = false;
            _autoconnect       = false;

            try
            {
                var system_info = listBoxDetectedSystems.Items[listBoxDetectedSystems.SelectedIndex];

                if (system_info is EthSystemDiscoverer.SystemInfo)
                {
                    EthSystemDiscoverer.SystemInfo eth_system_info = system_info as EthSystemDiscoverer.SystemInfo;
                    EthSystemConnector             conn            = new EthSystemConnector(eth_system_info.IPAddress, eth_system_info.Port)
                    {
                        UserName = "******",
                        Password = txtPassword.Text
                    };

                    _connector = conn;
                }
                else if (system_info is SerSystemDiscoverer.SystemInfo)
                {
                    SerSystemDiscoverer.SystemInfo ser_system_info = system_info as SerSystemDiscoverer.SystemInfo;
                    SerSystemConnector             conn            = new SerSystemConnector(ser_system_info.PortName, ser_system_info.Baudrate);

                    _connector = conn;
                }

                _logger.Enabled   = cbLoggingEnabled.Checked;
                _connector.Logger = _logger;

                _system = new DataManSystem(_connector)
                {
                    DefaultTimeout = 5000
                };

                // Subscribe to events that are signalled when the system is connected / disconnected.
                _system.SystemConnected            += new SystemConnectedHandler(OnSystemConnected);
                _system.SystemDisconnected         += new SystemDisconnectedHandler(OnSystemDisconnected);
                _system.SystemWentOnline           += new SystemWentOnlineHandler(OnSystemWentOnline);
                _system.SystemWentOffline          += new SystemWentOfflineHandler(OnSystemWentOffline);
                _system.KeepAliveResponseMissed    += new KeepAliveResponseMissedHandler(OnKeepAliveResponseMissed);
                _system.BinaryDataTransferProgress += new BinaryDataTransferProgressHandler(OnBinaryDataTransferProgress);
                _system.OffProtocolByteReceived    += new OffProtocolByteReceivedHandler(OffProtocolByteReceived);
                _system.AutomaticResponseArrived   += new AutomaticResponseArrivedHandler(AutomaticResponseArrived);

                // Subscribe to events that are signalled when the device sends auto-responses.
                ResultTypes requested_result_types = ResultTypes.ReadXml | ResultTypes.Image | ResultTypes.ImageGraphics;
                _results = new ResultCollector(_system, requested_result_types);
                _results.ComplexResultCompleted += Results_ComplexResultCompleted;
                _results.SimpleResultDropped    += Results_SimpleResultDropped;

                _system.SetKeepAliveOptions(cbEnableKeepAlive.Checked, 3000, 1000);

                _system.Connect(1000);

                try
                {
                    _system.SetResultTypes(requested_result_types);
                }
                catch
                { }
            }
            catch (Exception ex)
            {
                CleanupConnection();

                AddListItem("Failed to connect: " + ex.ToString());
            }

            _autoconnect = true;
            RefreshGui();
        }
Example #11
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            btnConnect.Enabled = false;

            try
            {
                if (listBoxDetectedSystems.SelectedIndex != -1 && listBoxDetectedSystems.Items.Count > listBoxDetectedSystems.SelectedIndex)
                {
                    var system_info = listBoxDetectedSystems.Items[listBoxDetectedSystems.SelectedIndex];

                    if (system_info is EthSystemDiscoverer.SystemInfo)
                    {
                        EthSystemDiscoverer.SystemInfo eth_system_info = system_info as EthSystemDiscoverer.SystemInfo;
                        EthSystemConnector             conn            = new EthSystemConnector(eth_system_info.IPAddress);

                        conn.UserName = "******";
                        conn.Password = txtPassword.Text;

                        _connector = conn;
                    }
                    else if (system_info is SerSystemDiscoverer.SystemInfo)
                    {
                        SerSystemDiscoverer.SystemInfo ser_system_info = system_info as SerSystemDiscoverer.SystemInfo;
                        SerSystemConnector             conn            = new SerSystemConnector(ser_system_info.PortName, ser_system_info.Baudrate);

                        _connector = conn;
                    }
                }

                _connector.Logger = new GuiLogger(tbLog, cbLoggingEnabled.Checked, ref _closing);

                _system = new DataManSystem(_connector);
                _system.DefaultTimeout = 5000;

                // Subscribe to events that are signalled when the system is connected / disconnected.
                _system.SystemConnected    += new SystemConnectedHandler(OnSystemConnected);
                _system.SystemDisconnected += new SystemDisconnectedHandler(OnSystemDisconnected);

                _system.SystemWentOnline  += new SystemWentOnlineHandler(OnSystemWentOnline);
                _system.SystemWentOffline += new SystemWentOfflineHandler(OnSystemWentOffline);

                // Subscribe to events that are signalled when the deveice sends auto-responses.
                _system.ReadStringArrived          += new ReadStringArrivedHandler(OnReadStringArrived);
                _system.XmlResultArrived           += new XmlResultArrivedHandler(OnXmlResultArrived);
                _system.ImageArrived               += new ImageArrivedHandler(OnImageArrived);
                _system.ImageGraphicsArrived       += new ImageGraphicsArrivedHandler(OnImageGraphicsArrived);
                _system.BinaryDataTransferProgress += new BinaryDataTransferProgressHandler(OnBinaryDataTransferProgress);

                _system.SetKeepAliveOptions(cbEnableKeepAlive.Checked, 3000, 1000);

                _system.Connect();
            }
            catch (Exception ex)
            {
                CleanupConnection();

                AddListItem("Failed to connect: " + ex.ToString());
                btnConnect.Enabled = true;
            }

            _autoconnect = true;
        }
Example #12
0
 public override void Dispose()
 {
     if (_system != null)
     {
         _system.Dispose();
         _system = null;
         Logging(LogLevel.Info, String.Format("Device|{0}|{1}:{2}|Disposed", DeviceType, IP, Port));
     } 
     else
         Logging(LogLevel.Info, String.Format("Device|{0}|{1}:{2}|Dispose failed _system is null", DeviceType, IP, Port));
 }
Example #13
0
        private void Initialize()
        {
            IPAddress ipaddress = null;
            if (IPAddress.TryParse(IP, out ipaddress))
                _conn = new EthSystemConnector(ipaddress, Port);
            else
            {
                _conn = new EthSystemConnector(IPAddress.Parse("0.0.0.0"), Port);
                Logging(LogLevel.Error, String.Format("Device|{0}|{1}:{2}|IP address invalid cannot initialize device", DeviceType, IP, Port));
            }

            _system = new DataManSystem(_conn);
            _resultCollector = new ResultCollector(_system, _resultTypes);
            _resultCollector.ComplexResultArrived += onDataArrived;
            _system.SetKeepAliveOptions(true, 3000, 1000);
            _system.DefaultTimeout = 1000;
            _system.SetResultTypes(_resultTypes);
            _system.SystemConnected += new SystemConnectedHandler(OnSystemConnected);
            _system.SystemDisconnected += new SystemDisconnectedHandler(OnSystemDisconnected);
        }
Example #14
0
 private void selectScanner(string scanner)
 {
     if (serSystemConnector != null || dataManSystem != null)
     {
         if (dataManSystem == null)
         {
             serSystemConnector.Disconnect();
             serSystemConnector.Dispose();
             serSystemConnector = null;
         }
         else if (serSystemConnector == null)
         {
             dataManSystem.Disconnect();
             dataManSystem.Dispose();
             dataManSystem = null;
         }
         else
         {
             try
             {
                 dataManSystem.ReadStringArrived -= DataManSystem_ReadStringArrived;
             }
             catch
             {
             }
             dataManSystem.Disconnect();
             dataManSystem = null;
             serSystemConnector.Disconnect();
             serSystemConnector = null;
         }
     }
     try
     {
         serSystemConnector = new SerSystemConnector(scanner);
         dataManSystem      = new DataManSystem(serSystemConnector);
     }
     catch (Exception)
     {
         throw;
     }
     try
     {
         dataManSystem.ReadStringArrived -= DataManSystem_ReadStringArrived;
     }
     finally
     {
         dataManSystem.ReadStringArrived += DataManSystem_ReadStringArrived;
     }
     try
     {
         dataManSystem.SystemDisconnected -= DataManSystem_SystemDisconnected;
     }
     finally
     {
         dataManSystem.SystemDisconnected += DataManSystem_SystemDisconnected;
         if (serSystemConnector.IsKeepAliveSupported)
         {
             serSystemConnector.SetKeepAliveOptions(true, 1000, 2000);
         }
     }
     try
     {
         dataManSystem.SystemWentOffline -= DataManSystem_SystemWentOffline;
     }
     finally
     {
         dataManSystem.SystemWentOffline += DataManSystem_SystemWentOffline;
     }
     dataManSystem.Connect();
     this.Invoke(SetFormTitle, $"扫码校验【{serSystemConnector.PortName},{serSystemConnector.Baudrate},{serSystemConnector.Parity},{serSystemConnector.DataBits},{serSystemConnector.StopBits}】");
 }
        private void CreateSystem(object system_info)
        {
            bool searchOk = false;

            ISystemConnector connector = null;

            string systemName = "";

            if (system_info is EthSystemDiscoverer.SystemInfo)
            {
                EthSystemDiscoverer.SystemInfo eth_system_info = system_info as EthSystemDiscoverer.SystemInfo;
                if (_systemList.ContainsKey(eth_system_info.Name))
                {
                    EthSystemConnector conn = new EthSystemConnector(eth_system_info.IPAddress);

                    conn.UserName = "******";
                    conn.Password = "";
                    connector = conn;
                    searchOk = true;
                    systemName = eth_system_info.Name;
                }
            }
            else if (system_info is SerSystemDiscoverer.SystemInfo)
            {
                SerSystemDiscoverer.SystemInfo ser_system_info = system_info as SerSystemDiscoverer.SystemInfo;
                if (_systemList.ContainsKey(ser_system_info.Name))
                {
                    SerSystemConnector conn = new SerSystemConnector(ser_system_info.PortName, ser_system_info.Baudrate);
                    connector = conn;
                    searchOk = true;
                    systemName = ser_system_info.Name;
                }
            }

            if (searchOk == false) return;

            var system = new DataManSystem(connector);

            system.SystemConnected += new SystemConnectedHandler(OnSystemConnected);
            system.SystemDisconnected += new SystemDisconnectedHandler(OnSystemDisconnected);

            system.SystemWentOnline += new SystemWentOnlineHandler(OnSystemWentOnline);
            system.SystemWentOffline += new SystemWentOfflineHandler(OnSystemWentOffline);

            // Subscribe to events that are signalled when the deveice sends auto-responses.
            system.XmlResultArrived += new XmlResultArrivedHandler(
                delegate(object sender, XmlResultArrivedEventArgs args)
                {
                    XmlDocument doc = new XmlDocument();
                    string read_string = "";

                    doc.LoadXml(args.XmlResult);

                    foreach (XmlNode node2 in doc.DocumentElement.ChildNodes)
                    {
                        if (node2.Name.Equals("general"))
                        {
                            foreach (XmlNode node in node2.ChildNodes)
                            {
                                if (node.Name.Equals("full_string"))
                                {
                                    read_string = node.InnerText;

                                    foreach (XmlAttribute att in node.Attributes)
                                    {
                                        if (att.Name.Equals("encoding") && att.InnerText.Equals("base64") && !String.IsNullOrEmpty(node.InnerText))
                                        {
                                            byte[] code = Convert.FromBase64String(node.InnerText);
                                            read_string = System.Text.Encoding.Default.GetString(code, 0, code.Length);
                                        }
                                    }

                                    break;
                                }
                            }

                            if (_readMethodList.ContainsKey(systemName))
                            {
                                if (_readMethodList[systemName] != null)
                                    _readMethodList[systemName](read_string);
                            }
                        }
                    }
                });

            system.ImageArrived +=
                delegate(object sender, ImageArrivedEventArgs args)
                {
                    try
                    {
                        if (_arrivedImageMethodList.ContainsKey(systemName))
                        {
                            if (_arrivedImageMethodList[systemName] != null)
                                _arrivedImageMethodList[systemName](args.Image);
                        }
                    }
                    catch (Exception imageArriveException)
                    {
                        System.Diagnostics.Trace.WriteLine(imageArriveException.Message);
                    }
                };

            system.Connect();

            _systemList[systemName] = system;

            _discoveredCount++;

            if (_systemList.Count <= _discoveredCount)
            {
                _allDone.Set();
            }
        }