56 lines
1.6 KiB
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;
|
|
}
|
|
|
|
}
|