Exemplo n.º 1
0
        async Task SendControllerStatusDetailsList(SocketSendContainer deserializedBytes)
        {
            try
            {
                //Check if socket server is running
                if (vArnoldVinkSockets == null)
                {
                    Debug.WriteLine("The socket server is not running.");
                    return;
                }

                //List controller status
                List <ControllerStatusDetails> controllerStatusDetailsList = new List <ControllerStatusDetails>();

                //Gather controller status
                ControllerStatusDetails controllerStatus0 = new ControllerStatusDetails(vController0.NumberId);
                controllerStatus0.Activated      = vController0.Activated;
                controllerStatus0.Connected      = vController0.Connected();
                controllerStatus0.BatteryCurrent = vController0.BatteryCurrent;
                controllerStatusDetailsList.Add(controllerStatus0);

                ControllerStatusDetails controllerStatus1 = new ControllerStatusDetails(vController1.NumberId);
                controllerStatus1.Activated      = vController1.Activated;
                controllerStatus1.Connected      = vController1.Connected();
                controllerStatus1.BatteryCurrent = vController1.BatteryCurrent;
                controllerStatusDetailsList.Add(controllerStatus1);

                ControllerStatusDetails controllerStatus2 = new ControllerStatusDetails(vController2.NumberId);
                controllerStatus2.Activated      = vController2.Activated;
                controllerStatus2.Connected      = vController2.Connected();
                controllerStatus2.BatteryCurrent = vController2.BatteryCurrent;
                controllerStatusDetailsList.Add(controllerStatus2);

                ControllerStatusDetails controllerStatus3 = new ControllerStatusDetails(vController3.NumberId);
                controllerStatus3.Activated      = vController3.Activated;
                controllerStatus3.Connected      = vController3.Connected();
                controllerStatus3.BatteryCurrent = vController3.BatteryCurrent;
                controllerStatusDetailsList.Add(controllerStatus3);

                //Prepare socket data
                SocketSendContainer socketSend = new SocketSendContainer();
                socketSend.SourceIp   = vArnoldVinkSockets.vSocketServerIp;
                socketSend.SourcePort = vArnoldVinkSockets.vSocketServerPort;
                socketSend.Object     = controllerStatusDetailsList;
                byte[] SendBytes = SerializeObjectToBytes(socketSend);

                //Send socket data
                TcpClient socketClient = await vArnoldVinkSockets.TcpClientCheckCreateConnect(deserializedBytes.SourceIp, deserializedBytes.SourcePort, vArnoldVinkSockets.vSocketTimeout);

                await vArnoldVinkSockets.TcpClientSendBytes(socketClient, SendBytes, vArnoldVinkSockets.vSocketTimeout, false);
            }
            catch { }
        }
Exemplo n.º 2
0
        //Update the controller status from DirectXInput
        async Task UpdateControllerStatus(List <ControllerStatusDetails> controllerStatusSummaryList)
        {
            try
            {
                //Update the controller status
                foreach (ControllerStatusDetails controllerStatusNew in controllerStatusSummaryList)
                {
                    //Get current controller status
                    Image      controllerStatusImage            = null;
                    StackPanel controllerStatusStackpanel       = null;
                    ControllerStatusDetails controllerStatusOld = null;
                    if (controllerStatusNew.NumberId == 0)
                    {
                        controllerStatusStackpanel = stackpanel_Menu_Controller0;
                        controllerStatusImage      = img_Menu_Controller0;
                        controllerStatusOld        = vController0;
                    }
                    else if (controllerStatusNew.NumberId == 1)
                    {
                        controllerStatusStackpanel = stackpanel_Menu_Controller1;
                        controllerStatusImage      = img_Menu_Controller1;
                        controllerStatusOld        = vController1;
                    }
                    else if (controllerStatusNew.NumberId == 2)
                    {
                        controllerStatusStackpanel = stackpanel_Menu_Controller2;
                        controllerStatusImage      = img_Menu_Controller2;
                        controllerStatusOld        = vController2;
                    }
                    else if (controllerStatusNew.NumberId == 3)
                    {
                        controllerStatusStackpanel = stackpanel_Menu_Controller3;
                        controllerStatusImage      = img_Menu_Controller3;
                        controllerStatusOld        = vController3;
                    }

                    //Check if controller is active controller
                    if (controllerStatusNew.Activated && vControllerActiveId != controllerStatusNew.NumberId)
                    {
                        ActivateController(controllerStatusNew.NumberId);
                    }

                    //Update the battery icons and level
                    if (controllerStatusNew.Activated)
                    {
                        UpdateBatteryStatus(controllerStatusNew.BatteryCurrent);
                    }

                    //Update the controller status for comparison
                    if (controllerStatusNew.NumberId == 0)
                    {
                        vController0 = controllerStatusNew;
                    }
                    else if (controllerStatusNew.NumberId == 1)
                    {
                        vController1 = controllerStatusNew;
                    }
                    else if (controllerStatusNew.NumberId == 2)
                    {
                        vController2 = controllerStatusNew;
                    }
                    else if (controllerStatusNew.NumberId == 3)
                    {
                        vController3 = controllerStatusNew;
                    }

                    //Show controller connection popup and update the controller menu image
                    if (controllerStatusOld.Connected != controllerStatusNew.Connected)
                    {
                        if (controllerStatusNew.Connected)
                        {
                            AVActions.ActionDispatcherInvoke(delegate { controllerStatusStackpanel.Opacity = 1.00; });
                            string ControllerIdDisplay = Convert.ToString(controllerStatusNew.NumberId + 1);
                            //await Notification_Send_Status("Controller", "Connected (" + ControllerIdDisplay + ")");

                            //Hide the mouse cursor
                            await MouseCursorHide();

                            //Update the controller help
                            UpdateControllerHelp();
                        }
                        else
                        {
                            AVActions.ActionDispatcherInvoke(delegate { controllerStatusStackpanel.Opacity = 0.40; });
                            string ControllerIdDisplay = Convert.ToString(controllerStatusNew.NumberId + 1);
                            //await Notification_Send_Status("Controller", "Disconnected (" + ControllerIdDisplay + ")");

                            //Hide the battery status
                            if (vControllerActiveId == controllerStatusNew.NumberId)
                            {
                                HideBatteryStatus(true);
                            }

                            //Update the controller help
                            UpdateControllerHelp();
                        }
                    }
                }
            }
            catch { }
        }