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); }
private void button1_Click(object sender, System.EventArgs e) { var group = FRabbit.CreateGroup("foo"); var param = FRabbit.CreateNumberParameter <float>("my float", group); param.Order = param.Id; param.Widget = new SliderWidget(); param.Default = 7.0f; param.Value = 2.0f; param.Minimum = -10.0f; param.Maximum = 10.0f; param.ValueUpdated += (s, a) => label1.Text = param.Value.ToString(); var nt = FRabbit.CreateNumberParameter <int>("my int", group); nt.Value = 3; nt.Minimum = -5; nt.Maximum = 5; var enm = FRabbit.CreateEnumParameter("my enum", group); enm.Entries = new string[3] { "aber", "biber", "zebra" }; enm.Default = "biber"; enm.Value = "zebra"; //enm.ValueUpdated += Enm_ValueUpdated; var str = FRabbit.CreateStringParameter("my string", group); str.Value = "foobar"; var clr = FRabbit.CreateValueParameter <Color>("ma color", group); clr.Value = Color.Red; var strarr = FRabbit.CreateArrayParameter <string>("my string array", null, new int[] { 3 }); strarr.Default = new string[3] { "a", "b", "c" }; strarr.Value = new string[3] { "aa", "bv", "cc" }; var intarr = FRabbit.CreateArrayParameter <int>("my int array", null, new int[] { 3 }); intarr.Default = new int[3] { 1, 2, 4 }; intarr.Value = new int[3] { 4, 5, 6 }; FMyBang = (BangParameter)FRabbit.CreateBangParameter("my bang"); FMyBang.OnBang += FMyBang_OnBang; //enm.Value = "biber"; //FRabbit.Update(); //enm.Value = "aber"; //FRabbit.Update(); }