/// <summary> /// bServerと接続 /// 同期 /// </summary> /// <returns></returns> public bool Connect_bServer(string _bServerAddr, int bServerPort = VRSetting.bServerIPPort) { // 接続中なら切断 if (TCP_IsConnected()) { objTCPSC.Dispose(); objTCPSC = null; // 少し待つ System.Threading.Thread.Sleep(100); } // 通信接続 objTCPSC = new TCPClient(_bServerAddr, bServerPort); // 接続開始(同期) return(objTCPSC.Start()); }
/// <summary> /// /// </summary> /// <returns></returns> public void ConnectBoxPC_Emulator() { // セルシオ エミュレータ起動 /* * if (null == processEmuSim || processEmuSim.HasExited) * { * processEmuSim = Process.Start(@"..\..\..\CersioSim\bin\CersioSim.exe"); * * //アイドル状態になるまで待機 * //processEmuSim.WaitForInputIdle(); * } */ // 通信接続 if (null != objTCPSC) { if (TCP_IsConnected()) { SendCommand_Stop(); objTCPSC.Dispose(); // 少し待つ System.Threading.Thread.Sleep(100); } } bServerEmu = true; objTCPSC = null; objTCPSC = new TCPClient(bServerEmuAddr, bServerPort); // 回線オープン objTCPSC.Start(); return; }
/// <summary> /// /// </summary> /// <returns></returns> public void ConnectBoxPC_Emulator() { // セルシオ エミュレータ起動 /* if (null == processEmuSim || processEmuSim.HasExited) { processEmuSim = Process.Start(@"..\..\..\CersioSim\bin\CersioSim.exe"); //アイドル状態になるまで待機 //processEmuSim.WaitForInputIdle(); } */ // 通信接続 if (null != objTCPSC) { if (TCP_IsConnected()) { SendCommand_Stop(); objTCPSC.Dispose(); // 少し待つ System.Threading.Thread.Sleep(100); } } bServerEmu = true; objTCPSC = null; objTCPSC = new TCPClient(bServerEmuAddr, bServerPort); // 回線オープン objTCPSC.Start(); return; }
static void Main(string[] args) { /// <summary> /// bServer通信ソケット /// </summary> TCPClient objTCPSC = null; // 接続情報 string bServerAddr = "192.168.1.101"; //string bServerAddr = "127.0.0.1"; // for Simurator /// <summary> /// bServer ポートNo /// </summary> int bServerPort = 50001; // 更新タイミング MS const int sleepMS = 20; bool loopFlg = true; // パラメータ取得 if (args.Length >= 1) { bServerAddr = args[0]; } if (args.Length >= 2) { bServerPort = int.Parse(args[1]); } Console.WriteLine("bServer Communication -Interface Ver0.10"); Console.WriteLine(""); // 終了イベント Console.CancelKeyPress += (sender, e) => { Console.Clear(); Console.WriteLine("終了...."); loopFlg = false; // trueにすると、プログラムを終了させない e.Cancel = true; // bServer切断 if (null != objTCPSC) { objTCPSC.Dispose(); objTCPSC = null; } }; Console.WriteLine("Connect ... IP:" + bServerAddr + " port:" + bServerPort.ToString()); objTCPSC = null; objTCPSC = new TCPClient(bServerAddr, bServerPort); objTCPSC.Start(); if (TCP_IsConnected(objTCPSC)) { Console.WriteLine("接続OK!"); } Console.WriteLine(""); Console.WriteLine("***** Start *****"); Console.WriteLine("CTRL+Cで、アプリを終了します。"); Console.WriteLine("Command List"); Console.WriteLine("A1 ... RE パルス取得"); Console.WriteLine("A2 ... 地磁気取得"); Console.WriteLine("A3 ... GPS 取得"); Console.WriteLine("A4 ... RE プロット座標取得"); Console.WriteLine(""); Console.WriteLine("AC,ハンドル,アクセル"); Console.WriteLine("AL,LED番号"); Console.WriteLine("AD,プロット座標X 変更,プロット座標Y 変更"); Console.WriteLine("AR,プロット向き 変更"); Console.WriteLine("ES,左1回転パルス値,右1回転パルス値"); Console.WriteLine(""); // 現在のカーソル行取得 int curStartRow = Console.CursorTop; while (loopFlg) { try { // 通信できるか? if (!TCP_IsConnected(objTCPSC)) { Console.WriteLine("接続開始..."); // 再接続 objTCPSC.Dispose(); // 少し待つ System.Threading.Thread.Sleep(100); // 通信接続 objTCPSC = null; objTCPSC = new TCPClient(bServerAddr, bServerPort); objTCPSC.Start(); if (TCP_IsConnected(objTCPSC)) { Console.WriteLine("接続OK!"); } } } catch (Exception ex) { Console.WriteLine("接続 Error!"); Console.WriteLine(ex.Message); break; } // コンソール表示 { string resiveStr = TCP_ReciveCommand(objTCPSC); if (!string.IsNullOrEmpty(resiveStr)) { Console.WriteLine("Resive:" + resiveStr); } } if (Console.KeyAvailable) { // キー入力があれば、受付 string sendStr = Console.ReadLine(); if (!string.IsNullOrEmpty(sendStr)) { TCP_SendCommand(objTCPSC, sendStr+"\n"); Console.WriteLine("Send:" + sendStr); } } // カーソル位置を初期化 //Console.SetCursorPosition(0, curStartRow); // 処理を休止 System.Threading.Thread.Sleep(sleepMS); } if (null != objTCPSC) { objTCPSC.Dispose(); objTCPSC = null; } }