jannis6023

Untitled

Dec 10th, 2021 (edited)
54
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. import SwiftUI
  3. import CoreBluetooth
  4.  
  5. struct ContentView: View {
  6.     @StateObject var bleManager = BLEManager()
  7.     @State var selectedPeripheral: CBPeripheral?
  8.     @State var showPeriSearch = false
  9.     @State var loaded: NetworkSettings?
  10.     var body: some View {
  11.         NavigationView{
  12.             VStack{
  13.                 if(selectedPeripheral == nil){
  14.                     Text("Es wurde noch kein LovePi ausgewählt!")
  15.                 }else if(loaded != nil){
  16.                     Form{
  17.                         Section(header: Text("Netzwerkeinstellungen")){
  18.                             HStack{
  19.                                 Text("WiFi-Name")
  20.                                 Spacer()
  21.                                 Text(bleManager.settingData!.ssid)
  22.                             }
  23.                             HStack{
  24.                                 Text("WiFi-Passwort")
  25.                                 Spacer()
  26.                                 Text(bleManager.settingData!.psk)
  27.                             }
  28.                         }
  29.                     }
  30.                 }else{
  31.                     Button("Laden...", action: {
  32.                         loaded = bleManager.settingData
  33.                     })
  34.                 }
  35.             }
  36.             .navigationTitle("LovePi")
  37.             .toolbar{
  38.                 ToolbarItem(placement: .navigationBarTrailing){
  39.                     Button("Suchen", action: {
  40.                         showPeriSearch = true
  41.                     })
  42.                 }
  43.             }
  44.             .sheet(isPresented: $showPeriSearch, onDismiss: {bleManager.stopScanning();dismissed()}){
  45.                 NavigationView{
  46.                     List(bleManager.peripherals, id: \.name){peri in
  47.                         Button(action:{
  48.                             selectedPeripheral = peri
  49.                             showPeriSearch = false
  50.                         }){
  51.                             VStack{
  52.                                 Text(peri.name ?? "Unbenannt")
  53.                                 if(peri.services != nil){
  54.                                     VStack{
  55.                                         ForEach(peri.services!, id: \.self){service in
  56.                                             Text(service.uuid.uuidString)
  57.                                         }
  58.                                     }
  59.                                 }
  60.                             }
  61.                         }
  62.                     }
  63.                     .navigationTitle("LovePi auswählen")
  64.                     .navigationBarTitleDisplayMode(.inline)
  65.                     .onAppear(perform: {
  66.                         bleManager.startScanning()
  67.                     })
  68.                 }
  69.             }
  70.         }
  71.     }
  72.    
  73.     func dismissed(){
  74.         if(selectedPeripheral != nil){
  75.             print("Discover devices")
  76.             bleManager.connect(peripheral: selectedPeripheral!)
  77.         }
  78.     }
  79. }
  80.  
RAW Paste Data Copied