diff --git a/mini-beieli-provision-cubecell.go b/mini-beieli-provision-cubecell.go index 7bcb881..c226d32 100644 --- a/mini-beieli-provision-cubecell.go +++ b/mini-beieli-provision-cubecell.go @@ -58,6 +58,51 @@ func readSerial(p *serial.Port) { } } +func getAppKey(deveui string) string { + if len(deveui) == 16 { + appkey := fmt.Sprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", + deveui[10], + deveui[3], + deveui[4], + deveui[7], + deveui[15], + deveui[9], + deveui[11], + deveui[2], + deveui[0], + deveui[8], + deveui[1], + deveui[6], + deveui[5], + deveui[12], + deveui[14], + deveui[13], + deveui[3], + deveui[6], + deveui[12], + deveui[7], + deveui[15], + deveui[1], + deveui[9], + deveui[11], + deveui[2], + deveui[10], + deveui[0], + deveui[8], + deveui[5], + deveui[14], + deveui[4], + deveui[13]) + + fmt.Printf("calculated AppKey: %s\n", appkey) + return appkey + + } else { + fmt.Printf("devEui has wrong length: %s\n", deveui) + return "" + } +} + func main() { if len(os.Args) != 3 { fmt.Println("usage: " + filepath.Base(os.Args[0]) + " ") @@ -75,10 +120,11 @@ func main() { sendCommand(s, "AT+XXX") devEui := getDevEui(s) + appKey := getAppKey(devEui) if devEui != "" { sendCommand(s, "AT+DevEui="+devEui) sendCommand(s, "AT+AppEui="+appEui) - sendCommand(s, "AT+AppKey="+devEui+devEui) + sendCommand(s, "AT+AppKey="+appKey) sendCommand(s, "AT+SAVE_OTAA_CONFIG=1") sendCommand(s, "AT+RESET=1") readSerial(s)