# iOS用のECHONET Liteプロトコルライブラリを作ったので,その使い方を説明します。
- Xcode 9.4.1 の情報に更新したよ。
- 誤字脱字を修正したよ。
とりいそぎ,簡単にね。
ちなみにオープンソースでMITライセンスだよ。みんな安心。
-
Cocoapods
https://cocoapods.org/?q=ELSwift -
Github (ELSwift)
https://github.com/Hiroshi-Sugimura/ELSwift
内部はGCDAsyncUdpSocketに依存しています。
(GCDAsyncUdpSocketはPublic domainということになっているよ)
1. Xcode でProjectの準備
- Xcode
- File, New, Project
- iOS, Single View Application, Next
- Product Name: ELSwiftTest, Next
こんな感じ?
- (どこでもいーけど,今回は/DocumentsにXcodeというフォルダを作って選択してCreate)
- File, Save
- Xcode, Quit Xcode
2. Podfile準備
- プロジェクトのフォルダがこんな感じになってるとして,
- スクショの位置(xcodeprojと同じ位置)にPodfileを新規に作成して
- 下記をテキストでPodfileに記述
use_frameworks!
target 'ELSwiftTest' do
pod 'ELSwift'
pod 'CocoaAsyncSocket'
end
- terminal開いて
$ cd ~/Documents/Xcode/ELSwiftTest/
$ pod setup
$ pod update
- ELSwiftTest.xcworkspaceというファイルができているので,今後はこちらをつかって開発していく。
3. Demo作ってみる
具体的なXcodeとSwiftでのプログラミングは別の資料をみていただくとして・・・
こんな感じでGUIと,オブジェクトハンドルとの対応をつくって
プログラムはこんな感じに修正.
import UIKit
import ELSwift
class ViewController: UIViewController {
@IBOutlet weak var logView: UITextView!
@IBOutlet weak var btnSearch: UIButton!
let objectList:[String] = ["05ff01"]
override func viewDidLoad() {
super.viewDidLoad()
logView.text = ""
do {
try ELSwift.initialize( objectList, { rinfo, els, err in
if let error = err {
print (error)
return
}
if let elsv = els {
let seoj = elsv.SEOJ
let esv = elsv.ESV
let detail = elsv.DETAIL
self.logView.text = "ip:\(rinfo.address), seoj:\(seoj), esv:\(esv), datail:\(detail)" + "\n" + self.logView.text
}
}, 4)
}catch let error{
print( error )
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func btnSearchDown(_ sender: Any) {
ELSwift.search()
}
}
もしかするとこのタイミングではimport文のところで
Cannot load underlying module for 'ELSwift'
というエラーが出てしまいますが、一旦「⌘+B」でコンパイルすると消えると思います。
もしかしたらwarningも下記のUDP関係でちょっとでます。多分平気,きになる人は直して。
Parameters of 'udpSocket(_:didReceive:fromAddress:withFilterContext:)' have different optionality than expected by protocol 'GCDAsyncUdpSocketDelegate'
4. 動かす。
シミュレータでの結果はこんな感じ。
通信するのでダイアログで警告でるけど許可してね。
5. SwiftとかXcodeとかが使いにくいことを再認識する。
ここ,つらいとこ
## 6. よくあるエラーとその対策
ここもつらいとこ