Ejemplo n.º 1
0
        /// <summary>
        /// Opens a Terminal window in the specified folder
        /// </summary>
        /// <param name="folder"></param>
        /// <param  name="mode">Powershell, Command or Bash</param>
        /// <returns>false if process couldn't be started - most likely invalid link</returns>
        public static bool OpenTerminal(string folder, TerminalModes mode = TerminalModes.Powershell)
        {
            try
            {
                string cmd = null, args = null;

                if (mode == TerminalModes.Powershell)
                {
                    cmd  = "powershell.exe";
                    args = "-noexit -command \"cd '{0}'\"";
                }
                else if (mode == TerminalModes.Command)
                {
                    cmd  = "cmd.exe";
                    args = "/k \"cd {0}\"";
                }

                Process.Start(cmd, string.Format(args, folder));
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Ejemplo n.º 2
0
 public MainPage()
 {
     this.InitializeComponent();
     MP = this;
     this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
     TerminalMode             = TerminalModes.none;
     //TerminalMode = TerminalModes.RFCOMMChat;
     InitGPIO();
 }
Ejemplo n.º 3
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     if (e.NavigationMode == NavigationMode.Back)
     {
         TerminalMode = TerminalModes.none;
     }
     else
     {
     }
 }
Ejemplo n.º 4
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            if (sender is Button)
            {
                string content = (string)((Button)sender).Content;
                if (content != "")
                {
                    switch (content)
                    {
                    case "Socket Server":
                        if (TerminalMode == TerminalModes.none)
                        {
                            TerminalMode = TerminalModes.Socket;
                            Frame.Navigate(typeof(SocketServerTerminalPage));
                        }
                        break;

                    case "USB Serial":
                        if (TerminalMode == TerminalModes.none)
                        {
                            TerminalMode = TerminalModes.USBSerial;
                            Frame.Navigate(typeof(SurfPadIoT.Pages.USBSerialTerminalPage));
                        }
                        break;

                    case "Bluetooth":
                        if (TerminalMode == TerminalModes.none)
                        {
                            TerminalMode = TerminalModes.BT;
                            Frame.Navigate(typeof(BluetoothSerialTerminalPage));
                        }
                        break;

                    case "RFCOMM Chat":
                        if (TerminalMode == TerminalModes.none)
                        {
                            TerminalMode = TerminalModes.RFCOMMChat;
                            Frame.Navigate(typeof(RFCOMM_ChatClientPage));
                        }
                        break;

                    case "Reset":
                        TerminalMode = TerminalModes.none;
                        break;
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private async void MainPage_ButtonTapped1(string sender, int args)
        {
            string name    = sender;
            int    id      = args;
            bool   notDone = false;

            //listView1.Items.Insert(0, name);
            if (args == 0)
            {
                if (TerminalMode == TerminalModes.none)
                {
                    TerminalMode = TerminalModes.BT;
                    Frame.Navigate(typeof(Bluetooth.BluetoothSerialTerminalPage));
                }
                else
                {
                    notDone = true;
                }
            }
            else if (args == 1)
            {
                char ch = '!';
                if (TerminalMode == TerminalModes.BT)
                {
                    if (BTTerminalPage != null)
                    {
                        BTTerminalPage.SendCh(ch);
                    }
                }
                else if (TerminalMode == TerminalModes.USBSerial)
                {
                    if (USBSerialTerminalPage != null)
                    {
                        USBSerialTerminalPage.SendCh(ch);
                    }
                }
                else if (TerminalMode == TerminalModes.Socket)
                {
                    if (SocketTerminalPage != null)
                    {
                        SocketTerminalPage.CloseSocket();
                    }
                    TerminalMode = TerminalModes.none;
                }
            }
            else if (args == 2)
            {
                if (TerminalMode == TerminalModes.none)
                {
                    TerminalMode = TerminalModes.USBSerial;
                    Frame.Navigate(typeof(USBSerial.USBSerialTerminalPage));
                }
                else
                {
                    notDone = true;
                }
            }
            else if (args == 3)
            {
                if (TerminalMode == TerminalModes.none)
                {
                    TerminalMode = TerminalModes.Socket;
                    Frame.Navigate(typeof(Socket.SocketTerminalPage));
                }
                else
                {
                    notDone = true;
                }
            }

            else if (args == 4)
            {
                if (TerminalMode == TerminalModes.none)
                {
                    TerminalMode = TerminalModes.RFCOMM_Chat;
                    Frame.Navigate(typeof(RFCOMM_ChatServer));
                }
                else
                {
                    notDone = true;
                }
            }

            if ((args > 4) || notDone)
            {
                //characters as code for keys are A..Z and a..z
                char ch = (char)((int)'A' + id);
                if (ch > 'Z')
                {
                    ch = (char)((int)'a' + id - 26);
                }
                if (TerminalMode == TerminalModes.BT)
                {
                    if (BTTerminalPage != null)
                    {
                        BTTerminalPage.SendCh(ch);
                    }
                }
                else if (TerminalMode == TerminalModes.USBSerial)
                {
                    if (USBSerialTerminalPage != null)
                    {
                        USBSerialTerminalPage.SendCh(ch);
                    }
                }
                else if (TerminalMode == TerminalModes.Socket)
                {
                    if (SocketTerminalPage != null)
                    {
                        await SocketTerminalPage.SendCh(ch);
                    }
                }
                else if (TerminalMode == TerminalModes.RFCOMM_Chat)
                {
                    if (RFCOMM_ChatPage != null)
                    {
                        RFCOMM_ChatPage.SendCh(ch);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        private void InitGPIO()

        {
            GpioController gpio = GpioController.GetDefault();
            {
                if (gpio == null)

                {
                    Status.Text  = "There is no GPIO controller on this device.";
                    TerminalMode = TerminalModes.RFCOMMChat;
                    Status.Text  = "RFCOMM Chat Mode";
                    return;
                }
                //Can set in MainPage()
                if (TerminalMode == TerminalModes.none)
                {
                    using (var pin2 = gpio.OpenPin(2)) {             //Physical Pin 3
                        using (var pin3 = gpio.OpenPin(3)) {         //Physical Pin 5
                            using (var pin4 = gpio.OpenPin(4)) {     //Physical Pin 7
                                using (var pin17 = gpio.OpenPin(17)) //Physical Pin 11
                                {
                                    //Nb: Physical Pin 1 = Vcc(3.3) & Physical Pin 9 = Gnd
                                    //Need to ground all but the required pinX input

                                    //Nb: pinX X is the GPIO number not the physical pin
                                    // eg. pin2 is GPIO2 = physical pin 3 etc.

                                    //Seems that all bar GPIO17 float high.
                                    //So might get away with only defintely setting its state and driving other ones low as required
                                    pin2.SetDriveMode(GpioPinDriveMode.Input);
                                    pin3.SetDriveMode(GpioPinDriveMode.Input);
                                    pin4.SetDriveMode(GpioPinDriveMode.Input);
                                    pin17.SetDriveMode(GpioPinDriveMode.Input);

                                    var a0 = pin2.Read();
                                    var a1 = pin3.Read();
                                    var a2 = pin4.Read();
                                    var a3 = pin17.Read();
                                    if (a0 == GpioPinValue.Low)
                                    {
                                        TerminalMode = TerminalModes.BT;
                                        Status.Text  = "BT Mode";
                                    }
                                    else if (a1 == GpioPinValue.Low)
                                    {
                                        TerminalMode = TerminalModes.USBSerial;
                                        Status.Text  = "USB Serial Mode";
                                    }
                                    else if (a2 == GpioPinValue.Low)
                                    {
                                        TerminalMode = TerminalModes.Socket;
                                        Status.Text  = "Socket Mode";
                                    }
                                    else if (a3 == GpioPinValue.Low)
                                    {
                                        TerminalMode = TerminalModes.RFCOMMChat;
                                        Status.Text  = "RFCOMM Chat Mode";
                                    }
                                    else
                                    {
                                        TerminalMode = TerminalModes.none;
                                        Status.Text  = "Need to set one of GPIO 2,3,4, 17 to High. Pins 3,5,7,11 respectively";
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }