예제 #1
0
        public ViewSettings(ClientMessage deviceHelloMessage, VirtualCardBoardInterface cardBoardInterface)
        {
            lock (SyncStatus)
            {
                InitializeComponent();
                IsGoingBack          = false;
                IsAlreadyClosed      = false;
                IsChangeEventBlocked = false;
                DeviceStatus         = StatusReady;

                CardBoardInterface = cardBoardInterface;
                DeviceHelloMessage = deviceHelloMessage;
                {
                    if (DeviceHelloMessage.RecievedMessage.Type == Message.MessageType.Hello)
                    {
                        IHelloMessageData iData = DeviceHelloMessage.RecievedMessage.Data;
                    }
                    else
                    {
                        throw new Exception("DeviceHelloMessage.Type must be Message.MessageType.Hello instead \"" +
                                            DeviceHelloMessage.RecievedMessage.Type + "\"!");
                    }
                }
            }
        }
예제 #2
0
        protected void HelloMessageProceed(Message msg, IPEndPoint localEndPoint)
        {
            bool isAlreadyContainDevice = false;
            IHelloMessageData iNewData  = msg.Data;

            foreach (var deviceMessage in VirtualCardboardDevicesList)
            {
                IHelloMessageData iData = deviceMessage.RecievedMessage.Data;
                if (iData.GetName() == iNewData.GetName() &&
                    iData.GetAdress().Equals(iNewData.GetAdress()) &&
                    iData.GetPort() == iNewData.GetPort())
                {
                    isAlreadyContainDevice = true;
                    break;
                }
            }

            if (!isAlreadyContainDevice)
            {
                VirtualCardboardDevicesList.Add(
                    new ClientMessage()
                {
                    RecievedMessage = msg
                    , LocalEnpPoint = localEndPoint
                });
                string name = ((IHelloMessageData)msg.Data).GetName();
                Invoke(new MethodInvoker(delegate()
                {
                    listBoxVirtualCardboardDevices.Items.Add(name);
                }));
            }
        }
예제 #3
0
        private void _SendModePic()
        {
            IHelloMessageData idata = DeviceHelloMessage.RecievedMessage.Data;
            var msg = Message.CreateModeMessage(MessageDataContainer.ModeType.Pic);

            CardBoardInterface.WriteDataBytes(
                Message2BytesComposer.ComposeMessageBytes(msg)
                , new IPEndPoint(idata.GetAdress(), idata.GetPort()));
        }
예제 #4
0
        private void _SendSettingsRequet()
        {
            Message msg = Message.CreateSettingsMessage(
                MessageDataContainer.MissionRequest, 0, 0, 0, 0
                , DeviceHelloMessage.LocalEnpPoint.Address, CardBoardInterface.GetServerPort());
            IHelloMessageData idata = DeviceHelloMessage.RecievedMessage.Data;

            CardBoardInterface.WriteDataBytes(
                Message2BytesComposer.ComposeMessageBytes(msg)
                , new IPEndPoint(idata.GetAdress(), idata.GetPort()));

            DeviceStatus = StatusWaiting;
            UpdateDeviceStatus(idata.GetName(), DeviceStatus);
        }
예제 #5
0
        private void ViewSettings_Load(object sender, EventArgs e)
        {
            IHelloMessageData iData = DeviceHelloMessage.RecievedMessage.Data;

            lock (SyncStatus)
            {
                UpdateDeviceStatus(iData.GetName(), DeviceStatus);

                numericUpDownEyesDistance.Maximum     = Decimal.MaxValue;
                numericUpDownHeigh.Maximum            = Decimal.MaxValue;
                numericUpDownVerticalPosition.Maximum = Decimal.MaxValue;
                numericUpDownWidth.Maximum            = Decimal.MaxValue;
                _SendModeSettings();
                _SendSettingsRequet();
            }
        }
예제 #6
0
        protected void _SendSettingsRequestAssign()
        {
            Message msg = Message.CreateSettingsMessage(
                MessageDataContainer.MissionRequest | MessageDataContainer.MissionAssign
                , (int)numericUpDownEyesDistance.Value
                , (int)numericUpDownVerticalPosition.Value
                , (int)numericUpDownWidth.Value
                , (int)numericUpDownHeigh.Value
                , DeviceHelloMessage.LocalEnpPoint.Address, CardBoardInterface.GetServerPort());
            IHelloMessageData idata = DeviceHelloMessage.RecievedMessage.Data;

            CardBoardInterface.WriteDataBytes(
                Message2BytesComposer.ComposeMessageBytes(msg)
                , new IPEndPoint(idata.GetAdress(), idata.GetPort()));

            DeviceStatus = StatusWaiting;
            UpdateDeviceStatus(idata.GetName(), DeviceStatus);
        }