Ejemplo n.º 1
0
        /// <summary>
        /// 开始启动socket for wcs
        /// </summary>
        public void StartForWcs()
        {
            var ip = IPAddress.Parse(_config.LocalIp);
            _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            _socket.Bind(new IPEndPoint(ip, int.Parse(_config.PortForWcs)));
            _socket.Listen(int.Parse(_config.MaxConnect));
            var thread = new Thread(ListenClientConnectWcs);
            CallbackUpdateStrip("启动wcs监听;");
            thread.Start();
            var receiveBoxHandler = new Thread(HandReceiveMailbox);//收件邮箱侦听
            receiveBoxHandler.Start();

            var sendBoxHandler = new Thread(HandleSendMailbox);//发件箱侦听
            sendBoxHandler.Start();
            var browser = new ServiceForWCSClient();
            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    browser.KeepAlive();
                    Thread.Sleep(2000);
                }

            });
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 任务结果答复给浏览器
 /// </summary>
 /// <param name="message"></param>
 private static void ReplyBrowser(dynamic message)
 {
     try
     {
         if (message.infoType == 40)
         {
             var browser = new ServiceForWCSClient();
             var query   = new WCSStockInApplyServiceModel
             {
                 ClientId = Convert.ToString(message.clientID.Value),
                 DeviceId = Convert.ToString(message.content.deviceS.Value),
                 TrayCode = Convert.ToString(message.content.barCode.Value)
             };
             browser.SendStockInApply(query);
         }
         else //目前只有反馈报文
         {
             if (message.content.result.Value == 1)
             {
                 TaskSuccess(message.content.oriSerial.Value);
             }
         }
     }
     catch (Exception ex) { }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 定时处理任务
 /// </summary>
 public void StartForWms()
 {
     while (true)
     {
         Thread.Sleep(200);
         var browser  = new ServiceForWCSClient();
         var taskList = browser.GetTaskList();
         if (taskList.Any() == false)
         {
             continue;
         }
         HandTaskList(taskList);
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 发送报文
        /// </summary>
        /// <param name="clientId"></param>
        /// <param name="taskId"></param>
        private void HandTaskOneByOne(string clientId, string taskId)
        {
            try
            {
                if (!wcsList.Any())
                {
                    return;
                }
                if (!wcsList.Keys.Contains(clientId))
                {
                    return;
                }

                Socket wcsClinet = wcsList[clientId];
                wcsClinet.Send(resultWms);
                var browser = new ServiceForWCSClient();
                browser.MarkTaskAsSend(taskId);
            }
            catch (Exception)
            {
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 通知应用层任务成功
        /// </summary>
        /// <param name="taskId"></param>
        private static void TaskSuccess(string taskId)
        {
            var browser = new ServiceForWCSClient();

            browser.MarkTaskAsDone(taskId);
        }