示例#1
0
 private void websocketclient_OnDataIn(object sender, nsoftware.IPWorksWS.WebsocketclientDataInEventArgs e)
 {
     try
     {
         dataReceived = e.Text;
         log.Info(dataReceived);
         isDataReceived = false;
         this.websocketclientToServer.SendText(dataReceived);
     }
     catch (Exception ext)
     {
         log.Error(ext.Message, ext);
     }
 }
示例#2
0
        private async void websocketclientToServer_OnDataIn(object sender, nsoftware.IPWorksWS.WebsocketclientDataInEventArgs e)
        {
            try
            {
                log.Info("Received Data From AutoPix backend server:" + e.Text);
                var        AutoInspexID            = ConfigurationManager.AppSettings["AutoInspexID"] + "";
                var        AutoInspexWebServiceUrl = ConfigurationManager.AppSettings["AutoInspexWebServiceUrl"] + "";
                List <int> camerasSequecences      = null;
                var        dataObj      = JObject.Parse(e.Text);
                var        sequenceNums = (string)dataObj["sequenceNo"];
                if (sequenceNums.ToLower() == "all")
                {
                    camerasSequecences = Enumerable.Range(1, 72).ToList();
                }
                else
                {
                    var sequenceNoArray = sequenceNums.Split(',');
                    var list            = new List <int>();
                    foreach (var i in sequenceNoArray)
                    {
                        try
                        {
                            list.Add(Convert.ToInt32(i));
                        }
                        catch (Exception ext)
                        {
                            log.Error(ext.Message, ext);
                        }
                    }
                    camerasSequecences = list;
                }
                if (dataObj != null && (string)dataObj["autoInspexID"] == AutoInspexID)
                {
                    string serviceType          = (string)dataObj["serviceType"];
                    string sellingMethod        = (string)dataObj["sellingMethod"];
                    string vinCode              = (string)dataObj["vinCode"];
                    string vehicleId            = (string)dataObj["vehicleId"];
                    string autoInspexID         = (string)dataObj["autoInspexID"];
                    string uuid                 = (string)dataObj["uuid"];
                    string imageType            = (string)dataObj["imageType"];
                    string sequenceNo           = (string)dataObj["sequenceNo"];
                    string inspexIQConnectionId = (string)dataObj["inspexIQConnectionId"];

                    var client    = new RestClient(AutoInspexWebServiceUrl);
                    var request   = new RestRequest("/api/PICameras/" + autoInspexID, DataFormat.Json);
                    var piCameras = await client.GetAsync <List <PICamera> >(request);

                    int countCamera = 0;
                    if (piCameras != null && piCameras.Any())
                    {
                        foreach (var p in piCameras.Where(p => camerasSequecences.Contains(Convert.ToInt32(p.RingPosition))))
                        {
                            countCamera++;

                            try
                            {
                                string piIPAddress = (string)dataObj["piIPAddress"];

                                this.components = new System.ComponentModel.Container();
                                var websocketclient = new nsoftware.IPWorksWS.Websocketclient(this.components);
                                websocketclient.Firewall.Port         = 1080;
                                websocketclient.OnLog                += Websocketclient_OnLog;
                                websocketclient.Firewall.FirewallType = nsoftware.IPWorksWS.FirewallTypes.fwNone;
                                websocketclient.OnDataIn             += new nsoftware.IPWorksWS.Websocketclient.OnDataInHandler(this.websocketclient_OnDataIn);
                                websocketclient.OnConnected          += Websocketclient_OnConnected;
                                websocketclient.OnError              += Websocketclient_OnError;
                                websocketclient.Connect($"ws://{p.IPAddress}:5001");

                                var message = new
                                {
                                    serviceType          = serviceType,
                                    sellingMethod        = sellingMethod,
                                    vinCode              = vinCode,
                                    vehicleId            = vehicleId,
                                    autoInspexID         = autoInspexID,
                                    uuid                 = uuid,
                                    imageType            = imageType,
                                    sequenceNo           = p.RingPosition,
                                    inspexIQConnectionId = inspexIQConnectionId,
                                };

                                var json = JsonConvert.SerializeObject(message);
                                websocketclient.DataToSend = json;
                                websocketclient.Timeout    = 120;
                            }
                            catch (IPWorksWSException ipwse)
                            {
                                log.Error(ipwse.Message + "\r\n" + ipwse.StackTrace);

                                var message = new
                                {
                                    serviceType          = serviceType,
                                    sellingMethod        = sellingMethod,
                                    vinCode              = vinCode,
                                    vehicleId            = vehicleId,
                                    autoInspexID         = autoInspexID,
                                    uuid                 = uuid,
                                    imageType            = imageType,
                                    sequenceNo           = sequenceNo,
                                    inspexIQConnectionId = inspexIQConnectionId,
                                    error                = "Unable to connect to the camera at postion " + p.RingPosition
                                };

                                var json = JsonConvert.SerializeObject(message);
                                this.websocketclientToServer.SendText(json);
                            }
                            catch (Exception ext)
                            {
                                log.Error(ext.Message, ext);
                            }
                        }
                        if (countCamera == 0)
                        {
                            log.Error("countCamera=0");

                            var message = new
                            {
                                serviceType          = serviceType,
                                sellingMethod        = sellingMethod,
                                vinCode              = vinCode,
                                vehicleId            = vehicleId,
                                autoInspexID         = autoInspexID,
                                uuid                 = uuid,
                                imageType            = imageType,
                                sequenceNo           = sequenceNo,
                                inspexIQConnectionId = inspexIQConnectionId,
                                error                = "No camera found to take pictures. Please check the sequenceNo"
                            };

                            var json = JsonConvert.SerializeObject(message);
                            this.websocketclientToServer.SendText(json);
                        }
                    }
                    else
                    {
                        var message = new
                        {
                            serviceType          = serviceType,
                            sellingMethod        = sellingMethod,
                            vinCode              = vinCode,
                            vehicleId            = vehicleId,
                            autoInspexID         = autoInspexID,
                            uuid                 = uuid,
                            imageType            = imageType,
                            sequenceNo           = sequenceNo,
                            inspexIQConnectionId = inspexIQConnectionId,
                            error                = "No camera configured for  autoInspexID" + autoInspexID
                        };

                        var json = JsonConvert.SerializeObject(message);
                        this.websocketclientToServer.SendText(json);
                    }
                }
            }
            catch (Exception ext)
            {
                log.Error(ext.Message, ext);
            }
        }
示例#3
0
 private void websocketclient1_OnDataIn(object sender, nsoftware.IPWorksWS.WebsocketclientDataInEventArgs e)
 {
     tbEcho.AppendText(e.Text.Replace("\r\n", "").Replace("\n", "") + "\r\n" + "\r\n");
 }