//called when data for any output pin is requested public void Evaluate(int SpreadMax) { if (FTransporter == null) { FTransporter = new WebsocketClientTransporter(); FTransporter.Connected = () => Initialize(); FRCPClient.SetTransporter(FTransporter); FTransporter.Connect(FRemoteHost[0], FRemotePort[0]); } else if (FRemoteHost.IsChanged || FRemotePort.IsChanged) { FTransporter.Connect(FRemoteHost[0], FRemotePort[0]); } //request all values from the server if (FInit[0]) { if (!FTransporter.IsConnected) { FTransporter.Connect(FRemoteHost[0], FRemotePort[0]); } else { Initialize(); } } FIsConnected[0] = FTransporter.IsConnected; }
//called when data for any output pin is requested public void Evaluate(int SpreadMax) { if (FTransporter == null) { FTransporter = new WebsocketClientTransporter(); FTransporter.Connected = () => Initialize(); FRCPClient.SetTransporter(FTransporter); FTransporter.Connect(FRemoteHost[0], FRemotePort[0]); } else if (FRemoteHost.IsChanged || FRemotePort.IsChanged) { FTransporter.Connect(FRemoteHost[0], FRemotePort[0]); } //request all values from the server if (FInit[0]) { if (!FTransporter.IsConnected) { FTransporter.Connect(FRemoteHost[0], FRemotePort[0]); } else { Initialize(); } } FIsConnected[0] = FTransporter.IsConnected; if (FIsConnected[0]) { if (!string.IsNullOrWhiteSpace(FRCPClient.ConnectedServerVersion)) { FServerInfo[0] = "RCP Version: " + FRCPClient.ConnectedServerVersion + ", Application Id: " + FRCPClient.ConnectedServerApplicationId; } } else { FParamIds.Clear(); UpdateOutputs(); } }
public Client() { InitializeComponent(); var transporter = new WebsocketClientTransporter(); Carrot = new RCPClient(); Carrot.SetTransporter(transporter); Carrot.ParameterAdded += (s, p) => { UIParams.Add(p.Id, p); label1.Text = UIParams.Count.ToString() + ": " + p.Label; p.Updated += P_Updated; if (p is BangParameter) { FTheBang = p as BangParameter; FTheBang.OnBang += Client_OnBang; } else if (p is ImageParameter) { var imageParam = p as ImageParameter; using (var stream = new MemoryStream(imageParam.Value)) { stream.Seek(0, SeekOrigin.Begin); var img = Image.FromStream(stream); pictureBox1.Image = img; } } }; Carrot.ParameterRemoved += (s, p) => { if (p is BangParameter) { FTheBang.OnBang -= Client_OnBang; FTheBang = null; } //remove UI matching p UIParams.Remove(p.Id); }; Carrot.StatusChanged = (status, message) => { // e.g.: switch (status) { case RcpTypes.ClientStatus.Disconnected: /*show something*/ break; case RcpTypes.ClientStatus.Connected: Carrot.Initialize(); break; case RcpTypes.ClientStatus.VersionMissmatch: MessageBox.Show(message); break; case RcpTypes.ClientStatus.Ok: /*nop*/ break; } }; transporter.Connect("127.0.0.1", 10000); }