Exemplo n.º 1
0
 public void SendPacket(BasePacket basePacket)
 {
     if (clientSender.SendPacket(basePacket))
     {
         OnPacketSended?.Invoke(Id, basePacket);
     }
 }
    private void SocketObj_OnDataInvoke(BasePacket basePacket)
    {
        IGConsole.Instance.println(basePacket.packetType.ToString() + " Packet Received");
        switch (basePacket.packetType)
        {
        case PacketType.CamFrame:
            CamPacket camPacket = (CamPacket)basePacket;

            Texture ttexture = camtexture.texture;
            camtexture.texture = TextureConverter.Base64ToTexture2D(camPacket.CamFrame);
            camtexture.gameObject.GetComponent <AspectRatioFitter>().aspectRatio = camtexture.texture.width / (float)camtexture.texture.height;
            if (ttexture != null)
            {
                Destroy(ttexture);
            }
            clientSender.SendPacket(new CamPacketRecived());
            break;

        case PacketType.CamResolution:
            CamResolutionPacket crp = (CamResolutionPacket)basePacket;
            carStatusUIObj.CarDevice.camResolution = crp.Resolution;
            break;

        case PacketType.CarStatus:
            CarStatusPacket csp = (CarStatusPacket)basePacket;
            carStatusUIObj.CarDevice.SetStatus(csp.cardevice, csp.position, csp.rotation);
            clientSender.SendPacket(new CarStatusRecivedPacket());
            break;

        case PacketType.CarGPSSpotStatus:
            CarGPSSpotStatusPacket cgpssp = (CarGPSSpotStatusPacket)basePacket;
            switch (cgpssp.GPSSpotManagerChangeType)
            {
            case GPSSpotManagerChangeType.AddSpot:
                carStatusUIObj.CarDevice.gPSSpotManager.AddPos(cgpssp.GPSPosition);
                carStatusUIObj.CarDevice.GPSSpotManagerUpdate();
                break;

            case GPSSpotManagerChangeType.RemoveSpot:
                carStatusUIObj.CarDevice.gPSSpotManager.RemovePos(cgpssp.Index);
                carStatusUIObj.CarDevice.GPSSpotManagerUpdate();
                break;

            case GPSSpotManagerChangeType.SetCurrentPos:
                carStatusUIObj.CarDevice.gPSSpotManager.CurrentMovePosIndex = cgpssp.Index;
                carStatusUIObj.CarDevice.GPSSpotManagerUpdate();
                break;

            case GPSSpotManagerChangeType.OverWrite:
                carStatusUIObj.CarDevice.gPSSpotManager = cgpssp.GPSMover;
                break;

            default:
                break;
            }
            break;

        case PacketType.UpdateDataChanged:
            DataUpdatedPacket dup = (DataUpdatedPacket)basePacket;
            carStatusUIObj.CarDevice.modeType = dup.modeType;
            break;

        case PacketType.UpdateConsoleModeChanged:
            ConsoleUpdatedPacket cudp = (ConsoleUpdatedPacket)basePacket;
            switch (cudp.consoleMode)
            {
            case ConsoleMode.ViewBotList:
                ViewChanger.Instance.ChangeView(ViewChanger.ConsoleView.Botlist);
                break;

            case ConsoleMode.ViewSingleBot:
                ViewChanger.Instance.ChangeView(ViewChanger.ConsoleView.Console);
                break;

            default:
                break;
            }
            break;

        case PacketType.ClientsInfo:
            CoreLinker.GetComponent <CoreLinkerObj>().ClientsListController.RanderList(((ClientinfoPacket)basePacket).ClientsInfo);
            break;

        default:
            break;
        }
    }
Exemplo n.º 3
0
    private void SocketObj_OnDataInvoke(BasePacket basePacket)
    {
        switch (basePacket.packetType)
        {
        case PacketType.CamReceived:
            if (SendCamTexture == true)
            {
                StartCoroutine(SendCamDataWithDelay());
            }
            break;

        case PacketType.CamResolutionReq:
            CamResolutionReqPacket crrp = (CamResolutionReqPacket)basePacket;
            if (1 <= crrp.Resolution && crrp.Resolution <= 16)
            {
                CamQuality = crrp.Resolution;
                clientSender.SendPacket(new CamResolutionPacket(CamQuality));
            }
            break;

        case PacketType.CamConfig:
            CamConfigPacket ccp = (CamConfigPacket)basePacket;
            switch (ccp.camaraConfigType)
            {
            case CamaraConfigType.ChangeCamara:
                camManager.SwitchCam();
                break;

            case CamaraConfigType.SendFrame:
                if (ccp.enable)
                {
                    SendCamTexture = true;
                    StartCoroutine(SendCamDataWithDelay());
                }
                else
                {
                    SendCamTexture = false;
                }
                break;

            default:
                break;
            }
            break;

        case PacketType.CarStatusChangeReq:
            CarStatusChangeReqPacket cscrp = (CarStatusChangeReqPacket)basePacket;

            if (cscrp.ReqCarDevice.RF_LEDChanged)
            {
                baseCarDivice.rf_LED = cscrp.ReqCarDevice.RF_LED;
            }

            if (cscrp.ReqCarDevice.LF_LEDChanged)
            {
                baseCarDivice.lf_LED = cscrp.ReqCarDevice.LF_LED;
            }

            if (cscrp.ReqCarDevice.RB_LEDChanged)
            {
                baseCarDivice.rb_LED = cscrp.ReqCarDevice.RB_LED;
            }

            if (cscrp.ReqCarDevice.LB_LEDChanged)
            {
                baseCarDivice.lb_LED = cscrp.ReqCarDevice.LB_LED;
            }

            if (tracerObj.gPSMover.EnableTraceMode == false)
            {
                if (cscrp.ReqCarDevice.R_motorDIRChanged)
                {
                    baseCarDivice.r_motorDIR = cscrp.ReqCarDevice.R_motorDIR;
                }

                if (cscrp.ReqCarDevice.L_motorDIRChanged)
                {
                    baseCarDivice.l_motorDIR = cscrp.ReqCarDevice.L_motorDIR;
                }

                if (cscrp.ReqCarDevice.R_motorpowerChanged)
                {
                    baseCarDivice.r_motorpower = cscrp.ReqCarDevice.R_motorpower;
                }

                if (cscrp.ReqCarDevice.L_motorpowerChanged)
                {
                    baseCarDivice.l_motorpower = cscrp.ReqCarDevice.L_motorpower;
                }
            }
            break;

        case PacketType.CarStatusReceived:
            StartCoroutine(SendCarDataWithDelay());
            break;

        case PacketType.CarGPSSpotStatusChangeReq:
            CarGPSSpotStatusChangeReqPacket cgscrp = (CarGPSSpotStatusChangeReqPacket)basePacket;
            switch (cgscrp.GPSSpotManagerChangeType)
            {
            case GPSSpotManagerChangeType.AddSpot:
                tracerObj.gPSMover.GPSSpotManager.AddPos(cgscrp.GPSPosition);
                clientSender.SendPacket(new CarGPSSpotStatusPacket(GPSSpotManagerChangeType.AddSpot, cgscrp.GPSPosition));
                break;

            case GPSSpotManagerChangeType.RemoveSpot:
                tracerObj.gPSMover.GPSSpotManager.RemovePos(cgscrp.Index);
                clientSender.SendPacket(new CarGPSSpotStatusPacket(GPSSpotManagerChangeType.RemoveSpot, cgscrp.Index));
                break;

            case GPSSpotManagerChangeType.SetCurrentPos:
                tracerObj.gPSMover.GPSSpotManager.CurrentMovePosIndex = cgscrp.Index;
                clientSender.SendPacket(new CarGPSSpotStatusPacket(GPSSpotManagerChangeType.SetCurrentPos, cgscrp.Index));
                break;

            case GPSSpotManagerChangeType.OverWrite:
                tracerObj.gPSMover.ChangeSpotManager(cgscrp.GPSMover);
                clientSender.SendPacket(new CarGPSSpotStatusPacket(GPSSpotManagerChangeType.OverWrite, cgscrp.GPSMover));
                break;

            default:
                break;
            }
            break;

        case PacketType.UpdateDataReq:
            DataUpdatePacket dup = (DataUpdatePacket)basePacket;

            switch (dup.modeType)
            {
            case ModeType.AutoDriveMode:
                tracerObj.gPSMover.EnableTraceMode = true;
                baseCarDivice.HalfManualMode       = false;
                break;

            case ModeType.ManualDriveMode:
                tracerObj.gPSMover.EnableTraceMode = false;
                baseCarDivice.HalfManualMode       = false;
                break;

            case ModeType.HaifManualDriveMode:
                tracerObj.gPSMover.EnableTraceMode = false;
                baseCarDivice.HalfManualMode       = true;
                break;

            default:
                break;
            }
            clientSender.SendPacket(new DataUpdatedPacket(dup.modeType));
            break;

        default:
            break;
        }
    }