Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 7.94 KB | None | 0 0
  1. //pri stisknuti tlacitka se zada o nacteni zbylych informaci mobilem
  2.     //nasledne jsou data doplnena a nactena kategorie dle predchoziho vyberu
  3.     @IBAction func btPressed(){
  4.         var data: [String] = []
  5.         //zakazani gest = nelze zmenit kategorii
  6.         canSwipe = false
  7.         //zobrazeni animace v pravem hornim rohu GUI
  8.         loadingG.setHidden(false)
  9.         loadingG.setBackgroundImageNamed("Loading")
  10.         loadingG.startAnimatingWithImages(in: NSRange(location: 0, length: 20), duration: 1.0, repeatCount: 20)
  11.         //na zaklade zvolene kategorie dochazi k vyberu dat
  12.         //pokud kategorie mistnost obsahuje [-1], dojde k nacteni vsech objektu kategorie
  13.         switch av[group]{
  14.         case 0:
  15.             if Room!.scenes != [-1]{
  16.                 for a in Room!.scenes{
  17.                     data.append(Scene.Scenes[a].id)
  18.                 }
  19.             }else{
  20.                 for a in Scene.Scenes{
  21.                     data.append(a.id)
  22.                 }
  23.             }
  24.             break
  25.         case 1:
  26.             if Room!.lights != [-1]{
  27.                 for a in Room!.lights{
  28.                     data.append(Light.Lights[a].id)
  29.                 }
  30.             }else{
  31.                 for a in Light.Lights{
  32.                     data.append(a.id)
  33.                 }
  34.             }
  35.             break
  36.         case 2:
  37.             if Room!.shutters != [-1]{
  38.                 for a in Room!.shutters{
  39.                     data.append(Shutter.Shutters[a].id)
  40.                 }
  41.             }else{
  42.                 for a in Shutter.Shutters{
  43.                     data.append(a.id)
  44.                 }
  45.             }
  46.             break
  47.         case 3:
  48.             if Room!.sockets != [-1]{
  49.                 for a in Room!.sockets{
  50.                     data.append(Socket.Sockets[a].id)
  51.                 }
  52.             }else{
  53.                 for a in Socket.Sockets{
  54.                     data.append(a.id)
  55.                 }
  56.             }
  57.             break
  58.         case 4:
  59.             if Room!.relays != [-1]{
  60.                 for a in Room!.relays{
  61.                     data.append(Relay.Relays[a].id)
  62.                 }
  63.             }else{
  64.                 for a in Relay.Relays{
  65.                     data.append(a.id)
  66.                 }
  67.             }
  68.             break
  69.         case 5:
  70.             if Room!.displays != [-1]{
  71.                 for a in Room!.displays{
  72.                     data.append(Display.Displays[a].id)
  73.                 }
  74.             }else{
  75.                 for a in Display.Displays{
  76.                     data.append(a.id)
  77.                 }
  78.             }
  79.             break
  80.         default:
  81.             break
  82.         }
  83.         //odeslani dat do mobilu ve tvaru ["get" : [kategorie, data]
  84.         self.connectivityHandler.sendMessage(message: ["get" : [self.images[self.av[self.group]], data] as AnyObject] , replyHandler: {(response) in
  85.             let res = response["get"] as! [String:[String:String]] //nacteni odpovedi do odpovidajiciho slovniku
  86.             let dat = res.keys
  87.             for a in dat{ //cyklicke zpracovani prijatych dat pro vsechny prijate id
  88.                 let obj = res[a] as! [String:String] //nacteni podslovniku pro dane id
  89.                 switch self.av[self.group]{ //zpracovani prijatych dat v zavislosti na vybranem typu objektu
  90.                 case 0:
  91.                     let ind = Scene.getSceneIndex(id: a)!
  92.                     Scene.Scenes[ind].name = obj["NAME"]!
  93.                     Scene.Scenes[ind].file = obj["FILE"]!
  94.                     break
  95.                 case 1:
  96.                     let ind = Light.getLightIndex(id: a)!
  97.                     Light.Lights[ind].name = obj["NAME"]!
  98.                     if obj["ONOFF"]! == "1" {
  99.                         Light.Lights[ind].onoff = true
  100.                     } else {
  101.                         Light.Lights[ind].onoff = false
  102.                     }
  103.                     //overeni stmivatelnosti
  104.                     if obj["TYPE"]! == "1" {
  105.                         Light.Lights[ind].type = true
  106.                         Light.Lights[ind].dimlevel = Double(obj["DIMLEVEL"]!)
  107.                         //overeni moznosti nastaveni barvy
  108.                         if obj["DIMTYPE"]! == "1" {
  109.                             Light.Lights[ind].dimtype = true
  110.                             Light.Lights[ind].RGB = UInt(obj["RGB"]!)
  111.                         } else {
  112.                             Light.Lights[ind].dimtype = false
  113.                         }
  114.                     } else {
  115.                         Light.Lights[ind].type = false
  116.                     }
  117.                     break
  118.                 case 2:
  119.                     let ind = Shutter.getShutterIndex(id: a)!
  120.                     Shutter.Shutters[ind].name = obj["NAME"]!
  121.                     Shutter.Shutters[ind].run = obj["RUN"]!
  122.                     Shutter.Shutters[ind].up = obj["UP"]!
  123.                     Shutter.Shutters[ind].uppos = obj["UPPOS"]!
  124.                     Shutter.Shutters[ind].down = obj["DOWN"]!
  125.                     Shutter.Shutters[ind].downpos = obj["DOWNPOS"]!
  126.                     break
  127.                 case 3:
  128.                     let ind = Socket.getSocketIndex(id: a)!
  129.                     Socket.Sockets[ind].name = obj["NAME"]!
  130.                     if obj["ONOFF"]! == "1" {
  131.                         Socket.Sockets[ind].onoff = true
  132.                     } else {
  133.                         Socket.Sockets[ind].onoff = false
  134.                     }
  135.                     break
  136.                 case 4:
  137.                     let ind = Relay.getRelayIndex(id: a)!
  138.                     Relay.Relays[ind].name = obj["NAME"]!
  139.                     Relay.Relays[ind].symbol = obj["SYMBOL"]!
  140.                     Relay.Relays[ind].type = Int(obj["TYPE"]!)
  141.                     if obj["ONOFF"]! == "1" {
  142.                         Relay.Relays[ind].onoff = true
  143.                     } else {
  144.                         Relay.Relays[ind].onoff = false
  145.                     }
  146.                     break
  147.                 case 5:
  148.                     let ind = Display.getDisplayIndex(id: a)!
  149.                     Display.Displays[ind].name = obj["NAME"]!
  150.                     Display.Displays[ind].symbol = obj["SYMBOL"]!
  151.                     Display.Displays[ind].precision = obj["PRECISION"]!
  152.                     Display.Displays[ind].value = obj["VALUE"]!
  153.                     Display.Displays[ind].unit = obj["UNIT"]!
  154.                     break
  155.                 default:
  156.                     break
  157.                         }
  158.  
  159.                     }
  160.                     DispatchQueue.main.async {
  161.                         switch self.av[self.group]{
  162.                         case 0:
  163.                             self.presentController(withName: "Scenes", context: self.Room?.scenes)
  164.                             break
  165.                         case 1:
  166.                             self.presentController(withName: "Lights", context: self.Room?.lights)
  167.                             break
  168.                         case 2:
  169.                             self.presentController(withName: "Shutters", context: self.Room?.shutters)
  170.                             break
  171.                         case 3:
  172.                             self.presentController(withName: "Sockets", context: self.Room?.sockets)
  173.                             break
  174.                         case 4:
  175.                             self.presentController(withName: "Relays", context: self.Room?.relays)
  176.                             break
  177.                         case 5:
  178.                             self.presentController(withName: "Displays", context: self.Room?.displays)
  179.                             break
  180.                         default:
  181.                             break
  182.                         }
  183.                     }
  184.                 }) {(error) in
  185.                     DispatchQueue.main.async {
  186.                         WKInterfaceController.reloadRootControllers(withNames: ["MainMenu"], contexts: ["WKc"] as [AnyObject])
  187.                     }
  188.                 }
  189.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement