Esempio n. 1
0
    //-----------------------------------------以下为界面消息处理--------------------------------------
    public void onEventPlay(object data)
    {
        if (!checkSelfTurn())
        {
            //给予提示,不该自己操作
            CommonUtil.Util.showDialog("温馨提示", "当前不是您的回合阶段哟~");
            return;
        }

        if (Room.Room.getHasAbandon())
        {
            //已经投降了,不能操作
            CommonUtil.Util.showDialog("温馨提示", "您已经投降过了~");
            return;
        }

        GameEvent.sV2C_Play play = (GameEvent.sV2C_Play)data;

        msgLianQiReqPlay rplay = new msgLianQiReqPlay();

        rplay.direction = (LIANQI_DIRECTION_TYPE)play.direction;
        rplay.seat      = Room.Room.selfSeat;
        rplay.x         = play.x;
        rplay.y         = play.y;

        ProtocolManager.getInstance().sendMsg(GameLianQiProtocol.P_GAME_LIANQI_REQ_PLAY, rplay, OnRespPlay);
    }
        public override void ChannelRead(IChannelHandlerContext ctx, object msg)
        {
            ProtocolCode protocolCode = ctx.Channel.GetAttribute(Connection.PROTOCOL).Get();
            Protocol     protocol     = ProtocolManager.getProtocol(protocolCode);

            protocol.CommandHandler.handleCommand(new RemotingContext(ctx, new InvokeContext(), serverSide, userProcessors), msg);
        }
Esempio n. 3
0
    public void onEventMove(object data)
    {
        if (!checkSelfTurn())
        {
            //给予提示,不该自己操作
            CommonUtil.Util.showDialog("温馨提示", "当前不是您的回合阶段哟~");
            return;
        }

        if (Room.Room.getHasAbandon())
        {
            //已经投降了,不能操作
            return;
        }

        GameEvent.sV2C_Move move = (GameEvent.sV2C_Move)data;

        msgLianQiReqMove rmove = new msgLianQiReqMove();

        rmove.direction = (LIANQI_DIRECTION_TYPE)move.direction;
        rmove.seat      = Room.Room.selfSeat;
        rmove.x         = move.x;
        rmove.y         = move.y;

        ProtocolManager.getInstance().sendMsg(GameLianQiProtocol.P_GAME_LIANQI_REQ_MOVE, rmove, OnRespMove);
    }
Esempio n. 4
0
    public void removeAllEvent()
    {
        //注册界面消息
        GameEvent.EM().RemoveEvent(GameEvent.EVENT.PLAY);
        GameEvent.EM().RemoveEvent(GameEvent.EVENT.ABANDON);
        GameEvent.EM().RemoveEvent(GameEvent.EVENT.DRAW);
        GameEvent.EM().RemoveEvent(GameEvent.EVENT.MOVE);
        GameEvent.EM().RemoveEvent(GameEvent.EVENT.PASS);

        //注册网络消息
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_START);        //联棋游戏开始 -播放相关动画
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_FLAG);         //标志,诸如重连,特殊棋型出现
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_QI);           //联棋棋盘数据
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_RESP_DRAW);    //请和响应
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_RESP_MOVE);    //请求移动响应
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_RESP_PASS);    //请求过
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_RESP_PLAY);    //请求落子
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_RESULT);       //结算
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_TURN);         //该谁落子
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_RESP_ABANDON); //联棋投降
        ProtocolManager.getInstance().removePushMsgEventListener(GameLianQiProtocol.P_GAME_LIANQI_ABANDON_PASS); //投降玩家自动pass



        Game.Game.reset();
    }
 public override void Deserialize(IDataReader reader)
 {
     m_effect = ProtocolManager.GetTypeInstance <AbstractFightDispellableEffect>(reader.ReadUShort());
     m_effect.Deserialize(reader);
     m_actionId = reader.ReadVarUhShort();
     m_sourceId = reader.ReadDouble();
 }
Esempio n. 6
0
        public override void Deserialize(IDataReader reader)
        {
            m_infos = ProtocolManager.GetTypeInstance <AllianceFactSheetInformations>(reader.ReadUShort());
            m_infos.Deserialize(reader);
            int guildsCount = reader.ReadUShort();
            int guildsIndex;

            m_guilds = new System.Collections.Generic.List <GuildInAllianceInformations>();
            for (guildsIndex = 0; (guildsIndex < guildsCount); guildsIndex = (guildsIndex + 1))
            {
                GuildInAllianceInformations objectToAdd = new GuildInAllianceInformations();
                objectToAdd.Deserialize(reader);
                m_guilds.Add(objectToAdd);
            }
            int controlledSubareaIdsCount = reader.ReadUShort();
            int controlledSubareaIdsIndex;

            m_controlledSubareaIds = new System.Collections.Generic.List <ushort>();
            for (controlledSubareaIdsIndex = 0; (controlledSubareaIdsIndex < controlledSubareaIdsCount); controlledSubareaIdsIndex = (controlledSubareaIdsIndex + 1))
            {
                m_controlledSubareaIds.Add(reader.ReadVarUhShort());
            }
            m_leaderCharacterId   = reader.ReadVarUhLong();
            m_leaderCharacterName = reader.ReadUTF();
        }
Esempio n. 7
0
    //三方登陆响应
    public void onThirdPartyLoginResult(object data)
    {
        AccountEvent.ThirdPartyLoginResult ret = (AccountEvent.ThirdPartyLoginResult)data;

        //设置nowaccount的 third
        Account.thirdOpenID = ret.openId;
        Account.thirdToken  = ret.token;

        //登陆
        msgLogin msg = new msgLogin();

        msg.userID      = 0;
        msg.area        = 1; //用户所选服务器
        msg.appVersion  = CommonUtil.Util.getAppVer();
        msg.channelID   = CommonUtil.Util.getChanelId();
        msg.deviceID    = SystemInfo.deviceUniqueIdentifier;
        msg.ipAddr      = 1111;
        msg.loginType   = (msgLogin.eLoginType)_loginType;
        msg.netWorkType = 1;
        msg.osVersion   = 10000;
        msg.password    = "******";

        //
        msg.openID     = ret.openId;
        msg.token      = ret.token;
        msg.nickName   = ret.name;
        msg.head       = ret.head;
        msg.sex        = ret.sex;
        msg.expireTime = ret.expireTime;
        //.. etc.
        ProtocolManager.getInstance().sendMsg(LobbyProtocol.P_LOBBY_REQ_LOGIN, msg, OnLoginSuccess);

        //显示加载,禁止点击
        ViewManagerEvent.EM().InvokeEvent(ViewManagerEvent.EVENT.SHOW_LOADING_ANI, true);
    }
Esempio n. 8
0
 public override void Deserialize(IDataReader reader)
 {
     base.Deserialize(reader);
     m_humanoidInfo = ProtocolManager.GetTypeInstance <HumanInformations>(reader.ReadUShort());
     m_humanoidInfo.Deserialize(reader);
     m_accountId = reader.ReadInt();
 }
Esempio n. 9
0
        public MainViewModel()
        {
            _windowManager            = new WindowManager();
            TerminaFiles              = new ObservableCollection <string>();
            ImageFiles                = new ObservableCollection <string>();
            _protocol                 = new Protocol(this);
            _protocol.DateTimeChange += (sender, time) =>
            {
                TerminalTime = time.ToString("T");
            };
            _protocol.InputChanged      += OnInputChanged;
            _protocol.FileListChanged   += OnFileListChanged;
            _protocol.TouchButton       += OnTouchButton;
            _protocol.SystemInfoChanged += OnSystemInfoChanged;
            //_protocol.MediaRead += (sender, id, data) => ReadMedia = $"Id: {id} -> Card: {Encoding.UTF8.GetString(data)}";
            _protocol.MediaRead          += _protocol_MediaRead;
            _protocol.MediaReadSector    += _protocol_MediaReadSector;
            _protocol.DeviceStateChanged += OnProtocol_DeviceStateChanged;

            TerminalTime    = "--:--:--";
            _protocolHelper = new ProtocolHelper(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 });

            _connectionVm = new ConnectionViewModel(this);

            _protocolManager  = new ProtocolManager(_protocolHelper, _protocol, this);
            _AutoIOTest       = new AutoIOTest(_protocol, _protocolManager, this);
            _AutoReaderTest   = new AutoReaderTest(_protocol, _protocolManager, this);
            _AutoCompleteTest = new AutoCompleteTest(_protocol, _protocolManager, this);

            _TimerAliveSignal          = new System.Windows.Threading.DispatcherTimer();
            _TimerAliveSignal.Tick    += _TimerAliveSignal_Tick;
            _TimerAliveSignal.Interval = new TimeSpan(0, 0, 5);
            _TimerAliveSignal.Start();
        }
Esempio n. 10
0
    public void onLogout(object data)
    {
        ProtocolManager.getInstance().Disconnect();        //断开,即退出的时候调用

        //这个时候其实应该转到登陆界面
        //to do
    }
Esempio n. 11
0
        void DestinationClient_DataReceived(object sender, Client.DataReceivedEventArgs e)
        {
            NetworkMessage message = ProtocolManager.GetPacket(e.Data.Data, (uint)e.Data.MessageId);

            Host.Dispatcher.DispatchMessage(message, Host);
            Logg.Log("From server :" + message.MessageId.ToString());
        }
Esempio n. 12
0
        protected override void OnShown()
        {
            Trace.Call();

            if (!IsPopulated)
            {
                IsPopulated = true;
                foreach (var chatView in ChatViewManager.Chats)
                {
                    if (!(chatView is XmppGroupChatView))
                    {
                        // only invite to group chats
                        continue;
                    }
                    if (chatView == ChatViewManager.ActiveChat)
                    {
                        // don't need to add current chat to invite list
                        continue;
                    }
                    if (chatView.ProtocolManager != ProtocolManager)
                    {
                        // only add chats from current server
                        continue;
                    }
                    var groupChatView = (XmppGroupChatView)chatView;
                    if (groupChatView.IsContactList)
                    {
                        // ignore our abused groupchatview
                        continue;
                    }

                    var item = new Gtk.ImageMenuItem(chatView.Name);
                    item.Image = new Gtk.Image(GroupChatView.IconPixbuf);
                    var chatid = chatView.ID;
                    item.Activated += delegate {
                        var inviteFromChatModel = ChatViewManager.ActiveChat.ChatModel;
                        ThreadPool.QueueUserWorkItem(delegate {
                            try {
                                for (int i = 0; i < Invitees.Count; i++)
                                {
                                    ProtocolManager.CommandInvite(
                                        new CommandModel(
                                            Frontend.FrontendManager,
                                            inviteFromChatModel,
                                            chatid + " " + Invitees[i].ID
                                            )
                                        );
                                }
                            } catch (Exception ex) {
                                Frontend.ShowException(ex);
                            }
                        });
                    };
                    item.Show();
                    Append(item);
                }
            }

            base.OnShown();
        }
Esempio n. 13
0
        public override void Deserialize(IDataReader reader)
        {
            base.Deserialize(reader);
            m_status = ProtocolManager.GetTypeInstance <PlayerStatus>(reader.ReadUShort());
            m_status.Deserialize(reader);
            int companionsCount = reader.ReadUShort();
            int companionsIndex;

            m_companions = new System.Collections.Generic.List <PartyCompanionMemberInformations>();
            for (companionsIndex = 0; (companionsIndex < companionsCount); companionsIndex = (companionsIndex + 1))
            {
                PartyCompanionMemberInformations objectToAdd = new PartyCompanionMemberInformations();
                objectToAdd.Deserialize(reader);
                m_companions.Add(objectToAdd);
            }
            m_lifePoints    = reader.ReadVarUhInt();
            m_maxLifePoints = reader.ReadVarUhInt();
            m_prospecting   = reader.ReadVarUhShort();
            m_regenRate     = reader.ReadSByte();
            m_initiative    = reader.ReadVarUhShort();
            m_alignmentSide = reader.ReadByte();
            m_worldX        = reader.ReadShort();
            m_worldY        = reader.ReadShort();
            m_mapId         = reader.ReadInt();
            m_subAreaId     = reader.ReadVarUhShort();
        }
Esempio n. 14
0
 /// <seealso cref= InvokeFuture#tryAsyncExecuteInvokeCallbackAbnormally() </seealso>
 public virtual void tryAsyncExecuteInvokeCallbackAbnormally()
 {
     try
     {
         Protocol protocol = ProtocolManager.getProtocol(Remoting.ProtocolCode.fromBytes(this.protocol));
         if (null != protocol)
         {
             CommandHandler commandHandler = protocol.CommandHandler;
             if (null != commandHandler)
             {
                 ExecutorService executor = commandHandler.DefaultExecutor;
                 if (null != executor)
                 {
                     executor.execute(new TempRunnable(this));
                 }
             }
             else
             {
                 logger.LogError("Executor null in commandHandler of protocolCode [{}].", this.protocol);
             }
         }
         else
         {
             logger.LogError("protocolCode [{}] not registered!", this.protocol);
         }
     }
     catch (System.Exception e)
     {
         logger.LogError("Exception caught when executing invoke callback abnormally.", e);
     }
 }
Esempio n. 15
0
        public override void Deserialize(IDataReader reader)
        {
            int enabledSkillsCount = reader.ReadUShort();
            int enabledSkillsIndex;

            m_enabledSkills = new System.Collections.Generic.List <InteractiveElementSkill>();
            for (enabledSkillsIndex = 0; (enabledSkillsIndex < enabledSkillsCount); enabledSkillsIndex = (enabledSkillsIndex + 1))
            {
                InteractiveElementSkill objectToAdd = ProtocolManager.GetTypeInstance <InteractiveElementSkill>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_enabledSkills.Add(objectToAdd);
            }
            int disabledSkillsCount = reader.ReadUShort();
            int disabledSkillsIndex;

            m_disabledSkills = new System.Collections.Generic.List <InteractiveElementSkill>();
            for (disabledSkillsIndex = 0; (disabledSkillsIndex < disabledSkillsCount); disabledSkillsIndex = (disabledSkillsIndex + 1))
            {
                InteractiveElementSkill objectToAdd = ProtocolManager.GetTypeInstance <InteractiveElementSkill>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_disabledSkills.Add(objectToAdd);
            }
            m_elementId     = reader.ReadInt();
            m_elementTypeId = reader.ReadInt();
            m_onCurrentMap  = reader.ReadBoolean();
        }
Esempio n. 16
0
        public override void Deserialize(IDataReader reader)
        {
            int chosenIdolsCount = reader.ReadUShort();
            int chosenIdolsIndex;

            m_chosenIdols = new System.Collections.Generic.List <ushort>();
            for (chosenIdolsIndex = 0; (chosenIdolsIndex < chosenIdolsCount); chosenIdolsIndex = (chosenIdolsIndex + 1))
            {
                m_chosenIdols.Add(reader.ReadVarUhShort());
            }
            int partyChosenIdolsCount = reader.ReadUShort();
            int partyChosenIdolsIndex;

            m_partyChosenIdols = new System.Collections.Generic.List <ushort>();
            for (partyChosenIdolsIndex = 0; (partyChosenIdolsIndex < partyChosenIdolsCount); partyChosenIdolsIndex = (partyChosenIdolsIndex + 1))
            {
                m_partyChosenIdols.Add(reader.ReadVarUhShort());
            }
            int partyIdolsCount = reader.ReadUShort();
            int partyIdolsIndex;

            m_partyIdols = new System.Collections.Generic.List <PartyIdol>();
            for (partyIdolsIndex = 0; (partyIdolsIndex < partyIdolsCount); partyIdolsIndex = (partyIdolsIndex + 1))
            {
                PartyIdol objectToAdd = ProtocolManager.GetTypeInstance <PartyIdol>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_partyIdols.Add(objectToAdd);
            }
        }
Esempio n. 17
0
 public override void Deserialize(IDataReader reader)
 {
     m_attacker = ProtocolManager.GetTypeInstance <CharacterMinimalPlusLookInformations>(reader.ReadUShort());
     m_attacker.Deserialize(reader);
     m_subAreaId = reader.ReadVarUhShort();
     m_fightId   = reader.ReadVarUhShort();
 }
Esempio n. 18
0
        private static void Cleanup()
        {
            Logger.WARN("Shutting down protocols manager");
            ProtocolManager.Shutdown();
            ProtocolManager.CleanupDeadProtocols();

            Logger.WARN("Shutting down I/O handlers manager");
            IOHandlerManager.ShutdownIOHandlers();
            IOHandlerManager.DeleteDeadHandlers();
            IOHandlerManager.Shutdown();

            Logger.WARN("Unregister and delete default protocol handler");
            ProtocolFactoryManager.UnRegisterProtocolFactory(_protocolFactory);

            Logger.WARN("Shutting down applications");
            ClientApplicationManager.Shutdown();

            Logger.WARN("Delete the configuration");

            _configFile = null;

            //Logger.WARN("Doing final OpenSSL cleanup");
            //CleanupSSL();

            Logger.WARN("Shutting down the logger leaving you in the dark. Bye bye... :(");
            Console.ReadKey();
        }
Esempio n. 19
0
    void onEventReportTalent(object data)
    {
        RoomEvent.sV2C_PlayerTalentList ptl = (RoomEvent.sV2C_PlayerTalentList)data;

        msgTalentList ot = new msgTalentList();

        ot.seat       = Room.Room.selfSeat;
        ot.talentList = "";
        //ot.talentList = string.Join(",",ptl.talentList);
        for (int i = 0; i < ptl.talentList.Count; i++)
        {
            if (i < ptl.talentList.Count - 1)
            {
                ot.talentList += ptl.talentList [i] + ",";
            }
            else
            {
                ot.talentList += ptl.talentList [i];
            }
        }

        if (ptl.talentList.Count == 0)
        {
            ot.talentList = "0,0,0,0";
        }

        ProtocolManager.getInstance().sendMsg(GameProtocol.P_GAME_REPORT_TALENT_LIST, ot, OnTalentList);
    }
Esempio n. 20
0
 public static void Init(ProtocolManager protocolManager)
 {
     protocolManager.AddProtocolObjectToDict((ProtocolNo)1, new LoginProtocolData());
     protocolManager.AddUnPackClassStructToDict(User.DATAID, new List <object> {
         DefaultVar.INT32, DefaultVar.STRING, DefaultVar.STRING, DefaultVar.STRING
     });
 }
Esempio n. 21
0
        public override void Deserialize(IDataReader reader)
        {
            int resultsCount = reader.ReadUShort();
            int resultsIndex;

            m_results = new System.Collections.Generic.List <FightResultListEntry>();
            for (resultsIndex = 0; (resultsIndex < resultsCount); resultsIndex = (resultsIndex + 1))
            {
                FightResultListEntry objectToAdd = ProtocolManager.GetTypeInstance <FightResultListEntry>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_results.Add(objectToAdd);
            }
            int namedPartyTeamsOutcomesCount = reader.ReadUShort();
            int namedPartyTeamsOutcomesIndex;

            m_namedPartyTeamsOutcomes = new System.Collections.Generic.List <NamedPartyTeamWithOutcome>();
            for (namedPartyTeamsOutcomesIndex = 0; (namedPartyTeamsOutcomesIndex < namedPartyTeamsOutcomesCount); namedPartyTeamsOutcomesIndex = (namedPartyTeamsOutcomesIndex + 1))
            {
                NamedPartyTeamWithOutcome objectToAdd = new NamedPartyTeamWithOutcome();
                objectToAdd.Deserialize(reader);
                m_namedPartyTeamsOutcomes.Add(objectToAdd);
            }
            m_duration            = reader.ReadInt();
            m_ageBonus            = reader.ReadShort();
            m_lootShareLimitMalus = reader.ReadShort();
        }
Esempio n. 22
0
        private void Leave(IUserToken token)
        {
            string userId = this._userBiz.GetUser(token).id;

            List <string> kickedUsers = new List <string>();

            this._roomBiz.GetUserRoom(userId, out Room room);
            PResult result = this._roomBiz.Leave(userId, kickedUsers, out int destroiedRoomId);

            if (result == PResult.SUCCESS)
            {
                int count = kickedUsers.Count;
                for (int i = 0; i < count; i++)
                {
                    IUserToken mToken = this._userBiz.GetToken(kickedUsers[i]);
                    mToken.CALL_ROOM_ACMD_LEAVE_ROOM();
                }

                this.BrocastRoomInfo(room);
            }

            this.Reply(token, Module.ROOM, Command.QCMD_LEAVE_ROOM, result);

            if (result == PResult.SUCCESS && destroiedRoomId != -1)
            {
                this._hallBiz.Brocast(ProtocolManager.PACKET_HALL_ACMD_BRO_ROOM_DESTROIED(destroiedRoomId));
            }
        }
Esempio n. 23
0
        public override void Deserialize(IDataReader reader)
        {
            m_waitingForHelpInfo = new ProtectedEntityWaitingForHelpInfo();
            m_waitingForHelpInfo.Deserialize(reader);
            int allyCharactersInformationsCount = reader.ReadUShort();
            int allyCharactersInformationsIndex;

            m_allyCharactersInformations = new System.Collections.Generic.List <CharacterMinimalPlusLookInformations>();
            for (allyCharactersInformationsIndex = 0; (allyCharactersInformationsIndex < allyCharactersInformationsCount); allyCharactersInformationsIndex = (allyCharactersInformationsIndex + 1))
            {
                CharacterMinimalPlusLookInformations objectToAdd = ProtocolManager.GetTypeInstance <CharacterMinimalPlusLookInformations>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_allyCharactersInformations.Add(objectToAdd);
            }
            int enemyCharactersInformationsCount = reader.ReadUShort();
            int enemyCharactersInformationsIndex;

            m_enemyCharactersInformations = new System.Collections.Generic.List <CharacterMinimalPlusLookInformations>();
            for (enemyCharactersInformationsIndex = 0; (enemyCharactersInformationsIndex < enemyCharactersInformationsCount); enemyCharactersInformationsIndex = (enemyCharactersInformationsIndex + 1))
            {
                CharacterMinimalPlusLookInformations objectToAdd = ProtocolManager.GetTypeInstance <CharacterMinimalPlusLookInformations>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_enemyCharactersInformations.Add(objectToAdd);
            }
            m_subAreaId = reader.ReadVarUhShort();
        }
Esempio n. 24
0
        public static void Init(BattleParams param)
        {
            _init = true;
            _shouldSendActions = false;

            string          model       = ModelFactory.GetBattleData(Utils.GetIDFromRID(param.id)).model;
            CAIBakedNavmesh navmeshData = AssetsManager.LoadAsset <CAIBakedNavmesh>("scene/" + model + "_navmesh",
                                                                                    "CAIBakedNavmesh");

            _framesPerKeyFrame = param.framesPerKeyFrame;
            _frameRate         = param.frameRate;
            _nextKeyFrame      = param.framesPerKeyFrame;

            cBattle = new VBattle(param);
            lBattle = new Battle(param, navmeshData.GetNavmesh(), Env.LUA_ENV);

            _logicThread = new Thread(LogicWorker);
            _logicThread.IsBackground = true;
            _logicThread.Start();

            NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_BATTLE_START, HandleBattleStart);
            NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_FRAME, HandleFrame);
            NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_BATTLE_END, HandleBattleEnd);
            NetModule.instance.Send(ProtocolManager.PACKET_BATTLE_QCMD_BATTLE_CREATED());
        }
        public void SignalDetachedFromInStream()
        {
            var protocol = ProtocolManager.GetProtocol(_rtpClient.protocolId);

            protocol?.EnqueueForDelete();
            _rtspProtocol = null;
        }
Esempio n. 26
0
        public override void Deserialize(IDataReader reader)
        {
            byte flag = reader.ReadByte();

            m_self    = BooleanByteWrapper.GetFlag(flag, 0);
            m_verbose = BooleanByteWrapper.GetFlag(flag, 1);
            int socialGroupsCount = reader.ReadUShort();
            int socialGroupsIndex;

            m_socialGroups = new System.Collections.Generic.List <AbstractSocialGroupInfos>();
            for (socialGroupsIndex = 0; (socialGroupsIndex < socialGroupsCount); socialGroupsIndex = (socialGroupsIndex + 1))
            {
                AbstractSocialGroupInfos objectToAdd = ProtocolManager.GetTypeInstance <AbstractSocialGroupInfos>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_socialGroups.Add(objectToAdd);
            }
            m_position        = reader.ReadByte();
            m_accountNickname = reader.ReadUTF();
            m_accountId       = reader.ReadInt();
            m_playerName      = reader.ReadUTF();
            m_playerId        = reader.ReadVarUhLong();
            m_areaId          = reader.ReadShort();
            m_serverId        = reader.ReadShort();
            m_originServerId  = reader.ReadShort();
            m_playerState     = reader.ReadByte();
        }
Esempio n. 27
0
        public override void Deserialize(IDataReader reader)
        {
            int knownStepsListCount = reader.ReadUShort();
            int knownStepsListIndex;

            m_knownStepsList = new System.Collections.Generic.List <TreasureHuntStep>();
            for (knownStepsListIndex = 0; (knownStepsListIndex < knownStepsListCount); knownStepsListIndex = (knownStepsListIndex + 1))
            {
                TreasureHuntStep objectToAdd = ProtocolManager.GetTypeInstance <TreasureHuntStep>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_knownStepsList.Add(objectToAdd);
            }
            int flagsCount = reader.ReadUShort();
            int flagsIndex;

            m_flags = new System.Collections.Generic.List <TreasureHuntFlag>();
            for (flagsIndex = 0; (flagsIndex < flagsCount); flagsIndex = (flagsIndex + 1))
            {
                TreasureHuntFlag objectToAdd = new TreasureHuntFlag();
                objectToAdd.Deserialize(reader);
                m_flags.Add(objectToAdd);
            }
            m_questType           = reader.ReadByte();
            m_startMapId          = reader.ReadInt();
            m_totalStepCount      = reader.ReadByte();
            m_checkPointCurrent   = reader.ReadVarUhInt();
            m_checkPointTotal     = reader.ReadVarUhInt();
            m_availableRetryCount = reader.ReadInt();
        }
Esempio n. 28
0
        public override void Deserialize(IDataReader reader)
        {
            base.Deserialize(reader);
            int membersCount = reader.ReadUShort();
            int membersIndex;

            m_members = new System.Collections.Generic.List <PartyMemberInformations>();
            for (membersIndex = 0; (membersIndex < membersCount); membersIndex = (membersIndex + 1))
            {
                PartyMemberInformations objectToAdd = ProtocolManager.GetTypeInstance <PartyMemberInformations>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_members.Add(objectToAdd);
            }
            int guestsCount = reader.ReadUShort();
            int guestsIndex;

            m_guests = new System.Collections.Generic.List <PartyGuestInformations>();
            for (guestsIndex = 0; (guestsIndex < guestsCount); guestsIndex = (guestsIndex + 1))
            {
                PartyGuestInformations objectToAdd = new PartyGuestInformations();
                objectToAdd.Deserialize(reader);
                m_guests.Add(objectToAdd);
            }
            m_partyType       = reader.ReadByte();
            m_partyLeaderId   = reader.ReadVarUhLong();
            m_maxParticipants = reader.ReadByte();
            m_restricted      = reader.ReadBoolean();
            m_partyName       = reader.ReadUTF();
        }
Esempio n. 29
0
        public void Enter(object param)
        {
            NetModule.instance.AddACMDListener(Module.HALL, Command.ACMD_BRO_ROOM_CREATED, this.OnRoomCreated);
            NetModule.instance.AddACMDListener(Module.HALL, Command.ACMD_BRO_ROOM_DESTROIED, this.OnRoomDestroy);
            NetModule.instance.AddACMDListener(Module.HALL, Command.ACMD_ROOM_LIST, this.OnRoomList);
            NetModule.instance.AddACMDListener(Module.HALL, Command.ACMD_JOIN_ROOM, this.OnEnterRoom);

            NetModule.instance.AddQCMDListener(Module.HALL, Command.QCMD_CREATE_ROOM, this.OnCreateRoomResult);
            NetModule.instance.AddQCMDListener(Module.HALL, Command.QCMD_JOIN_ROOM, this.OnJoinRoomResult);

            this._root = UIPackage.CreateObject("hall", "Main").asCom;
            GRoot.inst.AddChild(this._root);
            this._root.size = GRoot.inst.size;

            this._createWin = new CreateRoomWin();

            this._joinPopup = UIPackage.CreateObject("hall", "弹出").asCom;
            this._joinPopup["n0"].asButton.onClick.Add(this.OnJoinRoomBtnClick);

            GButton createBtn = this._root["create"].asButton;

            createBtn.onClick.Add(this.OnCreateBtnClick);

            GList list = this._root["list"].asList;

            list.onClickItem.Add(this.OnClickItem);

            this._root.ShowModalWait();

            NetModule.instance.Send(ProtocolManager.PACKET_HALL_QCMD_ROOM_LIST(255, 0));
        }
Esempio n. 30
0
        public override void Deserialize(IDataReader reader)
        {
            int fightTeamsCount = reader.ReadUShort();
            int fightTeamsIndex;

            m_fightTeams = new System.Collections.Generic.List <FightTeamInformations>();
            for (fightTeamsIndex = 0; (fightTeamsIndex < fightTeamsCount); fightTeamsIndex = (fightTeamsIndex + 1))
            {
                FightTeamInformations objectToAdd = ProtocolManager.GetTypeInstance <FightTeamInformations>(reader.ReadUShort());
                objectToAdd.Deserialize(reader);
                m_fightTeams.Add(objectToAdd);
            }
            int fightTeamsPositionsCount = reader.ReadUShort();
            int fightTeamsPositionsIndex;

            m_fightTeamsPositions = new System.Collections.Generic.List <ushort>();
            for (fightTeamsPositionsIndex = 0; (fightTeamsPositionsIndex < fightTeamsPositionsCount); fightTeamsPositionsIndex = (fightTeamsPositionsIndex + 1))
            {
                m_fightTeamsPositions.Add(reader.ReadVarUhShort());
            }
            int fightTeamsOptionsCount = reader.ReadUShort();
            int fightTeamsOptionsIndex;

            m_fightTeamsOptions = new System.Collections.Generic.List <FightOptionsInformations>();
            for (fightTeamsOptionsIndex = 0; (fightTeamsOptionsIndex < fightTeamsOptionsCount); fightTeamsOptionsIndex = (fightTeamsOptionsIndex + 1))
            {
                FightOptionsInformations objectToAdd = new FightOptionsInformations();
                objectToAdd.Deserialize(reader);
                m_fightTeamsOptions.Add(objectToAdd);
            }
            m_fightId   = reader.ReadInt();
            m_fightType = reader.ReadByte();
        }
Esempio n. 31
0
        public void IsProtocolNegotiationPositive()
        {
            var mgr = new ProtocolManager(0);
            var message = new Message
            {
                MessageType = ProtocolManager.NegotiationMessageTypeName
            };

            Assert.True(mgr.IsProtocolNegotiation(message));
        }
Esempio n. 32
0
        public void NegotiateMissingVersion()
        {
            var mgr = new ProtocolManager(5);
            var message = new Message
            {
                MessageType = ProtocolManager.NegotiationMessageTypeName
            };

            Assert.Equal(1, mgr.CurrentVersion);
        }
Esempio n. 33
0
        public void CreateProtocolManagerWithVersion()
        {
            var version = 101;
            var mgr = new ProtocolManager(version);

            Assert.NotNull(mgr);
            Assert.Equal(version, mgr.MaxVersion);
            Assert.Equal(1, mgr.CurrentVersion);
            Assert.False(mgr.EnvironmentOverridden);
        }
Esempio n. 34
0
        public void NegotiateVersionZeroIsIgnored()
        {
            var mgr = new ProtocolManager(5);
            var message = new Message
            {
                MessageType = ProtocolManager.NegotiationMessageTypeName,
                Payload = JToken.FromObject(new { Version = 0 })
            };

            Assert.Equal(1, mgr.CurrentVersion);
        }
Esempio n. 35
0
        public void NegotiateVersion(int highestVersion, int requestVersion, int expectResult)
        {
            var mgr = new ProtocolManager(highestVersion);
            var message = new Message
            {
                ContextId = 0,
                HostId = Guid.NewGuid().ToString(),
                MessageType = ProtocolManager.NegotiationMessageTypeName,
                Sender = null,  // send is allowed to be null
                Payload = JToken.FromObject(new { Version = requestVersion })
            };

            mgr.Negotiate(message);

            Assert.Equal(expectResult, mgr.CurrentVersion);
        }
        static int Main(string[] args)
        {
            ProtocolManager protocol;
            TextWriter writer;

            try
            {
                if (args.Length < 3)
                {
                    Console.WriteLine("Invalid arguments, need [message_template.msg] [template.cs] [_Packets_.cs]");
                    return -1;
                }

                writer = new StreamWriter(args[2]);
                protocol = new ProtocolManager(args[0]);

                TextReader reader = new StreamReader(args[1]);
                writer.WriteLine(reader.ReadToEnd());
                reader.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return -2;
            }

            // Write the PacketType enum
            writer.WriteLine("    /// <summary>Used to identify the type of a packet</summary>");
            writer.WriteLine("    public enum PacketType\n    {\n" +
                "        /// <summary>A generic value, not an actual packet type</summary>\n" +
                "        Default,");
            foreach (MapPacket packet in protocol.LowMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("        /// <summary>" + packet.Name + "</summary>");
                    writer.WriteLine("        " + packet.Name + ",");
                }
            }
            foreach (MapPacket packet in protocol.MediumMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("        /// <summary>" + packet.Name + "</summary>");
                    writer.WriteLine("        " + packet.Name + ",");
                }
            }
            foreach (MapPacket packet in protocol.HighMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("        /// <summary>" + packet.Name + "</summary>");
                    writer.WriteLine("        " + packet.Name + ",");
                }
            }
            writer.WriteLine("    }\n");

            // Write the base Packet class
            writer.WriteLine("    /// <summary>Base class for all packet classes</summary>\n" +
                "    public abstract class Packet\n    {\n" +
                "        /// <summary>Either a LowHeader, MediumHeader, or HighHeader representing the first bytes of the packet</summary>\n" +
                "        public abstract Header Header { get; set; }\n" +
                "        /// <summary>The type of this packet, identified by it's frequency and ID</summary>\n" +
                "        public abstract PacketType Type { get; }\n" +
                "        /// <summary>Used internally to track timeouts, do not use</summary>\n" +
                "        public int TickCount;\n\n" +
                "        /// <summary>Serializes the packet in to a byte array</summary>\n" +
                "        /// <returns>A byte array containing the serialized packet payload, ready to be sent across the wire</returns>\n" +
                "        public abstract byte[] ToBytes();\n\n" +
                "        /// <summary>Get the PacketType for a given packet id and packet frequency</summary>\n" +
                "        /// <param name=\"id\">The packet ID from the header</param>\n" +
                "        /// <param name=\"frequency\">Frequency of this packet</param>\n" +
                "        /// <returns>The packet type, or PacketType.Default</returns>\n" +
                "        public static PacketType GetType(ushort id, PacketFrequency frequency)\n        {\n" +
                "            switch (frequency)\n            {\n                case PacketFrequency.Low:\n" +
                "                    switch (id)\n                    {");

            foreach (MapPacket packet in protocol.LowMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("                        case " + packet.ID +
                        ": return PacketType." + packet.Name + ";");
                }
            }

            writer.WriteLine("                    }\n                    break;\n" +
                "                case PacketFrequency.Medium:\n                    switch (id)\n                    {");

            foreach (MapPacket packet in protocol.MediumMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("                        case " + packet.ID +
                        ": return PacketType." + packet.Name + ";");
                }
            }

            writer.WriteLine("                    }\n                    break;\n" +
                "                case PacketFrequency.High:\n                    switch (id)\n                    {");

            foreach (MapPacket packet in protocol.HighMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("                        case " + packet.ID +
                        ": return PacketType." + packet.Name + ";");
                }
            }

            writer.WriteLine("                    }\n                    break;\n            }\n\n" +
                "            return PacketType.Default;\n        }\n");

            writer.WriteLine("        /// <summary>Construct a packet in it's native class from a byte array</summary>\n" +
                "        /// <param name=\"bytes\">Byte array containing the packet, starting at position 0</param>\n" +
                "        /// <param name=\"packetEnd\">The last byte of the packet. If the packet was 76 bytes long, packetEnd would be 75</param>\n" +
                "        /// <returns>The native packet class for this type of packet, typecasted to the generic Packet</returns>\n" +
                "        public static Packet BuildPacket(byte[] bytes, ref int packetEnd)\n" +
                "        {\n            ushort id;\n            int i = 0;\n" +
                "            Header header = Header.BuildHeader(bytes, ref i, ref packetEnd);\n" +
                "            if (header.Zerocoded)\n            {\n" +
                "                byte[] zeroBuffer = new byte[8192];\n" +
                "                packetEnd = Helpers.ZeroDecode(bytes, packetEnd + 1, zeroBuffer) - 1;\n" +
                "                bytes = zeroBuffer;\n            }\n\n" +
                "            if (bytes[4] == 0xFF)\n            {\n" +
                "                if (bytes[5] == 0xFF)\n                {\n" +
                "                    id = (ushort)((bytes[6] << 8) + bytes[7]);\n" +
                "                    switch (id)\n                    {");
            foreach (MapPacket packet in protocol.LowMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("                        case " + packet.ID +
                        ": return new " + packet.Name + "Packet(header, bytes, ref i);");
                }
            }
            writer.WriteLine("                    }\n                }\n                else\n" +
                "                {\n                    id = (ushort)bytes[5];\n" +
                "                    switch (id)\n                    {");
            foreach (MapPacket packet in protocol.MediumMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("                        case " + packet.ID +
                        ": return new " + packet.Name + "Packet(header, bytes, ref i);");
                }
            }
            writer.WriteLine("                    }\n                }\n            }\n" +
                "            else\n            {\n" +
                "                id = (ushort)bytes[4];\n" +
                "                switch (id)\n                    {");
            foreach (MapPacket packet in protocol.HighMaps)
            {
                if (packet != null)
                {
                    writer.WriteLine("                        case " + packet.ID +
                        ": return new " + packet.Name + "Packet(header, bytes, ref i);");
                }
            }
            writer.WriteLine("                }\n            }\n\n" +
                "            throw new MalformedDataException(\"Unknown packet ID\");\n" +
                "        }\n    }\n");

            // Write the packet classes
            foreach (MapPacket packet in protocol.LowMaps)
            {
                if (packet != null) { WritePacketClass(writer, packet); }
            }

            foreach (MapPacket packet in protocol.MediumMaps)
            {
                if (packet != null) { WritePacketClass(writer, packet); }
            }

            foreach (MapPacket packet in protocol.HighMaps)
            {
                if (packet != null) { WritePacketClass(writer, packet); }
            }

            writer.WriteLine("}");

            writer.Close();

            return 0;
        }
Esempio n. 37
0
        //Initializes the player variables
        public void init(bool player1)
        {
            // get protocolManager from GameManager
            protocols = GameManager.protocols;

            deck = new ArrayList ();
            hand = new ArrayList ();
            GraveYard = new ArrayList ();
            cardsInPlay = new ArrayList ();
            treeID = new ArrayList ();

            //Set's player's coordinates of interest for p1 and p2
            setPlayerNum (player1);

            //Creates the player's tree and mana displayer
            createTree ();
            createMana ();
        }
Esempio n. 38
0
        void Start()
        {
            // Needed to to fade into scene
            Game.StartEnterTransition ();
            showLoading = 300; //5 seconds
            popup = GameObject.Find ("Loading");
            protocols = (ProtocolManager)gameObject.AddComponent ("ProtocolManager");
            protocols.init ();

            enabled = true;
            player1 = (BattlePlayer)gameObject.AddComponent ("BattlePlayer");
            player1.init (true);
            player1.playerID = GameState.player.GetID ();
            Debug.Log ("player1 ID : " + player1.playerID);
            player1.playerName = GameState.player.GetName ();

            // initialize match here

            if (Constants.SINGLE_PLAYER) {
                player2 = (BattlePlayer)gameObject.AddComponent ("BattlePlayer");
                player2.init (false);
                player2.playerName = "Player 2";
            } else {
                // TODO: Need different logic here to make player 2
                // not have cards dealt face up, etx.
                player2 = (BattlePlayer)gameObject.AddComponent ("BattlePlayer");
                player2.init (false);
                player2.playerName = "Player 2";
            }
            // Send MatchStatus protocol
            initMatch ();

            curPlayer = player1;
            GameManager.manager = this;

            // Poll for turn updates
            //StartCoroutine(PollAction(Constants.UPDATE_RATE));
        }
Esempio n. 39
0
        static int Main(string[] args)
        {
            ProtocolManager protocol;
            List<string> unused = new List<string>();
            TextWriter writer;

            try
            {
                if (args.Length != 4)
                {
                    Console.WriteLine("Usage: [message_template.msg] [template.cs] [unusedpackets.txt] [_Packets_.cs]");
                    return -1;
                }

                writer = new StreamWriter(args[3]);
                protocol = new ProtocolManager(args[0]);

                // Build a list of unused packets
                using (StreamReader unusedReader = new StreamReader(args[2])) 
                {
                    while (unusedReader.Peek() >= 0) 
                    {
                        unused.Add(unusedReader.ReadLine().Trim());
                    }
                }

                // Read in the template.cs file and write it to our output
                TextReader reader = new StreamReader(args[1]);
                writer.WriteLine(reader.ReadToEnd());
                reader.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return -2;
            }


            // Prune all of the unused packets out of the protocol
            int i = 0;
            foreach (MapPacket packet in protocol.LowMaps)
            {
                if (packet != null && unused.Contains(packet.Name))
                    protocol.LowMaps[i] = null;
                i++;
            }
            i = 0;
            foreach (MapPacket packet in protocol.MediumMaps)
            {
                if (packet != null && unused.Contains(packet.Name))
                    protocol.MediumMaps[i] = null;
                i++;
            }
            i = 0;
            foreach (MapPacket packet in protocol.HighMaps)
            {
                if (packet != null && unused.Contains(packet.Name))
                    protocol.HighMaps[i] = null;
                i++;
            }


            // Write the PacketType enum
            writer.WriteLine("    public enum PacketType" + Environment.NewLine + "    {" + Environment.NewLine +
                "        /// <summary>A generic value, not an actual packet type</summary>" + Environment.NewLine +
                "        Default,");
            foreach (MapPacket packet in protocol.LowMaps)
                if (packet != null)
                    writer.WriteLine("        " + packet.Name + " = " + (0x10000 | packet.ID)  + ",");
            foreach (MapPacket packet in protocol.MediumMaps)
                if (packet != null)
                    writer.WriteLine("        " + packet.Name + " = " + (0x20000 | packet.ID) + ",");
            foreach (MapPacket packet in protocol.HighMaps)
                if (packet != null)
                    writer.WriteLine("        " + packet.Name + " = " + (0x30000 | packet.ID) + ",");
            writer.WriteLine("    }" + Environment.NewLine);


            // Write all of the XmlInclude statements for the Packet class to allow packet serialization
            writer.WriteLine("#if PACKETSERIALIZE");
            foreach (MapPacket packet in protocol.LowMaps)
                if (packet != null)
                    writer.WriteLine("    [XmlInclude(typeof(" + packet.Name + "Packet))]");
            foreach (MapPacket packet in protocol.MediumMaps)
                if (packet != null)
                    writer.WriteLine("    [XmlInclude(typeof(" + packet.Name + "Packet))]");
            foreach (MapPacket packet in protocol.HighMaps)
                if (packet != null)
                    writer.WriteLine("    [XmlInclude(typeof(" + packet.Name + "Packet))]");
            writer.WriteLine("#endif");

            // Write the base Packet class
            writer.WriteLine(
                "    public abstract class Packet" + Environment.NewLine + "    {" + Environment.NewLine + 
                "        public abstract Header Header { get; set; }" + Environment.NewLine +
                "        public abstract PacketType Type { get; }" + Environment.NewLine +
                "        public int TickCount;" + Environment.NewLine + Environment.NewLine +
                "        public abstract byte[] ToBytes();" + Environment.NewLine + Environment.NewLine +
                "        public void ToXml(XmlWriter xmlWriter)" + Environment.NewLine +
                "        {" + Environment.NewLine +
                "            XmlSerializer serializer = new XmlSerializer(typeof(Packet));" + Environment.NewLine +
                "            serializer.Serialize(xmlWriter, this);" + Environment.NewLine +
                "        }");


            // Write the Packet.GetType() function
            writer.WriteLine(
                "        public static PacketType GetType(ushort id, PacketFrequency frequency)" + Environment.NewLine +
                "        {" + Environment.NewLine +
                "            switch (frequency)" + Environment.NewLine + 
                "            {" + Environment.NewLine + 
                "                case PacketFrequency.Low:" + Environment.NewLine +
                "                    switch (id)" + Environment.NewLine + 
                "                    {");
            foreach (MapPacket packet in protocol.LowMaps)
                if (packet != null)
                    writer.WriteLine("                        case " + packet.ID + ": return PacketType." + packet.Name + ";");
            writer.WriteLine("                    }" + Environment.NewLine + 
                "                    break;" + Environment.NewLine +
                "                case PacketFrequency.Medium:" + Environment.NewLine +
                "                    switch (id)" + Environment.NewLine + "                    {");
            foreach (MapPacket packet in protocol.MediumMaps)
                if (packet != null)
                    writer.WriteLine("                        case " + packet.ID + ": return PacketType." + packet.Name + ";");
            writer.WriteLine("                    }" + Environment.NewLine + 
                "                    break;" + Environment.NewLine +
                "                case PacketFrequency.High:" + Environment.NewLine +
                "                    switch (id)" + Environment.NewLine + "                    {");
            foreach (MapPacket packet in protocol.HighMaps)
                if (packet != null)
                    writer.WriteLine("                        case " + packet.ID + ": return PacketType." + packet.Name + ";");
            writer.WriteLine("                    }" + Environment.NewLine +
                "                    break;" + Environment.NewLine + "            }" + Environment.NewLine + Environment.NewLine +
                "            return PacketType.Default;" + Environment.NewLine + "        }" + Environment.NewLine);
            

            // Write the Packet.BuildPacket() function
            writer.WriteLine(
                "        public static Packet BuildPacket(byte[] bytes, ref int packetEnd, byte[] zeroBuffer)" + Environment.NewLine +
                "        {" + Environment.NewLine + "            ushort id; PacketFrequency freq;" + Environment.NewLine + 
                "            int i = 0;" + Environment.NewLine +
                "            Header header = Header.BuildHeader(bytes, ref i, ref packetEnd);" + Environment.NewLine +
                "            if (header.Zerocoded)" + Environment.NewLine + "            {" + Environment.NewLine +
                "                packetEnd = Helpers.ZeroDecode(bytes, packetEnd + 1, zeroBuffer) - 1;" + Environment.NewLine +
                "                bytes = zeroBuffer;" + Environment.NewLine + "            }" + Environment.NewLine + Environment.NewLine +
                "            if (bytes[6] == 0xFF)" + Environment.NewLine + "            {" + Environment.NewLine +
                "                if (bytes[7] == 0xFF)" + Environment.NewLine + "                {" + Environment.NewLine +
                "                    id = (ushort)((bytes[8] << 8) + bytes[9]); freq = PacketFrequency.Low;" + Environment.NewLine +
                "                    switch (id)" + Environment.NewLine + "                    {");
            foreach (MapPacket packet in protocol.LowMaps)
                if (packet != null)
                    writer.WriteLine("                        case " + packet.ID + ": return new " + packet.Name + "Packet(header, bytes, ref i);");
            writer.WriteLine("                    }" + Environment.NewLine + "                }" + Environment.NewLine + 
                "                else" + Environment.NewLine +
                "                {" + Environment.NewLine + "                    id = (ushort)bytes[7];  freq = PacketFrequency.Medium;" + Environment.NewLine +
                "                    switch (id)" + Environment.NewLine + "                    {");
            foreach (MapPacket packet in protocol.MediumMaps)
                if (packet != null)
                    writer.WriteLine("                        case " + packet.ID + ": return new " + packet.Name + "Packet(header, bytes, ref i);");
            writer.WriteLine("                    }" + Environment.NewLine + "                }" + Environment.NewLine + "            }" + Environment.NewLine +
                "            else" + Environment.NewLine + "            {" + Environment.NewLine +
                "                id = (ushort)bytes[6];  freq = PacketFrequency.High;" + Environment.NewLine +
                "                switch (id)" + Environment.NewLine + "                    {");
            foreach (MapPacket packet in protocol.HighMaps)
                if (packet != null)
                    writer.WriteLine("                        case " + packet.ID + ": return new " + packet.Name + "Packet(header, bytes, ref i);");
            writer.WriteLine("                }" + Environment.NewLine + "            }" + Environment.NewLine + Environment.NewLine +
                "            throw new MalformedDataException(\"Unknown packet ID \"+freq+\" \"+id);" + Environment.NewLine +
                "        }" + Environment.NewLine + "    }" + Environment.NewLine);


            // Write the packet classes
            foreach (MapPacket packet in protocol.LowMaps)
                if (packet != null) { WritePacketClass(writer, packet); }
            foreach (MapPacket packet in protocol.MediumMaps)
                if (packet != null) { WritePacketClass(writer, packet); }
            foreach (MapPacket packet in protocol.HighMaps)
                if (packet != null) { WritePacketClass(writer, packet); }


            // Finish up
            writer.WriteLine("}");
            writer.Close();
            return 0;
        }
Esempio n. 40
0
        public void IsProtocolNegotiationNullMessage()
        {
            var mgr = new ProtocolManager(4);

            Assert.False(mgr.IsProtocolNegotiation(null));
        }
Esempio n. 41
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>
        protected override void Initialize()
        {
            // TODO: Add your initialization logic here
            InitalizeSerialCommunication();

            lowerLeftBumper = new Bumper();
            upperLeftBumper = new Bumper();
            upperRightBumper = new Bumper();
            lowerRightBumper = new Bumper();
            wheels = new CoupledWheels();
            wheels.ClicksPerTurn = 3900;
            wheels.WheelDistance = 0.345f;
            wheels.WheelRadius = 0.0467f;
            wheels.Updated += new EventHandler(wheels_Updated);

            sonar0 = new MaxbotixSonar();
            sonar1 = new MaxbotixSonar();
            sonar2 = new MaxbotixSonar();
            sonar3 = new MaxbotixSonar();
            sonar4 = new MaxbotixSonar();

            groundSensor0 = new InfraredSensor();
            groundSensor1 = new InfraredSensor();
            groundSensor2 = new InfraredSensor();

            redLed = new LedPwm();
            greenLed = new LedPwm();
            blueLed = new LedPwm();

            drive = new DifferentialDrive(wheels);
            odometry = new DifferentialOdometry(wheels);
            proximity = new ProximityArray
            {
                { new Transform(0.15f, 0.14f, MathHelper.ToRadians(45)), sonar0 },
                { new Transform(0.165f, 0.07f, MathHelper.ToRadians(20)), sonar1 },
                { new Transform(0.18f, 0.0f, MathHelper.ToRadians(0)), sonar2 },
                { new Transform(0.165f, -0.07f, MathHelper.ToRadians(-20)), sonar3 },
                { new Transform(0.15f, -0.14f, MathHelper.ToRadians(-45)), sonar4 },
            };

            protocol = new ProtocolManager();
            protocol.SubscribeComponent(lowerLeftBumper);
            protocol.SubscribeComponent(upperLeftBumper);
            protocol.SubscribeComponent(upperRightBumper);
            protocol.SubscribeComponent(lowerRightBumper);
            protocol.SubscribeComponent(wheels);
            protocol.SubscribeComponent(sonar0);
            protocol.SubscribeComponent(sonar1);
            protocol.SubscribeComponent(sonar2);
            protocol.SubscribeComponent(sonar3);
            protocol.SubscribeComponent(sonar4);
            protocol.SubscribeComponent(groundSensor0);
            protocol.SubscribeComponent(groundSensor1);
            protocol.SubscribeComponent(groundSensor2);
            protocol.SubscribeComponent(greenLed);
            protocol.SubscribeComponent(redLed);
            protocol.SubscribeComponent(blueLed);
            transport.Protocol = protocol;

            renderer = new SpriteRenderer(this);
            renderer.PixelsPerMeter = 100;
            Components.Add(renderer);

            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);
            Services.AddService(typeof(SpriteBatch), spriteBatch);

            base.Initialize();
        }
Esempio n. 42
0
        public void IsProtocolNegotiationWrongMessageTypeName()
        {
            var mgr = new ProtocolManager(4);
            var message = new Message
            {
                MessageType = "Initialization"
            };

            Assert.False(mgr.IsProtocolNegotiation(message));
        }