์ด์ ๋ UI ๋ง๋ค์ด๋๊ณ ์ค๋์ ์๋๋ก์ด๋ ์ฝ๋๋ฅผ ๋ณด๊ณ
ํจ์๋ถํฐ ์ด๋์ ๋ ์ข ๊ตฌํ์ ํด๋จ๋ค.
์ ๋์๊ฐ๋์ง๋ ํ์ธ์ ํด๋ด์ผํ๋๋ฐ
์ด์ ์ฌ๋๋ณผํธ ํ๋ธ๊น์ง ๊ณ ์ฅ๋์...ใ ใ ใ
๊ฑฐ์ 99.9%์ ํ๋ฅ ๋ก ์๋์๊ฐ๊ฒ ๊ฐ์ง๋ง ๊ตฌํ์ ํด๋์ ๊ธฐ๋กํ๋ค..
/*
Click Action ํจ์๋ค
*/
@IBAction func doorOpen(_ sender: Any) {
let cmd = CConfig().REQUEST_DOOR_OPEN_CMD
let data = CConfig().REQUEST_DOOR_OPEN
open_push = true
sendRequestData(cmd: cmd, data: data)
}
@IBAction func doorClose(_ sender: Any) {
let cmd = CConfig().REQUEST_DOOR_CLOSE_CMD
let data = CConfig().REQUEST_DOOR_CLOSE
close_push = true
sendRequestData(cmd: cmd, data: data)
}
@IBAction func carHorn(_ sender: Any) {
let cmd = CConfig().REQUEST_PANIC_CMD
let data = CConfig().REQUEST_PANIC
horn_push = true
sendRequestData(cmd: cmd, data: data)
}
@IBAction func disconnect(_ sender: Any) {
serial.manager.cancelPeripheralConnection(connectedPeripheral)
}
@IBAction func masterDelete(_ sender: Any) {
let cmd = CConfig().REQUEST_MASTER_INIT_CMD
let data = CConfig().REQUEST_MASTER_INIT
sendRequestData(cmd: cmd, data: data)
}
์ผ๋จ ์ด์ ๋ง๋ค์ด๋จ๋ ๋ฒํผ๋ค์ด๋ ์ฐ๊ฒฐํด๋๊ณ sendRequestData ํจ์๋ก cmd ํจํท์ด๋ data ํจํท์ ๋ณด๋ธ๋ค.
//์ํธํํด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ํจ์
func sendRequestData(cmd: String, data: String){
var sendDataByte: [UInt8] = []
let encryptData = AESUtil.setAES128Encrypt(string: data)
sendDataByte += cmd.bytes
sendDataByte += encryptData.bytes
serial.sendBytesToDevice(sendDataByte)
}
ํจ์๋ ์ด๋ ๊ฒ ๋์ด์๋ค. cmd๋ ์ํธํ๋ฅผ ์ํ๊ณ data๋ง ์ํธํ๋ฅผ ํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ ๋ฌ๋ฐ์์
data๋ง ์ํธํ๋ฅผ ์์ผ์ ์ต์ข ๋ฐฐ์ด์ ํฉ์ณ์ ์ ๋ฌํ๋ค.
์ ๋ฌํ๊ณ ๋์ ๊ธฐ๊ธฐ๋ก๋ถํฐ ์๋ต์ ๋ฐ์ผ๋ฉด ํธ์ถ๋๋ ํจ์์์ ์๋์ ํจ์๋ฅผ ๋ถ๋ฌ์ค๊ฒ ํ๊ณ
์๋์ ํจ์๋ response๋ฅผ ํ์ธํด์ ์ฑ๊ณต๊ณผ ์คํจ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํด์ ์ฌ์ฉ์์๊ฒ ์๋ ค์ค๋ค.
// ์๋ต์ ๋ฐ์ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ
func decryptDataAndAction(response: [UInt8]){
let decryptData = AESUtil.getAES128Decrypt(encoded: response.toBase64()).bytes
if decryptData[0] == 0x21 && horn_push {
if decryptData[1] == 0x01 { //success
print("์ฑ๊ณต")
}
else{ //fail
print("์คํจ")
}
horn_push = false
} else if decryptData[0] == 0x22 && open_push {
if decryptData[1] == 0x01 { //success
print("์ฑ๊ณต")
} else { //fail
print("์คํจ")
}
} else if decryptData[0] == 0x23 && close_push {
if decryptData[1] == 0x01 { //success
print("์ฑ๊ณต")
}else{ //fail
print("์คํจ")
}
close_push = false
} else if decryptData[0] == 0x24 { //master init
if decryptData[1] == 0x01 && decryptData[2] == 0x0F {
print("๋ง์คํฐ ๋ฑ๋กํด์ ๋ฅผ ์๋ฃํ์ต๋๋ค.")
} else if decryptData[1] == 0x02 && decryptData[2] == 0x0F {
print("๋ง์คํฐ ๋ฑ๋กํด์ ๋ฅผ ์คํจํ์์ต๋๋ค.")
}
}
}
์ง๊ธ์ ๊ทธ๋ฅ ํ๋ฆฐํธ๋ฌธ์ผ๋ก ํด๋จ๋๋ฐ alert์ผ๋ก ๋ฐ๊พธ๋ ์ง ํด์ผ๊ฒ ๋ค.
'๐ก work work work > ios app development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
demo ๊ฐ๋ฐ - 15 : ์ด๋ฉ์ผ ์ธ์ฆ(w. SMTP) (0) | 2022.03.25 |
---|---|
demo ๊ฐ๋ฐ - 14 : email ์ธ์ฆ (ft. ์ค์ค๊ฐ ์ ๊ฒ) (0) | 2022.03.23 |
demo ๊ฐ๋ฐ - 13.1 : Control ๋ถ๋ถ(UI) (0) | 2022.03.21 |
demo ๊ฐ๋ฐ - 12 : AES128 ์ํธํ (CryptoSwift package) (0) | 2022.03.18 |
demo ๊ฐ๋ฐ - 11.2 : ํจํท ์ฃผ๊ณ ๋ฐ๊ธฐ ์ค๋ฅ (0) | 2022.03.17 |
๋๊ธ