/// <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); }
public MainPage() { this.InitializeComponent(); MP = this; this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled; TerminalMode = TerminalModes.none; //TerminalMode = TerminalModes.RFCOMMChat; InitGPIO(); }
protected override void OnNavigatedTo(NavigationEventArgs e) { if (e.NavigationMode == NavigationMode.Back) { TerminalMode = TerminalModes.none; } else { } }
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; } } } }
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); } } } }
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"; } } } } } } } }