void mc_MineroEvent(object sender, MineroEventArgs e) { switch (e.comando) { case CMD_MINERO.CMD_MODE: break; case CMD_MINERO.CMD_FOTO: byte[] da = new byte[921600]; mc.sendData(CMD_MINERO.CMD_SND_FOTO, e.data); break; case CMD_MINERO.CMD_SND_FOTO: break; case CMD_MINERO.CMD_DEF: break; default: break; } }
void bw_DoWork(object sender, DoWorkEventArgs e) { clientSock = sock.Accept(); //leer del cliente try { while (clientSock.Connected) { byte[] cmd = new byte[1]; clientSock.Receive(cmd); byte[] data; MineroEventArgs mEA; MemoryStream ms = new MemoryStream(); switch (((CMD_MINERO)cmd[0])) { case CMD_MINERO.CMD_MODE: data = new byte[1]; clientSock.Receive(data); mod = (MODELO_TYPE)data[0]; if (modeloRobot.isStarted()) { modeloRobot.stopModel(); } switch (mod) { case MODELO_TYPE.OMNIDIRECCIONAL: modeloRobot = new OmniModel(); modeloRobot.setModoOperacion(this._modoOperacion); break; case MODELO_TYPE.DIFERENCIAL: modeloRobot = new DifferModel(); modeloRobot.setModoOperacion(this._modoOperacion); break; case MODELO_TYPE.ACKERMKAN: modeloRobot = new AckerModel(); modeloRobot.setModoOperacion(this._modoOperacion); break; default: break; } if (_modoOperacion == GLOBAL_MODE.MINI_MINERO) modeloRobot.setDeviceIndex(3); else modeloRobot.setDeviceIndex(4); modeloRobot.startModel(); mEA = new MineroEventArgs(CMD_MINERO.CMD_MODE, data, 1); break; case CMD_MINERO.CMD_FOTO: data = new byte[1]; clientSock.Receive(data); bmp = (Bitmap)bmp1.Clone(); // Save to memory using the Jpeg format bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); // read to end ms.SetLength(921600); //ms.Position = 0; byte[] bmpBytes = ms.ToArray(); bmp.Dispose(); ms.Close(); mEA = new MineroEventArgs(CMD_MINERO.CMD_FOTO, bmpBytes, bmpBytes.Length); break; default: mEA = new MineroEventArgs(CMD_MINERO.CMD_DEF, cmd, 1); break; } if (MineroEvent != null) MineroEvent(this, mEA); } } catch (Exception ex) { var mes = ex.Message; } }