flutter_smartconfig/android/src/main/java/com/espressif/iot/esptouch/protocol/EsptouchGenerator.java

56 lines
1.6 KiB
Java

package com.espressif.iot.esptouch.protocol;
import com.espressif.iot.esptouch.task.IEsptouchGenerator;
import com.espressif.iot.esptouch.util.ByteUtil;
import java.net.InetAddress;
public class EsptouchGenerator implements IEsptouchGenerator {
private final byte[][] mGcBytes2;
private final byte[][] mDcBytes2;
/**
* Constructor of EsptouchGenerator, it will cost some time(maybe a bit
* much)
*
* @param apSsid the Ap's ssid
* @param apBssid the Ap's bssid
* @param apPassword the Ap's password
* @param inetAddress the phone's or pad's local ip address allocated by Ap
* @param isSsidHiden whether the Ap's ssid is hidden
*/
public EsptouchGenerator(byte[] apSsid, byte[] apBssid, byte[] apPassword,
InetAddress inetAddress, boolean isSsidHiden) {
// generate guide code
GuideCode gc = new GuideCode();
char[] gcU81 = gc.getU8s();
mGcBytes2 = new byte[gcU81.length][];
for (int i = 0; i < mGcBytes2.length; i++) {
mGcBytes2[i] = ByteUtil.genSpecBytes(gcU81[i]);
}
// generate data code
DatumCode dc = new DatumCode(apSsid, apBssid, apPassword, inetAddress,
isSsidHiden);
char[] dcU81 = dc.getU8s();
mDcBytes2 = new byte[dcU81.length][];
for (int i = 0; i < mDcBytes2.length; i++) {
mDcBytes2[i] = ByteUtil.genSpecBytes(dcU81[i]);
}
}
@Override
public byte[][] getGCBytes2() {
return mGcBytes2;
}
@Override
public byte[][] getDCBytes2() {
return mDcBytes2;
}
}