private async Task WebSocketRequest(AspNetWebSocketContext context) { var socket = context.WebSocket; while (true) { var buffer = new ArraySegment <byte>(new byte[1024]); // Listen to client var result = await socket.ReceiveAsync(buffer, CancellationToken.None); //If input frame is cancelation frame, send close command. if (result.MessageType == WebSocketMessageType.Close) { await socket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None); } else { var receivedString = Encoding.UTF8.GetString(buffer.ToArray()); var builder = new FormulaBuilder(receivedString); var sendingString = builder.Build(); var bytes = Encoding.UTF8.GetBytes(sendingString); await socket.SendAsync(new ArraySegment <byte>(bytes), WebSocketMessageType.Text, true, CancellationToken.None); } } }
public void TestOperationValidation() { // Arrange var input = @"<request><expression><operation>plus</operation><operand><const>20</const></operand><operand> <expression><operation>bla</operation><operand><const>10</const></operand><operand><const>5</const></operand> </expression></operand></expression></request>"; // Act var builder = new FormulaBuilder(input); var result = builder.Build(); // Assert Approvals.Verify(result); }
public static IFormulaBuilder BuilderForStringOrSerializedFormula(string formula) { var formulaBuilder = new FormulaBuilder(); if (IsSerialized(formula)) { formulaBuilder.SetFormulaComponentsFromSerialisedFormula(formula); } else { formulaBuilder.SetFormulaFromText(formula); } return formulaBuilder; }
private static void tcpServer_ClientConnected(TcpClient client) { Console.WriteLine("Client connected: {0}", client.RemoteEndPoint); client.Received += (c, r) => Console.WriteLine("← Request received: {0} from client {1}", r, client.RemoteEndPoint); client.Sent += (c, r) => Console.WriteLine("→ Response sent: {0} to client {1}", r, client.RemoteEndPoint); while (client.IsConnected) { var receivedString = client.ReceiveString(Encoding.UTF8); if (receivedString.Equals("DisconnectEvent") || string.IsNullOrEmpty(receivedString)) { client.Disconnect(); break; } var builder = new FormulaBuilder(receivedString); var sendingString = builder.Build(); client.SendString(sendingString, Encoding.UTF8); } }
public static void Proc() { Sites sites; Sites.Load(out sites, new DbServer()); DbServer.MarkNotNew(); //编译公式 Site st; Sensor ss; int i = 0; while (sites.GetAt(i++, out st)) { int j = 0; while (st.GetAt(j++, out ss)) { string err = ""; ss.formulaDelegate = FormulaBuilder.TryCompile(ss.formula, out err); if (err != "") { Log.Write("编译公式出错:" + err); continue; } } } //获取本机所有IP IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName()); //获取服务器里所有的服务器IP Server server = DbServer.ReadServerConfig(); bool exists = ips.Any(s => s.ToString() == server.IP); if (exists) { //说明是本机 if (server.IsEnable) { serverThread = new Thread(delegate() { TcpServerComm tsc = new TcpServerComm(server, sites); tsc.Start(); }); serverThread.Start(); } } SitesComm sc = new SitesComm(sites); sc.Start(); while (bWork) { //Thread.Sleep(10000); Thread.Sleep(1000); if (DbServer.IsNewConfig()) { sc.Stop(); Sites.Load(out sites, new DbServer()); sc.sites = sites; DbServer.MarkNotNew(); sc.Start(); } } sc.Stop(); }
private Molecule GetFormula(string seq, ExplicitSequenceMods mods, out double unexplainedMass) { var formula = new FormulaBuilder(_massCalc); var modMasses = GetModMasses(mods); formula.Append(modMasses._massModCleaveNFormula, modMasses._massModCleaveNExtra); formula.Append(modMasses._massModCleaveCFormula, modMasses._massModCleaveCExtra); for (int i = 0, len = seq.Length; i < len; i++) { char c = seq[i]; formula.Append(AMINO_FORMULAS[c]) .Append(modMasses._aminoModFormulas[c], modMasses._aminoModMassesExtra[c]); // Terminal modifications if (i == 0) formula.Append(modMasses._aminoNTermModFormulas[c], modMasses._aminoNTermModMassesExtra[c]); else if (i == len - 1) formula.Append(modMasses._aminoCTermModFormulas[c], modMasses._aminoCTermModMassesExtra[c]); } if (mods != null) { foreach (ExplicitMod mod in mods.AllMods) { double modUnexplainedMass; string modFormula = GetModFormula(seq[mod.IndexAA], mod.Modification, out modUnexplainedMass); formula.Append(modFormula, modUnexplainedMass); } } formula.Append("H2O"); // N-term = H, C-term = OH // Not L10N unexplainedMass = formula.UnexplainedMass; // CONSIDER: More efficient translation between builder and Molecure. // Both contain a dictionary for atom counts. return Molecule.Parse(formula.ToString()); }
private void onDraw(object sender, EventArgs e) { formula = FormulaBuilder.BuildFromText(this.formulaBox.Text); PanelDrawing.Refresh(); }
private void buttonOK_Click(object sender, EventArgs e) { if (textBoxNum.Text.Length == 0) { MessageBox.Show("请输入编号!"); return; } if (textBoxName.Text.Length == 0) { MessageBox.Show("请输入名称!"); return; } if (comboBoxType.SelectedItem == null) { MessageBox.Show("请选择类型!"); return; } uint num = Convert.ToUInt32(textBoxNum.Text); Sensor ss; if (site.Get(num, out ss)) { if (sensor == null || num != sensor.num) { MessageBox.Show("编号已存在!"); return; } } if (sensor == null) { sensor = new Sensor(0, "", SENSOR_TYPE.WENDU, decimal.MinValue, decimal.MaxValue); } try { sensor.num = num; sensor.name = textBoxName.Text; sensor.type = ((KeyValuePair <SENSOR_TYPE, string>)comboBoxType.SelectedItem).Key; sensor.alarmLow = textBoxAlarmLow.Text.Length > 0 ? Convert.ToDecimal(textBoxAlarmLow.Text) : decimal.MinValue; sensor.alarmHigh = textBoxAlarmHigh.Text.Length > 0 ? Convert.ToDecimal(textBoxAlarmHigh.Text) : decimal.MaxValue; sensor.interval = Convert.ToInt32(textBoxInterval.Text); sensor.sensorDeep = Convert.ToDouble(textBoxSensorDeep.Text); sensor.daogui = comboBoxDaogui.SelectedIndex; string ropeDepth = this.txtRopeDepth.Text.Trim(); string wellDepth = this.txtWellDepth.Text.Trim(); if (!string.IsNullOrEmpty(ropeDepth)) { sensor.ropeDepth = Convert.ToDouble(this.txtRopeDepth.Text.Trim()); } if (!string.IsNullOrEmpty(wellDepth)) { sensor.wellDepth = Convert.ToDouble(this.txtWellDepth.Text.Trim()); } } catch (System.Exception ex) { MessageBox.Show(ex.Message); return; } string err; FormulaBuilder.TryCompile(textBoxFormula.Text, out err); if (err != "") { MessageBox.Show("公式编译失败:" + err); return; } sensor.formula = textBoxFormula.Text; this.DialogResult = DialogResult.OK; }
public ProvidedNotAttributeBuilder(FormulaBuilder fb) { this.fb = fb; }
public FormalSpecAttributeBuilder(FormulaBuilder fb) { this.fb = fb; }
public RelaxedToAttributeBuilder(FormulaBuilder fb) { this.fb = fb; }