// Playground - noun: a place where people can play import Foundation func say(whatToSay: String) { let task = NSTask() task.launchPath = "/usr/bin/say" task.arguments = [whatToSay] task.launch() } let addr = "10.0.0.40" let port = 20000 var buffer = [UInt8](count: 255, repeatedValue: 0) var inp : NSInputStream? var out : NSOutputStream? NSStream.getStreamsToHostWithName(addr, port: port, inputStream: &inp, outputStream: &out) if inp != nil && out != nil { let inputStream : NSInputStream = inp! let outputStream : NSOutputStream = out! inputStream.open() outputStream.open() if outputStream.streamError == nil && inputStream.streamError == nil { let queryString: String = "*99*1##" let queryData: NSData = queryString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)! while true { outputStream.write(UnsafePointer(queryData.bytes),maxLength:queryData.length) var readChars: Int = inputStream.read(&buffer, maxLength: buffer.count) if (readChars > 0) { let readString: String = NSString(data: NSData(bytes:buffer, length:readChars), encoding: NSUTF8StringEncoding)! as String print(readString) switch readString { case "*9*1*1##":say("atrium") case "*9*1*2##":say("stairs") case "*9*1*3##": say("laundry") case "*9*1*4##": say("private") case "*9*1*5##": say("ingresso") case "*9*1*6##": say("windows") case "*9*1*7##": say("blinds") case "*9*1*8##": say("sala") case "*9*1*9##": say("armed") case "*9*0*9##": say("disarmed") case "*9*1*10##": say("corridor") case "*9*1*11##": say("panic") case "*9*1*12##": say("stairs bell") case "*9*1*13##": say("elevator door open") case "*9*0*13##": say("elevator door closed") case "*9*1*14##": say("stairs door open") case "*9*0*14##": say("stairs door closed") case "*9*1*15##": say("lab door open") case "*9*0*15##": say("lab door closed") case "*1*1000#1*51##": say("kitchen on") case "*1*1000#0*51##": say("kitchen off") case "*25*31#1*31##": say("mirror") default: say("") } } else { print ("server closed connection") inputStream.close() outputStream.close() break } } } else { print ("could not create socket") } } else { print ("could not initialize stream") }