public Listener(ArrayList args, Prompt prompt) { if (args.Count != 3) { prompt.WriteLine("listen: Wrong arguments", prompt.errorTextColor); return; } this.prompt = prompt; motecom = args[2].ToString(); try { mote = new MoteIF(motecom); } catch (Exception e) { prompt.WriteLine(e.Message, prompt.errorTextColor); return; } active = true; prompt.WriteLine("Listening on " + motecom + " (^C or 'exit' returns to prompt)", prompt.successTextColor); //Console.TreatControlCAsInput = false; //Console.CancelKeyPress += stop; mote.onMessageArrived += newMsgHandler; //evt = new AutoResetEvent(false); //evt.WaitOne(); //Console.TreatControlCAsInput = true; //Console.CancelKeyPress -= stop; }
public static void PrintStopHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" stop <ID | PORT>", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Stops the specified sf server."); }
public static void PrintInfoHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" info <ID | PORT>", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Prints out stats about the specified sf-server."); }
public void stop(/*Object s, ConsoleCancelEventArgs e*/) { prompt.WriteLine("Closing listener on " + motecom + "...", prompt.successTextColor); //e.Cancel = true; mote.onMessageArrived -= newMsgHandler; mote.Close(); //evt.Set(); }
public Sender(ArrayList args, Prompt prompt) { this.prompt = prompt; if (!ParseArgs(args)) { prompt.WriteLine("send: wrong arguments", prompt.errorTextColor); return; } try{ mote = new MoteIF(motecom); } catch(Exception e){ prompt.WriteLine(e.Message, prompt.errorTextColor); return; } }
public Sender(ArrayList args, Prompt prompt) { this.prompt = prompt; if (!ParseArgs(args)) { prompt.WriteLine("send: wrong arguments", prompt.errorTextColor); return; } try{ mote = new MoteIF(motecom); } catch (Exception e) { prompt.WriteLine(e.Message, prompt.errorTextColor); return; } }
private void WriteLine(string msg, ConsoleColor c) { if (prompt != null) { prompt.WriteLine(msg, c); return; } Console.WriteLine(msg); }
public Object SendOne(uint dest, uint src, uint group, uint amtype) { if (mote == null) { return(null); } byte[] bpayload = SerialMessage.HexStringToByteArray(payload); SerialMessage msg = new SerialMessage(bpayload, (byte)amtype); msg[SerialMessage.DEST] = dest; msg[SerialMessage.SRC] = src; msg[SerialMessage.GROUP] = group; mote.Send(msg); prompt.WriteLine("Packet sent", prompt.successTextColor); if (listen) { return(new Listener(mote, prompt)); } mote.Close(); return(null); }
public Listener(ArrayList args, Prompt prompt) { if (args.Count != 3) { prompt.WriteLine("listen: Wrong arguments", prompt.errorTextColor); return; } this.prompt = prompt; motecom = args[2].ToString(); try { mote = new MoteIF(motecom); } catch (Exception e) { prompt.WriteLine(e.Message, prompt.errorTextColor); return; } active = true; prompt.WriteLine("Listening on " + motecom + " (^C or 'exit' returns to prompt)", prompt.successTextColor); //Console.TreatControlCAsInput = false; //Console.CancelKeyPress += stop; mote.onMessageArrived += newMsgHandler; //evt = new AutoResetEvent(false); //evt.WaitOne(); //Console.TreatControlCAsInput = true; //Console.CancelKeyPress -= stop; }
public Listener(MoteIF mote, Prompt prompt) { if (mote == null) { return; } motecom = mote.motecom; active = true; this.mote = mote; this.prompt = prompt; prompt.WriteLine("Listening on " +motecom+ " (^C or 'exit' returns to prompt)", prompt.successTextColor); //Console.CancelKeyPress += stop; mote.onMessageArrived += newMsgHandler; //evt = new AutoResetEvent(false); //evt.WaitOne(); //Console.CancelKeyPress -= stop; }
public Listener(MoteIF mote, Prompt prompt) { if (mote == null) { return; } motecom = mote.motecom; active = true; this.mote = mote; this.prompt = prompt; prompt.WriteLine("Listening on " + motecom + " (^C or 'exit' returns to prompt)", prompt.successTextColor); //Console.CancelKeyPress += stop; mote.onMessageArrived += newMsgHandler; //evt = new AutoResetEvent(false); //evt.WaitOne(); //Console.CancelKeyPress -= stop; }
public static void PrintStartHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" start -port <TCP_PORT> -comm <MOTECOM>", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Starts a new sf-server listening for clients on the specified TCP Port,"); prompt.WriteLine(" with the specified MOTECOM as packets source, which can be a serial"); prompt.WriteLine(" device or a serial forwarder."); prompt.WriteLine(""); /* TODO prompt.WriteLine("OPTIONS"); prompt.WriteLine(" -c MAX_CLIENTS: Maximum number of clients allowed to connect to "); prompt.WriteLine(" the created sf-server. No client limit if no specified."); prompt.WriteLine(" -e TIME: Time (in seconds) after which the created sf-server will be"); prompt.WriteLine(" destroyed. No sf-expiration if no specified."); prompt.WriteLine(""); * */ prompt.WriteLine("EXAMPLE"); prompt.WriteLine(" start -port 9000 -comm serial@COM9:115200"); prompt.WriteLine(" start -port 9001 -comm sf@localhost:9000"); prompt.WriteLine(" start -port 7777 -comm serial@/dev/ttyUSB0:115200"); prompt.WriteLine(" start -port 7778 -comm [email protected]:9000"); }
private void TcpClient() { TcpClient tcpClient; byte[] buffer = new byte[250]; int bytesRead; string cmdStr; tcpListener.Start(); prompt.WriteLine("Waiting for control clients on port " + controlPort + ". "); while (true) { try { tcpClient = tcpListener.AcceptTcpClient(); } catch (Exception) { return; } prompt.WriteLine("Control client connected", prompt.eventTextColor); controlClient = tcpClient.GetStream(); prompt.EnableTCPClientEcho(controlClient); var encoder = new UTF8Encoding(); byte[] hello = encoder.GetBytes(helloMsg + '\n'); controlClient.Write(hello, 0, hello.Length); while (true) { try { bytesRead = controlClient.Read(buffer, 0, 250); cmdStr = this.Parse(buffer, 0, bytesRead); prompt.ControlClientCmd(cmdStr); string cmd = cmdStr.ToLower(); if (cmd.Equals("exit") && activeListeners.Count == 0) continue; ExecCommand(cmd); } catch (Exception e) { Debug.WriteLine(e.Message); CloseControlClient(); break; } } } }
static public void PrintHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" send -comm <MOTECOM> -m <MESSAGE> [-listen]", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Sends a MESSAGE in hex format throught the"); prompt.WriteLine(" specified MOTECOM. Optionally a listen connection"); prompt.WriteLine(" can be opened right after the send command ends."); prompt.WriteLine(" MESSAGE is the payload of the serial packet. Use"); prompt.WriteLine(" the SET command to specify AM, DEST, SRC and GROUP."); prompt.WriteLine(" See also 'help set'."); prompt.WriteLine(""); prompt.WriteLine("EXAMPLE"); prompt.WriteLine(" set am 137"); prompt.WriteLine(" set dest 5"); prompt.WriteLine(" send -comm serial@COM25:115200 -m B0047C04E1"); prompt.WriteLine(" send -comm sf@localhost:9000 -m 0001 -listen"); }
static public void PrintHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" listen -comm <MOTECOM>", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Listen for serial packets from the given MOTECOM"); prompt.WriteLine(" Ctrl+C closes the listener for the local client. "); prompt.WriteLine(" The control client stops the listener with an 'exit' command."); prompt.WriteLine(""); prompt.WriteLine("EXAMPLE"); prompt.WriteLine(" listen -comm serial@COM25:115200"); prompt.WriteLine(" listen -comm sf@localhost:9000"); }
public SerialForwarder(ArrayList args, Prompt prompt, uint id) { this.id = id; this.prompt = prompt; for (int i = 1, l = args.Count; i < l; i++) { switch (args[i].ToString()) { case "-c": if (++i == l) { WriteLine("start: wrong arguments", prompt.errorTextColor); return; } else // TODO //maxClients = Convert.ToInt32(args[i].ToString()); break; case "-e": if (++i == l) { WriteLine("start: wrong arguments", prompt.errorTextColor); return; } else //TODO //expirationTimeout = Convert.ToInt32(args[i].ToString()); break; case "-comm": if (++i == l) { prompt.WriteLine("start: wrong arguments", prompt.errorTextColor); return; } else motecom = args[i].ToString(); break; case "-port": if (++i == l) { WriteLine("start: wrong arguments", prompt.errorTextColor); return; } else try { port = Convert.ToUInt16(args[i].ToString()); } catch (Exception) { port = 0; } break; default: WriteLine("start: wrong arguments", prompt.errorTextColor); return; } } try { mote = SourceMaker.make(motecom); } catch (Exception e) { Debug.WriteLine(e.Message); WriteLine("start: unable to open " + motecom, prompt.errorTextColor); return; } if (mote == null || port == 0) { WriteLine("start: wrong arguments", prompt.errorTextColor); return; } mote.RxPacket += mote_RxPacket; mote.TxPacket += mote_TxPacket; mote.ToutPacket += mote_ToutPacket; tcpListener = new TcpListener(IPAddress.Any, port); try { tcpListener.Start(); } catch (SocketException se) { Debug.WriteLine(se.Message); WriteLine("Unable to open socket on port " + port + "( port in use?)", prompt.errorTextColor); mote.Close(); return; } connectionReceiver = new Thread(new ThreadStart(ListenForClients)); connectionReceiver.Start(); running = true; WriteLine("Serial forwarder started (id = " + id.ToString() + "). Waiting for clients on port " + port.ToString(), prompt.successTextColor); }
public static void PrintInfoHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" info <ID | PORT>", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Prints out stats about the specified sf-server."); }
private void PrintSetHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" set [<DEST | SRC | GROUP | AM> [0x]<VALUE>] ", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Sets serial packet header fields values for packets sent"); prompt.WriteLine(" with the SEND command. Invoke without arguments"); prompt.WriteLine(" to print the current assigned values. See also 'help send'."); prompt.WriteLine(""); prompt.WriteLine("EXAMPLE"); prompt.WriteLine(" set am 137"); prompt.WriteLine(" set am 0x89"); }
private void PrintHelpClear(Prompt prompt) { prompt.WriteLine("Clears the local console."); }
private void PrintHelpPorts(Prompt prompt) { prompt.WriteLine("Displays a list of available serial ports."); }
private void PrintHelpExit(Prompt prompt) { prompt.WriteLine("Stops all running sf-servers and exit."); }
private void PrintHelpClose(Prompt prompt) { prompt.WriteLine("Closes the connection to the control client."); }
static public void PrintHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" listen -comm <MOTECOM>", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Listen for serial packets from the given MOTECOM"); prompt.WriteLine(" Ctrl+C closes the listener for the local client. "); prompt.WriteLine(" The control client stops the listener with an 'exit' command."); prompt.WriteLine(""); prompt.WriteLine("EXAMPLE"); prompt.WriteLine(" listen -comm serial@COM25:115200"); prompt.WriteLine(" listen -comm sf@localhost:9000"); }
public static void PrintStartHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" start -port <TCP_PORT> -comm <MOTECOM>", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Starts a new sf-server listening for clients on the specified TCP Port,"); prompt.WriteLine(" with the specified MOTECOM as packets source, which can be a serial"); prompt.WriteLine(" device or a serial forwarder."); prompt.WriteLine(""); /* TODO * prompt.WriteLine("OPTIONS"); * prompt.WriteLine(" -c MAX_CLIENTS: Maximum number of clients allowed to connect to "); * prompt.WriteLine(" the created sf-server. No client limit if no specified."); * prompt.WriteLine(" -e TIME: Time (in seconds) after which the created sf-server will be"); * prompt.WriteLine(" destroyed. No sf-expiration if no specified."); * prompt.WriteLine(""); * */ prompt.WriteLine("EXAMPLE"); prompt.WriteLine(" start -port 9000 -comm serial@COM9:115200"); prompt.WriteLine(" start -port 9001 -comm sf@localhost:9000"); prompt.WriteLine(" start -port 7777 -comm serial@/dev/ttyUSB0:115200"); prompt.WriteLine(" start -port 7778 -comm [email protected]:9000"); }
public static void PrintStopHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" stop <ID | PORT>", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Stops the specified sf server."); }
public static void PrintListHelp(Prompt prompt) { prompt.WriteLine("Lists all running sf-servers."); }
public static void PrintListHelp(Prompt prompt) { prompt.WriteLine("Lists all running sf-servers."); }
public SerialForwarder(ArrayList args, Prompt prompt, uint id) { this.id = id; this.prompt = prompt; for (int i = 1, l = args.Count; i < l; i++) { switch (args[i].ToString()) { case "-c": if (++i == l) { WriteLine("start: wrong arguments", prompt.errorTextColor); return; } else { // TODO //maxClients = Convert.ToInt32(args[i].ToString()); break; } case "-e": if (++i == l) { WriteLine("start: wrong arguments", prompt.errorTextColor); return; } else { //TODO //expirationTimeout = Convert.ToInt32(args[i].ToString()); break; } case "-comm": if (++i == l) { prompt.WriteLine("start: wrong arguments", prompt.errorTextColor); return; } else { motecom = args[i].ToString(); } break; case "-port": if (++i == l) { WriteLine("start: wrong arguments", prompt.errorTextColor); return; } else { try { port = Convert.ToUInt16(args[i].ToString()); } catch (Exception) { port = 0; } } break; default: WriteLine("start: wrong arguments", prompt.errorTextColor); return; } } try { mote = SourceMaker.make(motecom); } catch (Exception e) { Debug.WriteLine(e.Message); WriteLine("start: unable to open " + motecom, prompt.errorTextColor); return; } if (mote == null || port == 0) { WriteLine("start: wrong arguments", prompt.errorTextColor); return; } mote.RxPacket += mote_RxPacket; mote.TxPacket += mote_TxPacket; mote.ToutPacket += mote_ToutPacket; tcpListener = new TcpListener(IPAddress.Any, port); try { tcpListener.Start(); } catch (SocketException se) { Debug.WriteLine(se.Message); WriteLine("Unable to open socket on port " + port + "( port in use?)", prompt.errorTextColor); mote.Close(); return; } connectionReceiver = new Thread(new ThreadStart(ListenForClients)); connectionReceiver.Start(); running = true; WriteLine("Serial forwarder started (id = " + id.ToString() + "). Waiting for clients on port " + port.ToString(), prompt.successTextColor); }
static public void PrintHelp(Prompt prompt) { prompt.WriteLine("USAGE"); prompt.WriteLine(" send -comm <MOTECOM> -m <MESSAGE> [-listen]", prompt.helpTextColor); prompt.WriteLine(""); prompt.WriteLine("DESCRIPTION"); prompt.WriteLine(" Sends a MESSAGE in hex format throught the"); prompt.WriteLine(" specified MOTECOM. Optionally a listen connection"); prompt.WriteLine(" can be opened right after the send command ends."); prompt.WriteLine(" MESSAGE is the payload of the serial packet. Use"); prompt.WriteLine(" the SET command to specify AM, DEST, SRC and GROUP."); prompt.WriteLine(" See also 'help set'."); prompt.WriteLine(""); prompt.WriteLine("EXAMPLE"); prompt.WriteLine(" set am 137"); prompt.WriteLine(" set dest 5"); prompt.WriteLine(" send -comm serial@COM25:115200 -m B0047C04E1"); prompt.WriteLine(" send -comm sf@localhost:9000 -m 0001 -listen"); }