private void bConnect_Click(object sender, System.EventArgs e) { bConnect.Enabled = false; try { if (bConnect.Text == "Connect") { websocketclient1.Timeout = 10; websocketclient1.InvokeThrough = this; websocketclient1.Connect(tbServer.Text); bConnect.Text = "Disconnect"; } else { websocketclient1.Disconnect(); } } catch (IPWorksWSException ipwse) { MessageBox.Show(this, ipwse.Message, "Error", MessageBoxButtons.OK); bConnect.Text = "Connect"; bConnect.Enabled = true; } }
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); } }