package org.gopro.core;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.ByteBuffer;
import java.util.BitSet;
import java.util.HashMap;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpProtocolParams;
import org.gopro.core.model.BacPacStatus;
import org.gopro.core.model.BackPack;
import org.gopro.core.model.CamFields;
public class GoProHelper {
public static final boolean LOGGING_ENABLED = false;
final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
private String mCameraAddress = null;
private final DefaultHttpClient mClient = newInstance();
private String ipAddress;
private Integer port;
private String password;
public GoProHelper() {
}
public GoProHelper(String ipAddress, Integer port, String password) {
this();
this.setIpAddress(ipAddress);
this.setPort(port);
this.setPassword(password);
// this.mCamera = paramGoProCamera;
this.mCameraAddress = ("http://" + ipAddress + ":" + port);
}
private void hexDump(byte[] paramArrayOfByte, String paramString) {
}
private boolean passFail(byte[] paramArrayOfByte) {
boolean bool = false;
if (paramArrayOfByte != null) {
int i = paramArrayOfByte.length;
bool = false;
if (i > 0) {
int j = paramArrayOfByte[0];
bool = false;
if (j == 0)
bool = true;
}
}
return bool;
}
private boolean sendCommand(Operations paramString) {
try {
sendGET(this.mCameraAddress + paramString.toString() + "?t=" + this.getToken());
return true;
} catch (Exception localException) {
}
return false;
}
public boolean deleteFilesOnSd() {
return sendCommand(Operations.CAMERA_DA);
}
public boolean deleteLastFileOnSd() {
return sendCommand(Operations.CAMERA_DL);
}
public int fromBoolean(boolean paramBoolean) {
if (paramBoolean)
return 1;
return 0;
}
public String getBacPacPassword() {
try {
GoProProtocolParser localGoProProtocolParser =
new GoProProtocolParser(sendGET(this.mCameraAddress + Operations.BACPAC_SD));
byte[] arrayOfByte = new byte[1];
arrayOfByte[0] = localGoProProtocolParser.extractByte();
boolean bool = passFail(arrayOfByte);
Object localObject = null;
if (bool) {
String str = localGoProProtocolParser.extractString();
localObject = str;
}
return (String) localObject;
} catch (Exception localException) {
}
return null;
}
public BackPack getBackPackInfo() throws Exception {
BackPack localBackPack = new BackPack();
GoProProtocolParser localGoProProtocolParser;
try {
byte[] arrayOfByte = sendGET("http://" + this.getIpAddress() + Operations.BACPAC_CV);
localGoProProtocolParser = new GoProProtocolParser(arrayOfByte);
if (localGoProProtocolParser.extractResultCode() != GoProProtocolParser.RESULT_IS_OK) {
return null;
}
} catch (Exception localException) {
throw new Exception("Fail to get backpack info", localException);
}
localBackPack.setVersion(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setModel(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setId(localGoProProtocolParser.extractFixedLengthString(2));
localBackPack.setBootLoaderMajor(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setBootLoaderMinor(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setBootLoaderBuild(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setRevision(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setMajorversion(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setMinorversion(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setBuildversion(localGoProProtocolParser.extractUnsignedByte());
localBackPack.setWifimac(localGoProProtocolParser.extractFixedLengthString(6));
localBackPack.setSSID(localGoProProtocolParser.extractString());
return localBackPack;
}
public BacPacStatus getBacpacStatus() throws Exception {
BacPacStatus localBacPacStatus = new BacPacStatus();
GoProProtocolParser localGoProProtocolParser;
try {
byte[] arrayOfByte =
sendGET(this.mCameraAddress + Operations.BACPAC_SE + "?t=" + this.getToken());
hexDump(arrayOfByte, "BacPac SE");
localGoProProtocolParser = new GoProProtocolParser(arrayOfByte);
if (localGoProProtocolParser.extractResultCode() != GoProProtocolParser.RESULT_IS_OK)
return null;
} catch (Exception localException) {
throw localException;
}
localBacPacStatus.setBacPacBattery(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setWifiMode(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setBlueToothMode(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setRSSI(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setShutterStatus(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setAutoPowerOff(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setBlueToothAudioChannel(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setFileServer(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setCameraPower(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setCameraI2CError(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setCameraReady(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setCameraModel(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setCameraProtocolVersion(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setCameraAttached(localGoProProtocolParser.extractUnsignedByte());
localBacPacStatus.setBOSSReady(localGoProProtocolParser.extractUnsignedByte());
return localBacPacStatus;
}
public int getCameraHLSSegment() {
try {
byte[] arrayOfByte =
sendGET(this.mCameraAddress + Operations.CAMERA_HS2 + "?t=" + this.getToken());
return new GoProProtocolParser(arrayOfByte).extractUnsignedByte();
} catch (Exception localException) {
}
return -1;
}
public String mondecode(byte[] aob) {
char[] hexChars = new char[aob.length * 2];
for ( int j = 0; j < aob.length; j++ ) {
int v = aob[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return String.valueOf(hexChars);
}
public CamFields getCameraInfo() {
CamFields localCamFields = new CamFields();
GoProProtocolParser localGoProProtocolParser;
try {
byte[] arrayOfByte =
sendGET(this.mCameraAddress + Operations.CAMERA_CV + "?t=" + this.getToken());
localGoProProtocolParser = new GoProProtocolParser(arrayOfByte);
if (localGoProProtocolParser.extractResultCode() != GoProProtocolParser.RESULT_IS_OK)
return null;
} catch (Exception localException) {
return null;
}
localCamFields.setProtocol(localGoProProtocolParser.extractUnsignedByte());
localCamFields.setModel(localGoProProtocolParser.extractUnsignedByte());
localCamFields.setVersion(localGoProProtocolParser.extractString());
localCamFields.setCamname(localGoProProtocolParser.extractString());
return localCamFields;
}
public String getCameraNameCN() {
String str = this.getIpAddress();
byte[] arrayOfByte;
try {
arrayOfByte =
sendGET(this.mCameraAddress + Operations.CAMERA_CN + "?t=" + this.getToken());
if ((arrayOfByte == null) || (arrayOfByte.length == 0) || (arrayOfByte[0] == 1))
return str;
} catch (Exception localException) {
return str;
}
int i = arrayOfByte[1];
int j = 0;
for (int k = 2;; k++) {
if (j >= i)
return str;
if (k < arrayOfByte.length)
str = str + (char) arrayOfByte[k];
j++;
}
}
public CamFields getCameraSettings() throws Exception {
try {
byte[] arrayOfByte = sendGET(this.mCameraAddress + "/camera/se" + "?t=" + this.getToken());
// System.out.println(" 1 2 3 4 5 6 7 8 9 10 11 ");
// System.out.println(" 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2");
// System.out.println(""+decode(arrayOfByte));
return getCameraSettings(new GoProProtocolParser(arrayOfByte));
} catch (Exception localException) {
throw new Exception("Fail to get camera settings", localException);
}
}
public CamFields getCameraSettings(GoProProtocolParser paramGoProProtocolParser) {
CamFields localCamFields = new CamFields();
if (paramGoProProtocolParser.extractResultCode() != GoProProtocolParser.RESULT_IS_OK)
return null;
localCamFields.setMode(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setMicrophoneMode(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setOndefault(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setExposure(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setTimeLapse(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setAutopower(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setFieldOfView(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setPhotoResolution(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setVidres(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setAudioinput(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setPlaymode(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setPlaybackPos(paramGoProProtocolParser.extractInteger());
localCamFields.setBeepSound(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setLedblink(paramGoProProtocolParser.extractUnsignedByte());
int i = paramGoProProtocolParser.extractByte();
localCamFields.setPreviewActive(true);
localCamFields.setBattery(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setUsbMode(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setPhotosAvailable(paramGoProProtocolParser.extractShort());
localCamFields.setPhotosOncard(paramGoProProtocolParser.extractShort());
localCamFields.setVideoAvailable(paramGoProProtocolParser.extractShort());
localCamFields.setVideoOncard(paramGoProProtocolParser.extractShort());
localCamFields.setShutter(paramGoProProtocolParser.extractUnsignedByte());
return localCamFields;
}
public CamFields getCameraSettingsExtended() throws Exception {
try {
byte[] arrayOfByte = sendGET(this.mCameraAddress + "/camera/sx" + "?t=" + this.getToken());
// System.out.println(" 1 2 3 4 5 6 7 8 9 10 11 ");
// System.out.println(" 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2");
// System.out.println(""+mondecode(arrayOfByte));
return getCameraSettingsExtended(new GoProProtocolParser(arrayOfByte));
} catch (Exception localException) {
throw new Exception("Fail to get camera extended settings", localException);
}
}
public CamFields getCameraSettingsExtended(GoProProtocolParser paramGoProProtocolParser) {
CamFields localCamFields = new CamFields();
int i,j;
if (paramGoProProtocolParser.extractResultCode() != GoProProtocolParser.RESULT_IS_OK)
return null;
// i = paramGoProProtocolParser.extractUnsignedByte();
localCamFields.setMode(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setMicrophoneMode(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setOndefault(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setExposure(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setTimeLapse(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setAutopower(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setFieldOfView(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setPhotoResolution(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setVidres(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setAudioinput(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setPlaymode(paramGoProProtocolParser.extractShort());
localCamFields.setPlaybackMin(paramGoProProtocolParser.extractByte());
localCamFields.setPlaybackSec(paramGoProProtocolParser.extractByte());
// localCamFields.setPlaybackPos(paramGoProProtocolParser.extractShort());
i = paramGoProProtocolParser.extractByte();
i = paramGoProProtocolParser.extractByte();
i = paramGoProProtocolParser.extractByte();
i = paramGoProProtocolParser.extractByte();
String s1 = String.format("%8s", Integer.toBinaryString(i & 0xFF)).replace(' ', '0').substring(7,8);
if (s1=="1") { localCamFields.setPreviewActive(true); } else { localCamFields.setPreviewActive(false); }
localCamFields.setBattery(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setUsbMode(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setPhotosAvailable(paramGoProProtocolParser.extractShort());
localCamFields.setPhotosOncard(paramGoProProtocolParser.extractShort());
localCamFields.setVideoAvailable(paramGoProProtocolParser.extractShort());
localCamFields.setVideoOncard(paramGoProProtocolParser.extractShort());
localCamFields.setShutter(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setProtuneEnabled(paramGoProProtocolParser.extractUnsignedByte());
i = paramGoProProtocolParser.extractUnsignedByte();
i = paramGoProProtocolParser.extractUnsignedByte();
i = paramGoProProtocolParser.extractUnsignedByte();
localCamFields.setProtuneSetting(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setBurstRate(paramGoProProtocolParser.extractUnsignedByte());
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i1 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i2 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i3 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i4 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i5 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i6 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i7 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i8 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i9 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i10 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i11 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i12 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i13 :" + i);
i = paramGoProProtocolParser.extractUnsignedByte();
// System.out.println("i14 :" + i);
localCamFields.setVidres(paramGoProProtocolParser.extractUnsignedByte());
localCamFields.setFramesPerSecond(paramGoProProtocolParser.extractUnsignedByte());
return localCamFields;
}
public DefaultHttpClient newInstance() {
BasicHttpParams localBasicHttpParams = new BasicHttpParams();
HttpProtocolParams.setVersion(localBasicHttpParams, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(localBasicHttpParams, "ISO-8859-1");
HttpProtocolParams.setUseExpectContinue(localBasicHttpParams, true);
HttpConnectionParams.setStaleCheckingEnabled(localBasicHttpParams, false);
HttpConnectionParams.setConnectionTimeout(localBasicHttpParams, 10000);
HttpConnectionParams.setSoTimeout(localBasicHttpParams, 10000);
HttpConnectionParams.setSocketBufferSize(localBasicHttpParams, 8192);
SchemeRegistry localSchemeRegistry = new SchemeRegistry();
localSchemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
ConnManagerParams.setMaxTotalConnections(localBasicHttpParams, 1);
return new DefaultHttpClient(new ThreadSafeClientConnManager(localBasicHttpParams,
localSchemeRegistry), localBasicHttpParams);
}
public boolean sendCommand(Operations paramString, int paramInt) throws Exception {
StringBuilder localStringBuilder = new StringBuilder("%");
Object[] arrayOfObject = new Object[1];
arrayOfObject[0] = Integer.valueOf(paramInt);
return sendCommand(paramString, String.format("%02x", arrayOfObject));
}
public boolean sendCommand(Operations paramString1, String paramString2) throws Exception {
String param = null;
if (!paramString1.toString().startsWith("/")) {
param = "/" + paramString1.toString();
} else {
param = paramString1.toString();
}
sendGET(this.mCameraAddress + param + "?t=" + this.getToken() + "&p=" + paramString2);
return true;
}
public byte[] sendGET(String paramString) throws Exception {
return sendGET(paramString, this.mClient);
}
public byte[] sendGET(String paramString, DefaultHttpClient paramDefaultHttpClient)
throws Exception {
ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
HttpResponse localHttpResponse;
try {
// System.out.println("Cmd :" + paramString);
System.setProperty("http.keepAlive", "true");
// System.out.println("httpGet");
HttpGet localHttpGet = new HttpGet(paramString);
// System.out.println("localhttpGet");
localHttpResponse = paramDefaultHttpClient.execute(localHttpGet);
int statusCode = localHttpResponse.getStatusLine().getStatusCode();
// System.out.println("statusCode="+statusCode);
if (statusCode >= 400) {
localHttpGet.abort();
throw new IOException("Fail to send GET - HTTP error code = [" + statusCode + "]");
}
} catch (Exception localException) {
System.out.println("httpGet exception");
throw localException;
}
int j = (int) localHttpResponse.getEntity().getContentLength();
if (j <= 0)
j = 128;
InputStream localInputStream = localHttpResponse.getEntity().getContent();
byte[] arrayOfByte = new byte[j];
while (true) {
if (localInputStream.read(arrayOfByte, 0, arrayOfByte.length) == -1) {
localByteArrayOutputStream.flush();
return localByteArrayOutputStream.toByteArray();
}
localByteArrayOutputStream.write(arrayOfByte, 0, arrayOfByte.length);
}
}
public boolean setBacPacWifiMode(int paramInt) throws Exception {
return sendCommand(Operations.BACPAC_WI, paramInt);
}
public boolean setBackPackPowerCamera(boolean paramBoolean) throws Exception {
return sendCommand(Operations.BACPAC_PW, fromBoolean(paramBoolean));
}
public boolean setCamAutoPowerOff(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_AO, paramInt);
}
public boolean setCamDateTime(String paramString) {
try {
boolean bool =
passFail(sendGET(this.mCameraAddress + "/camera/TM?t=" + this.getToken()
+ "&p=" + paramString));
return bool;
} catch (Exception localException) {
}
return false;
}
public boolean setCamDefaultMode(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_DM, paramInt);
}
public boolean setCamExposure(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_EX, paramInt);
}
public boolean setCamFov(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_FV, paramInt);
}
public boolean setCamLEDBlink(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_LB, paramInt);
}
public boolean setCamLivePreview(boolean paramBoolean) throws Exception {
/*
* if (paramBoolean) ; for (int i = 2;; i = 0) return
* sendCommand(Operations.CAMERA_PV, i);
*/
if (paramBoolean) {
return sendCommand(Operations.CAMERA_PV, 2);
} else {
// return sendCommand(Operations.CAMERA_PV, 0);
try {
sendGET(this.mCameraAddress + Operations.CAMERA_PV + "?t=" + this.getToken()
+ "&p=");
return true;
} catch (Exception localException) {
}
return false;
}
}
public boolean setCamLocate(boolean paramBoolean) throws Exception {
return sendCommand(Operations.CAMERA_LL, fromBoolean(paramBoolean));
}
public boolean setCamMode(String strmode) throws Exception {
return sendCommand(Operations.CAMERA_CM, strmode);
}
public boolean setCamNtscPal(boolean paramBoolean) throws Exception {
if (paramBoolean)
;
for (int i = 0;; i = 1)
return sendCommand(Operations.CAMERA_VM, i);
}
public boolean setCamOnScreenDisplay(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_DS, paramInt);
}
public boolean setCamPhotoResolution(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_PR, paramInt);
}
public boolean setCamProtune(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_PT, paramInt);
}
public boolean setCamShutter(boolean paramBoolean) throws Exception {
return sendCommand(Operations.BACPAC_SH, fromBoolean(paramBoolean));
}
public boolean setCamSound(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_BS, paramInt);
}
public boolean setCamTimeLapseTI(String paramString) throws Exception {
return sendCommand(Operations.CAMERA_TI, paramString);
}
public boolean setCamUpDown(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_UP, paramInt);
}
public boolean setCamVideoResolution(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_VR, paramInt);
}
public boolean setCameraHLSSegment(int paramInt) throws Exception {
return sendCommand(Operations.CAMERA_HS, paramInt);
}
public boolean setCameraName(String paramString) {
if ((paramString.length() > 31) || (paramString.length() == 0))
return false;
Object[] arrayOfObject = new Object[2];
arrayOfObject[0] = Integer.valueOf(paramString.length());
arrayOfObject[1] = paramString;
String str =
URLEncoder.encode(String.format("%x%s", arrayOfObject).replaceAll("\\s+", "%20"));
try {
boolean bool =
passFail(sendGET(this.mCameraAddress + Operations.CAMERA_CN + "?t="
+ this.getToken() + "&p=%0" + str));
return bool;
} catch (Exception localException) {
}
return false;
}
public boolean toBoolean(int paramInt) {
return paramInt != 0;
}
public String getToken() {
return getPassword();
}
public String getIpAddress() {
return ipAddress;
}
private void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
private Integer getPort() {
return port;
}
private void setPort(Integer port) {
this.port = port;
}
private String getPassword() {
return password;
}
private void setPassword(String password) {
this.password = password;
}
public boolean startRecord() throws Exception {
return sendCommand(Operations.BACPAC_SH, "%01");
}
public boolean stopRecord() throws Exception {
return sendCommand(Operations.BACPAC_SH, "%00");
}
public boolean turnOnCamera() throws Exception {
return sendCommand(Operations.BACPAC_PW, "%01");
}
public boolean turnOffCamera() throws Exception {
return sendCommand(Operations.BACPAC_PW, "%00");
}
public boolean changeModeCamera() throws Exception {
return sendCommand(Operations.BACPAC_PW, "%02");
}
public boolean modeCamera() throws Exception {
return sendCommand(Operations.CAMERA_CM, "%00");
}
public boolean modePhoto() throws Exception {
return sendCommand(Operations.CAMERA_CM, "%01");
}
public boolean modeBurst() throws Exception {
return sendCommand(Operations.CAMERA_CM, "%02");
}
public boolean timelapse1() throws Exception {
return sendCommand(Operations.CAMERA_CM, "%03");
}
public boolean timelapse2() throws Exception {
return sendCommand(Operations.CAMERA_CM, "%04");
}
}