+ * TODO 一般在这里调用直播SDK的接口进行直播操作,一定要先卸载 ADAS com.zhidao.autopilot
+ *
+ * @param yuv420p YUV数据 I420
+ * @param bytesLength 数据长度
+ */
+ public abstract void onVideoFrame(byte[] yuv420p, int bytesLength);
+
+
+ /**
+ * 开关直播状态
+ *
+ * @param isLive true-开启直播,false-关闭直播
+ */
+ public abstract void toggleLive(boolean isLive);
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/cloud/LivePlayActivity.java b/app/src/main/java/com/mogo/cloud/LivePlayActivity.java
new file mode 100644
index 0000000..7f08869
--- /dev/null
+++ b/app/src/main/java/com/mogo/cloud/LivePlayActivity.java
@@ -0,0 +1,101 @@
+package com.mogo.cloud;
+
+import android.os.Bundle;
+import android.util.Log;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.widget.EditText;
+import android.widget.Toast;
+import android.widget.ToggleButton;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.mogo.cloud.live.listener.ILiveProgressListener;
+import com.mogo.cloud.live.manager.ZeGoLiveManager;
+import com.mogo.cloud.util.Devices;
+
+
+public class LivePlayActivity extends AppCompatActivity {
+ private String TAG = "LiveActivity";
+
+ private SurfaceView surfaceView;
+ private ToggleButton liveToggleBtn;
+ private EditText etLookRoomId;
+
+ private boolean isLoginSuccess = false;
+ private String mStreamId = "STREAM_ID_";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_live_play);
+ surfaceView = findViewById(R.id.surfaceView);
+ etLookRoomId = findViewById(R.id.etLookRoomId);
+ liveToggleBtn = findViewById(R.id.liveToggleBtn);
+ liveToggleBtn.setOnCheckedChangeListener((buttonView, isChecked) -> {
+ Toast.makeText(getApplicationContext(), buttonView.getText(), Toast.LENGTH_SHORT).show();
+ if (isChecked) {
+ String roomId = etLookRoomId.getText().toString().trim();
+ mStreamId = ZeGoLiveManager.STREAM_ID_PREFIX + roomId;
+ ZeGoLiveManager.getInstance().init(this.getApplication(), null);
+ ZeGoLiveManager.getInstance().loginRoom("F803EB2046PZD00140", roomId);
+ ZeGoLiveManager.getInstance().setLiveProgressListener(listener);
+ } else {
+ ZeGoLiveManager.getInstance().stopLive(mStreamId);
+ }
+ });
+ }
+
+ private ILiveProgressListener listener = new ILiveProgressListener() {
+
+ @Override
+ public void onConnecting() {
+
+ }
+
+ @Override
+ public void onConnected(String roomId) {
+ Log.i(TAG, "onConnected:" + roomId);
+ isLoginSuccess = true;
+ toggleLive(true);
+ }
+
+ @Override
+ public void onDisConnect() {
+ Log.i(TAG, "onDisConnect:");
+ isLoginSuccess = false;
+ toggleLive(false);
+ }
+
+ @Override
+ public void onDebugError(int errorCode, String funcName, String errorInfo) {
+
+ }
+
+ @Override
+ public void onRoomStreamUpdate(String streamId, boolean isLive) {
+ Log.i(TAG, "onRoomStreamUpdate:" + streamId);
+ if (streamId != null && isLive) {
+ Toast.makeText(LivePlayActivity.this, "主播开始直播了", Toast.LENGTH_SHORT).show();
+ mStreamId = streamId;
+ } else {
+ Toast.makeText(LivePlayActivity.this, "主播已离线", Toast.LENGTH_SHORT).show();
+ }
+ }
+ };
+
+ private void toggleLive(boolean isChecked) {
+ Log.i(TAG, "toggleLive status : " + isChecked + " , mStreamId : " + mStreamId);
+ if (isChecked) {
+ ZeGoLiveManager.getInstance().startLive(mStreamId, surfaceView);
+ } else {
+ ZeGoLiveManager.getInstance().stopLive(mStreamId);
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ ZeGoLiveManager.getInstance().onDestroyLive();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/cloud/LivePushActivity.java b/app/src/main/java/com/mogo/cloud/LivePushActivity.java
new file mode 100644
index 0000000..964b2e2
--- /dev/null
+++ b/app/src/main/java/com/mogo/cloud/LivePushActivity.java
@@ -0,0 +1,50 @@
+package com.mogo.cloud;
+
+import android.os.Bundle;
+import android.util.Log;
+
+import com.mogo.cloud.live.manager.CameraFrameManager;
+import com.mogo.cloud.live.server.PushService;
+import com.mogo.cloud.util.Devices;
+
+
+/**
+ * 推流页面
+ */
+public class LivePushActivity extends BaseLiveActivity {
+ public static final String TAG = "PushActivity";
+
+ private boolean isLive = false;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ }
+
+ @Override
+ public void onVideoFrame(byte[] bytes, int bytesLength) {
+ if (!isLive) {
+ return;
+ }
+ //Log.i(TAG, "onVideoFrame byte length: " + bytesLength);
+ CameraFrameManager.getInstance().notifyYUVData(bytes, 1280, 720, 3);
+ }
+
+ @Override
+ public void toggleLive(boolean isLive) {
+ Log.i(TAG, "toggleLive : " + isLive);
+ this.isLive = isLive;
+ if (isLive) {
+ PushService.startService(this, PushService.ACTION_START_RTMP_PUSH, Devices.getSn());
+ } else {
+ PushService.startService(this, PushService.ACTION_STOP_RTMP_PUSH, null);
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ PushService.startService(this, PushService.ACTION_STOP_RTMP_PUSH, null);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/cloud/MainActivity.java b/app/src/main/java/com/mogo/cloud/MainActivity.java
index 29a3de1..5d1f0d9 100644
--- a/app/src/main/java/com/mogo/cloud/MainActivity.java
+++ b/app/src/main/java/com/mogo/cloud/MainActivity.java
@@ -18,6 +18,8 @@ public class MainActivity extends AppCompatActivity {
private Button btnJumpNetWorkPort;
private Button btnJumpRealTime;
private Button btnJumpRoadCondition;
+ private Button btnJumpLivePush;
+ private Button btnJumpLivePlay;
private TextView tvSn;
private TextView tvToken;
@@ -57,6 +59,18 @@ public class MainActivity extends AppCompatActivity {
startActivity(intent);
});
+ btnJumpLivePush = findViewById(R.id.btnJumpLivePush);
+ btnJumpLivePush.setOnClickListener(v -> {
+ Intent intent = new Intent(MainActivity.this, LivePushActivity.class);
+ startActivity(intent);
+ });
+
+ btnJumpLivePlay = findViewById(R.id.btnJumpLivePlay);
+ btnJumpLivePlay.setOnClickListener(v -> {
+ Intent intent = new Intent(MainActivity.this, LivePlayActivity.class);
+ startActivity(intent);
+ });
+
MoGoAiCloudClient.getInstance().addTokenCallbacks(new IMoGoTokenCallback() {
@Override
public void onTokenGot(String token, String sn) {
diff --git a/app/src/main/java/com/mogo/cloud/util/Devices.java b/app/src/main/java/com/mogo/cloud/util/Devices.java
new file mode 100644
index 0000000..aea09c5
--- /dev/null
+++ b/app/src/main/java/com/mogo/cloud/util/Devices.java
@@ -0,0 +1,33 @@
+package com.mogo.cloud.util;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class Devices {
+
+ private static final String PROPERTIES = "android.os.SystemProperties";
+ private static final String GSM_SERIAL = "gsm.serial";
+ private static final String GET = "get";
+
+ public static String getSn(){
+ return getSystemProperties(GSM_SERIAL);
+ }
+
+ public static String getSystemProperties(String name ) {
+ String value = "";
+ try {
+ Class< ? > c = Class.forName( PROPERTIES );
+ Method get = c.getMethod( GET, String.class );
+ value = (String) get.invoke( c, name );
+ } catch ( ClassNotFoundException var3 ) {
+ var3.printStackTrace();
+ } catch ( NoSuchMethodException var4 ) {
+ var4.printStackTrace();
+ } catch ( InvocationTargetException var5 ) {
+ var5.printStackTrace();
+ } catch ( IllegalAccessException var6 ) {
+ var6.printStackTrace();
+ }
+ return value;
+ }
+}
diff --git a/app/src/main/java/com/mogo/cloud/util/YuvToolUtils.java b/app/src/main/java/com/mogo/cloud/util/YuvToolUtils.java
new file mode 100644
index 0000000..ee21ada
--- /dev/null
+++ b/app/src/main/java/com/mogo/cloud/util/YuvToolUtils.java
@@ -0,0 +1,197 @@
+package com.mogo.cloud.util;
+
+import android.util.Log;
+
+import com.zhidao.libyuv.Key;
+
+import java.io.File;
+import java.io.FileDescriptor;
+import java.io.FileOutputStream;
+import java.util.ArrayList;
+import java.util.concurrent.LinkedBlockingQueue;
+
+/**
+ * YUV与RGB转换工具类
+ */
+public class YuvToolUtils {
+ private static final String TAG = "YuvToolUtils";
+
+ private static final int DST_WIDTH = 1280;
+ private static final int DST_HEIGHT = 720;
+
+ private static byte[] dst = null;
+ private static byte[] tmp = null;
+
+ /**
+ * @param data origin yuv data
+ * @param width data width
+ * @param height data height
+ * @param type 1:YV12 2:NV21 3:I420 4 nv12
+ */
+ public static byte[] convertData(byte[] data, int width, int height, int type) {
+ if (dst == null) {
+ dst = new byte[DST_WIDTH * DST_HEIGHT * 3 / 2];
+ }
+
+ if (tmp == null) {
+ tmp = new byte[848 * 480 * 3 / 2];
+ }
+
+ if (type == 4) {
+ if (DST_WIDTH == width && DST_HEIGHT == height) {
+ com.zhidao.libyuv.YuvUtils.NV12ToI420(data, dst, width, height);
+ return dst;
+ } else {
+ com.zhidao.libyuv.YuvUtils.NV12ToI420(data, tmp, width, height);
+ com.zhidao.libyuv.YuvUtils.I420Scale(tmp, width, height, dst, DST_WIDTH, DST_HEIGHT, Key.SCALE_MODE_NONE, false);
+ return dst;
+ }
+ } else if (type == 3) {
+ if (DST_WIDTH == width && DST_HEIGHT == height) {
+ return data;
+ } else {
+ com.zhidao.libyuv.YuvUtils.I420Scale(data, width, height, dst, DST_WIDTH, DST_HEIGHT, Key.SCALE_MODE_NONE, false);
+ return dst;
+ }
+ } else if (type == 2) {
+ if (DST_WIDTH == width && DST_HEIGHT == height) {
+ com.zhidao.libyuv.YuvUtils.NV21ToI420(data, dst, width, height, false);
+ return dst;
+ } else {
+ com.zhidao.libyuv.YuvUtils.NV21ToI420(data, tmp, width, height, false);
+ com.zhidao.libyuv.YuvUtils.I420Scale(tmp, width, height, dst, DST_WIDTH, DST_HEIGHT, Key.SCALE_MODE_NONE, false);
+ return dst;
+ }
+ } else if (type == 1) {
+ if (DST_WIDTH == width && DST_HEIGHT == height) {
+ swapYV12toI420(data, dst, width, height);
+ return dst;
+ } else {
+ swapYV12toI420(data, tmp, width, height);
+ com.zhidao.libyuv.YuvUtils.I420Scale(tmp, width, height, dst, DST_WIDTH, DST_HEIGHT, Key.SCALE_MODE_NONE, false);
+ return dst;
+ }
+ }
+ return new byte[0];
+ }
+
+ public static synchronized void release() {
+ dst = null;
+ tmp = null;
+ Log.d(TAG, "release 释放临时帧");
+ }
+
+ /**
+ * 将 YV12 格式转换为 I420
+ *
+ * @param yv12bytes 原始格式数据
+ * @param i420bytes 转出格式数据
+ * @param width 宽度
+ * @param height 高度
+ */
+ public static void swapYV12toI420(byte[] yv12bytes, byte[] i420bytes, int width, int height) {
+ System.arraycopy(yv12bytes, 0, i420bytes, 0, width * height);
+ int srcPos = width * height + width * height / 4;
+ // 这里利用的是 YV12 和 I420 存储特性 ,将 U 和 V 数据进行调换
+ System.arraycopy(yv12bytes, srcPos, i420bytes, width * height, width * height / 4);
+ System.arraycopy(yv12bytes, width * height, i420bytes, srcPos, width * height / 4);
+ }
+
+
+ public static ArrayList
+ * 摄像头状态
+ *
+ *
+ * Protobuf enum {@code com.zhidao.ptech.shadow.server.protocol.CameraStatus}
+ */
+ public enum CameraStatus
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ *
+ * 未知
+ *
+ *
+ * CAMERA_STATUS_UNKNOW = 0;
+ */
+ CAMERA_STATUS_UNKNOW(0),
+ /**
+ *
+ * 可用
+ *
+ *
+ * CAMERA_STATUS_AVAILABLE = 1;
+ */
+ CAMERA_STATUS_AVAILABLE(1),
+ /**
+ *
+ * 不可用
+ *
+ *
+ * CAMERA_STATUS_UNAVAILABLE = 2;
+ */
+ CAMERA_STATUS_UNAVAILABLE(2),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ * 未知
+ *
+ *
+ * CAMERA_STATUS_UNKNOW = 0;
+ */
+ public static final int CAMERA_STATUS_UNKNOW_VALUE = 0;
+ /**
+ *
+ * 可用
+ *
+ *
+ * CAMERA_STATUS_AVAILABLE = 1;
+ */
+ public static final int CAMERA_STATUS_AVAILABLE_VALUE = 1;
+ /**
+ *
+ * 不可用
+ *
+ *
+ * CAMERA_STATUS_UNAVAILABLE = 2;
+ */
+ public static final int CAMERA_STATUS_UNAVAILABLE_VALUE = 2;
+
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @Deprecated
+ public static CameraStatus valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static CameraStatus forNumber(int value) {
+ switch (value) {
+ case 0: return CAMERA_STATUS_UNKNOW;
+ case 1: return CAMERA_STATUS_AVAILABLE;
+ case 2: return CAMERA_STATUS_UNAVAILABLE;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ * 火星经纬度,国内GPS默认取的是火星坐标系
+ *
+ *
+ * GCJ = 0;
+ */
+ GCJ(0),
+ /**
+ *
+ * 百度坐标系
+ *
+ *
+ * BAIDU_COORDINATE = 1;
+ */
+ BAIDU_COORDINATE(1),
+ /**
+ *
+ * 腾讯和高德和国测局坐标系
+ *
+ *
+ * SOSO_GCJ_COORDINATE = 2;
+ */
+ SOSO_GCJ_COORDINATE(2),
+ /**
+ *
+ * 地球经纬度
+ *
+ *
+ * WGS84 = 3;
+ */
+ WGS84(3),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ * 火星经纬度,国内GPS默认取的是火星坐标系
+ *
+ *
+ * GCJ = 0;
+ */
+ public static final int GCJ_VALUE = 0;
+ /**
+ *
+ * 百度坐标系
+ *
+ *
+ * BAIDU_COORDINATE = 1;
+ */
+ public static final int BAIDU_COORDINATE_VALUE = 1;
+ /**
+ *
+ * 腾讯和高德和国测局坐标系
+ *
+ *
+ * SOSO_GCJ_COORDINATE = 2;
+ */
+ public static final int SOSO_GCJ_COORDINATE_VALUE = 2;
+ /**
+ *
+ * 地球经纬度
+ *
+ *
+ * WGS84 = 3;
+ */
+ public static final int WGS84_VALUE = 3;
+
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @Deprecated
+ public static CoordinateType valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static CoordinateType forNumber(int value) {
+ switch (value) {
+ case 0: return GCJ;
+ case 1: return BAIDU_COORDINATE;
+ case 2: return SOSO_GCJ_COORDINATE;
+ case 3: return WGS84;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ * 未知
+ *
+ *
+ * LOCK_TYPE_UNKNOW = 0;
+ */
+ LOCK_TYPE_UNKNOW(0),
+ /**
+ *
+ * GPS定位
+ *
+ *
+ * LOCK_TYPE_GPS = 1;
+ */
+ LOCK_TYPE_GPS(1),
+ /**
+ *
+ * 前次定位
+ *
+ *
+ * LOCK_TYPE_LAST = 2;
+ */
+ LOCK_TYPE_LAST(2),
+ /**
+ *
+ * 缓存定位
+ *
+ *
+ * LOCK_TYPE_CACHE = 4;
+ */
+ LOCK_TYPE_CACHE(4),
+ /**
+ *
+ * wifi定位
+ *
+ *
+ * LOCK_TYPE_WIFI = 5;
+ */
+ LOCK_TYPE_WIFI(5),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ *
+ * 未知
+ *
+ *
+ * LOCK_TYPE_UNKNOW = 0;
+ */
+ public static final int LOCK_TYPE_UNKNOW_VALUE = 0;
+ /**
+ *
+ * GPS定位
+ *
+ *
+ * LOCK_TYPE_GPS = 1;
+ */
+ public static final int LOCK_TYPE_GPS_VALUE = 1;
+ /**
+ *
+ * 前次定位
+ *
+ *
+ * LOCK_TYPE_LAST = 2;
+ */
+ public static final int LOCK_TYPE_LAST_VALUE = 2;
+ /**
+ *
+ * 缓存定位
+ *
+ *
+ * LOCK_TYPE_CACHE = 4;
+ */
+ public static final int LOCK_TYPE_CACHE_VALUE = 4;
+ /**
+ *
+ * wifi定位
+ *
+ *
+ * LOCK_TYPE_WIFI = 5;
+ */
+ public static final int LOCK_TYPE_WIFI_VALUE = 5;
+
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @Deprecated
+ public static LockType valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static LockType forNumber(int value) {
+ switch (value) {
+ case 0: return LOCK_TYPE_UNKNOW;
+ case 1: return LOCK_TYPE_GPS;
+ case 2: return LOCK_TYPE_LAST;
+ case 4: return LOCK_TYPE_CACHE;
+ case 5: return LOCK_TYPE_WIFI;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ * 精确到毫秒的时间戳
+ *
+ *
+ * int64 timestamp = 1;
+ */
+ long getTimestamp();
+
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ String getSn();
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ com.google.protobuf.ByteString
+ getSnBytes();
+
+ /**
+ *
+ * uid
+ *
+ *
+ * int64 uid = 3;
+ */
+ long getUid();
+
+ /**
+ *
+ * 数据版本
+ *
+ *
+ * int64 version = 4;
+ */
+ long getVersion();
+
+ /**
+ *
+ * 纬度
+ *
+ *
+ * double lat = 5;
+ */
+ double getLat();
+
+ /**
+ *
+ * 经度
+ *
+ *
+ * double lon = 6;
+ */
+ double getLon();
+
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ int getCoordinateTypeValue();
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ CoordinateType getCoordinateType();
+
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ int getLockTypeValue();
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ LockType getLockType();
+
+ /**
+ * string cityCode = 9;
+ */
+ String getCityCode();
+ /**
+ * string cityCode = 9;
+ */
+ com.google.protobuf.ByteString
+ getCityCodeBytes();
+
+ /**
+ * string adCode = 10;
+ */
+ String getAdCode();
+ /**
+ * string adCode = 10;
+ */
+ com.google.protobuf.ByteString
+ getAdCodeBytes();
+
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ boolean hasCameraInfo();
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ CameraInfo getCameraInfo();
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ CameraInfoOrBuilder getCameraInfoOrBuilder();
+ }
+ /**
+ * Protobuf type {@code com.zhidao.ptech.shadow.server.protocol.DeviceInfoData}
+ */
+ public static final class DeviceInfoData extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:com.zhidao.ptech.shadow.server.protocol.DeviceInfoData)
+ DeviceInfoDataOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DeviceInfoData.newBuilder() to construct.
+ private DeviceInfoData(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+ private DeviceInfoData() {
+ sn_ = "";
+ coordinateType_ = 0;
+ lockType_ = 0;
+ cityCode_ = "";
+ adCode_ = "";
+ }
+
+ @Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DeviceInfoData(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new NullPointerException();
+ }
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+
+ timestamp_ = input.readInt64();
+ break;
+ }
+ case 18: {
+ String s = input.readStringRequireUtf8();
+
+ sn_ = s;
+ break;
+ }
+ case 24: {
+
+ uid_ = input.readInt64();
+ break;
+ }
+ case 32: {
+
+ version_ = input.readInt64();
+ break;
+ }
+ case 41: {
+
+ lat_ = input.readDouble();
+ break;
+ }
+ case 49: {
+
+ lon_ = input.readDouble();
+ break;
+ }
+ case 56: {
+ int rawValue = input.readEnum();
+
+ coordinateType_ = rawValue;
+ break;
+ }
+ case 64: {
+ int rawValue = input.readEnum();
+
+ lockType_ = rawValue;
+ break;
+ }
+ case 74: {
+ String s = input.readStringRequireUtf8();
+
+ cityCode_ = s;
+ break;
+ }
+ case 82: {
+ String s = input.readStringRequireUtf8();
+
+ adCode_ = s;
+ break;
+ }
+ case 810: {
+ CameraInfo.Builder subBuilder = null;
+ if (cameraInfo_ != null) {
+ subBuilder = cameraInfo_.toBuilder();
+ }
+ cameraInfo_ = input.readMessage(CameraInfo.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(cameraInfo_);
+ cameraInfo_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return DeviceInfo.internal_static_com_zhidao_ptech_shadow_server_protocol_DeviceInfoData_descriptor;
+ }
+
+ @Override
+ protected FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return DeviceInfo.internal_static_com_zhidao_ptech_shadow_server_protocol_DeviceInfoData_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ DeviceInfoData.class, Builder.class);
+ }
+
+ public static final int TIMESTAMP_FIELD_NUMBER = 1;
+ private long timestamp_;
+ /**
+ *
+ * 精确到毫秒的时间戳
+ *
+ *
+ * int64 timestamp = 1;
+ */
+ public long getTimestamp() {
+ return timestamp_;
+ }
+
+ public static final int SN_FIELD_NUMBER = 2;
+ private volatile Object sn_;
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ public String getSn() {
+ Object ref = sn_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ sn_ = s;
+ return s;
+ }
+ }
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ public com.google.protobuf.ByteString
+ getSnBytes() {
+ Object ref = sn_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (String) ref);
+ sn_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int UID_FIELD_NUMBER = 3;
+ private long uid_;
+ /**
+ *
+ * uid
+ *
+ *
+ * int64 uid = 3;
+ */
+ public long getUid() {
+ return uid_;
+ }
+
+ public static final int VERSION_FIELD_NUMBER = 4;
+ private long version_;
+ /**
+ *
+ * 数据版本
+ *
+ *
+ * int64 version = 4;
+ */
+ public long getVersion() {
+ return version_;
+ }
+
+ public static final int LAT_FIELD_NUMBER = 5;
+ private double lat_;
+ /**
+ *
+ * 纬度
+ *
+ *
+ * double lat = 5;
+ */
+ public double getLat() {
+ return lat_;
+ }
+
+ public static final int LON_FIELD_NUMBER = 6;
+ private double lon_;
+ /**
+ *
+ * 经度
+ *
+ *
+ * double lon = 6;
+ */
+ public double getLon() {
+ return lon_;
+ }
+
+ public static final int COORDINATETYPE_FIELD_NUMBER = 7;
+ private int coordinateType_;
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ public int getCoordinateTypeValue() {
+ return coordinateType_;
+ }
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ public CoordinateType getCoordinateType() {
+ @SuppressWarnings("deprecation")
+ CoordinateType result = CoordinateType.valueOf(coordinateType_);
+ return result == null ? CoordinateType.UNRECOGNIZED : result;
+ }
+
+ public static final int LOCKTYPE_FIELD_NUMBER = 8;
+ private int lockType_;
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ public int getLockTypeValue() {
+ return lockType_;
+ }
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ public LockType getLockType() {
+ @SuppressWarnings("deprecation")
+ LockType result = LockType.valueOf(lockType_);
+ return result == null ? LockType.UNRECOGNIZED : result;
+ }
+
+ public static final int CITYCODE_FIELD_NUMBER = 9;
+ private volatile Object cityCode_;
+ /**
+ * string cityCode = 9;
+ */
+ public String getCityCode() {
+ Object ref = cityCode_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ cityCode_ = s;
+ return s;
+ }
+ }
+ /**
+ * string cityCode = 9;
+ */
+ public com.google.protobuf.ByteString
+ getCityCodeBytes() {
+ Object ref = cityCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (String) ref);
+ cityCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int ADCODE_FIELD_NUMBER = 10;
+ private volatile Object adCode_;
+ /**
+ * string adCode = 10;
+ */
+ public String getAdCode() {
+ Object ref = adCode_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ adCode_ = s;
+ return s;
+ }
+ }
+ /**
+ * string adCode = 10;
+ */
+ public com.google.protobuf.ByteString
+ getAdCodeBytes() {
+ Object ref = adCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (String) ref);
+ adCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int CAMERAINFO_FIELD_NUMBER = 101;
+ private CameraInfo cameraInfo_;
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public boolean hasCameraInfo() {
+ return cameraInfo_ != null;
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public CameraInfo getCameraInfo() {
+ return cameraInfo_ == null ? CameraInfo.getDefaultInstance() : cameraInfo_;
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public CameraInfoOrBuilder getCameraInfoOrBuilder() {
+ return getCameraInfo();
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (timestamp_ != 0L) {
+ output.writeInt64(1, timestamp_);
+ }
+ if (!getSnBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, sn_);
+ }
+ if (uid_ != 0L) {
+ output.writeInt64(3, uid_);
+ }
+ if (version_ != 0L) {
+ output.writeInt64(4, version_);
+ }
+ if (lat_ != 0D) {
+ output.writeDouble(5, lat_);
+ }
+ if (lon_ != 0D) {
+ output.writeDouble(6, lon_);
+ }
+ if (coordinateType_ != CoordinateType.GCJ.getNumber()) {
+ output.writeEnum(7, coordinateType_);
+ }
+ if (lockType_ != LockType.LOCK_TYPE_UNKNOW.getNumber()) {
+ output.writeEnum(8, lockType_);
+ }
+ if (!getCityCodeBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 9, cityCode_);
+ }
+ if (!getAdCodeBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 10, adCode_);
+ }
+ if (cameraInfo_ != null) {
+ output.writeMessage(101, getCameraInfo());
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (timestamp_ != 0L) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(1, timestamp_);
+ }
+ if (!getSnBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, sn_);
+ }
+ if (uid_ != 0L) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(3, uid_);
+ }
+ if (version_ != 0L) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(4, version_);
+ }
+ if (lat_ != 0D) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(5, lat_);
+ }
+ if (lon_ != 0D) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(6, lon_);
+ }
+ if (coordinateType_ != CoordinateType.GCJ.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(7, coordinateType_);
+ }
+ if (lockType_ != LockType.LOCK_TYPE_UNKNOW.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(8, lockType_);
+ }
+ if (!getCityCodeBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, cityCode_);
+ }
+ if (!getAdCodeBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, adCode_);
+ }
+ if (cameraInfo_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(101, getCameraInfo());
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof DeviceInfoData)) {
+ return super.equals(obj);
+ }
+ DeviceInfoData other = (DeviceInfoData) obj;
+
+ if (getTimestamp()
+ != other.getTimestamp()) return false;
+ if (!getSn()
+ .equals(other.getSn())) return false;
+ if (getUid()
+ != other.getUid()) return false;
+ if (getVersion()
+ != other.getVersion()) return false;
+ if (Double.doubleToLongBits(getLat())
+ != Double.doubleToLongBits(
+ other.getLat())) return false;
+ if (Double.doubleToLongBits(getLon())
+ != Double.doubleToLongBits(
+ other.getLon())) return false;
+ if (coordinateType_ != other.coordinateType_) return false;
+ if (lockType_ != other.lockType_) return false;
+ if (!getCityCode()
+ .equals(other.getCityCode())) return false;
+ if (!getAdCode()
+ .equals(other.getAdCode())) return false;
+ if (hasCameraInfo() != other.hasCameraInfo()) return false;
+ if (hasCameraInfo()) {
+ if (!getCameraInfo()
+ .equals(other.getCameraInfo())) return false;
+ }
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ getTimestamp());
+ hash = (37 * hash) + SN_FIELD_NUMBER;
+ hash = (53 * hash) + getSn().hashCode();
+ hash = (37 * hash) + UID_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ getUid());
+ hash = (37 * hash) + VERSION_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ getVersion());
+ hash = (37 * hash) + LAT_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ Double.doubleToLongBits(getLat()));
+ hash = (37 * hash) + LON_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ Double.doubleToLongBits(getLon()));
+ hash = (37 * hash) + COORDINATETYPE_FIELD_NUMBER;
+ hash = (53 * hash) + coordinateType_;
+ hash = (37 * hash) + LOCKTYPE_FIELD_NUMBER;
+ hash = (53 * hash) + lockType_;
+ hash = (37 * hash) + CITYCODE_FIELD_NUMBER;
+ hash = (53 * hash) + getCityCode().hashCode();
+ hash = (37 * hash) + ADCODE_FIELD_NUMBER;
+ hash = (53 * hash) + getAdCode().hashCode();
+ if (hasCameraInfo()) {
+ hash = (37 * hash) + CAMERAINFO_FIELD_NUMBER;
+ hash = (53 * hash) + getCameraInfo().hashCode();
+ }
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static DeviceInfoData parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static DeviceInfoData parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static DeviceInfoData parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static DeviceInfoData parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static DeviceInfoData parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static DeviceInfoData parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static DeviceInfoData parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static DeviceInfoData parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static DeviceInfoData parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static DeviceInfoData parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static DeviceInfoData parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static DeviceInfoData parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(DeviceInfoData prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @Override
+ protected Builder newBuilderForType(
+ BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code com.zhidao.ptech.shadow.server.protocol.DeviceInfoData}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder
+ * 精确到毫秒的时间戳
+ *
+ *
+ * int64 timestamp = 1;
+ */
+ public long getTimestamp() {
+ return timestamp_;
+ }
+ /**
+ *
+ * 精确到毫秒的时间戳
+ *
+ *
+ * int64 timestamp = 1;
+ */
+ public Builder setTimestamp(long value) {
+
+ timestamp_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 精确到毫秒的时间戳
+ *
+ *
+ * int64 timestamp = 1;
+ */
+ public Builder clearTimestamp() {
+
+ timestamp_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private Object sn_ = "";
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ public String getSn() {
+ Object ref = sn_;
+ if (!(ref instanceof String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ sn_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ public com.google.protobuf.ByteString
+ getSnBytes() {
+ Object ref = sn_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (String) ref);
+ sn_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ public Builder setSn(
+ String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ sn_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ public Builder clearSn() {
+
+ sn_ = getDefaultInstance().getSn();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * sn码
+ *
+ *
+ * string sn = 2;
+ */
+ public Builder setSnBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ sn_ = value;
+ onChanged();
+ return this;
+ }
+
+ private long uid_ ;
+ /**
+ *
+ * uid
+ *
+ *
+ * int64 uid = 3;
+ */
+ public long getUid() {
+ return uid_;
+ }
+ /**
+ *
+ * uid
+ *
+ *
+ * int64 uid = 3;
+ */
+ public Builder setUid(long value) {
+
+ uid_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * uid
+ *
+ *
+ * int64 uid = 3;
+ */
+ public Builder clearUid() {
+
+ uid_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private long version_ ;
+ /**
+ *
+ * 数据版本
+ *
+ *
+ * int64 version = 4;
+ */
+ public long getVersion() {
+ return version_;
+ }
+ /**
+ *
+ * 数据版本
+ *
+ *
+ * int64 version = 4;
+ */
+ public Builder setVersion(long value) {
+
+ version_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 数据版本
+ *
+ *
+ * int64 version = 4;
+ */
+ public Builder clearVersion() {
+
+ version_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ private double lat_ ;
+ /**
+ *
+ * 纬度
+ *
+ *
+ * double lat = 5;
+ */
+ public double getLat() {
+ return lat_;
+ }
+ /**
+ *
+ * 纬度
+ *
+ *
+ * double lat = 5;
+ */
+ public Builder setLat(double value) {
+
+ lat_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 纬度
+ *
+ *
+ * double lat = 5;
+ */
+ public Builder clearLat() {
+
+ lat_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double lon_ ;
+ /**
+ *
+ * 经度
+ *
+ *
+ * double lon = 6;
+ */
+ public double getLon() {
+ return lon_;
+ }
+ /**
+ *
+ * 经度
+ *
+ *
+ * double lon = 6;
+ */
+ public Builder setLon(double value) {
+
+ lon_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 经度
+ *
+ *
+ * double lon = 6;
+ */
+ public Builder clearLon() {
+
+ lon_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private int coordinateType_ = 0;
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ public int getCoordinateTypeValue() {
+ return coordinateType_;
+ }
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ public Builder setCoordinateTypeValue(int value) {
+ coordinateType_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ public CoordinateType getCoordinateType() {
+ @SuppressWarnings("deprecation")
+ CoordinateType result = CoordinateType.valueOf(coordinateType_);
+ return result == null ? CoordinateType.UNRECOGNIZED : result;
+ }
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ public Builder setCoordinateType(CoordinateType value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ coordinateType_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 坐标系类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CoordinateType coordinateType = 7;
+ */
+ public Builder clearCoordinateType() {
+
+ coordinateType_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int lockType_ = 0;
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ public int getLockTypeValue() {
+ return lockType_;
+ }
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ public Builder setLockTypeValue(int value) {
+ lockType_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ public LockType getLockType() {
+ @SuppressWarnings("deprecation")
+ LockType result = LockType.valueOf(lockType_);
+ return result == null ? LockType.UNRECOGNIZED : result;
+ }
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ public Builder setLockType(LockType value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ lockType_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 坐标类型
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.LockType lockType = 8;
+ */
+ public Builder clearLockType() {
+
+ lockType_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private Object cityCode_ = "";
+ /**
+ * string cityCode = 9;
+ */
+ public String getCityCode() {
+ Object ref = cityCode_;
+ if (!(ref instanceof String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ cityCode_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ /**
+ * string cityCode = 9;
+ */
+ public com.google.protobuf.ByteString
+ getCityCodeBytes() {
+ Object ref = cityCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (String) ref);
+ cityCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string cityCode = 9;
+ */
+ public Builder setCityCode(
+ String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ cityCode_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * string cityCode = 9;
+ */
+ public Builder clearCityCode() {
+
+ cityCode_ = getDefaultInstance().getCityCode();
+ onChanged();
+ return this;
+ }
+ /**
+ * string cityCode = 9;
+ */
+ public Builder setCityCodeBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ cityCode_ = value;
+ onChanged();
+ return this;
+ }
+
+ private Object adCode_ = "";
+ /**
+ * string adCode = 10;
+ */
+ public String getAdCode() {
+ Object ref = adCode_;
+ if (!(ref instanceof String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ adCode_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ /**
+ * string adCode = 10;
+ */
+ public com.google.protobuf.ByteString
+ getAdCodeBytes() {
+ Object ref = adCode_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (String) ref);
+ adCode_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * string adCode = 10;
+ */
+ public Builder setAdCode(
+ String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ adCode_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * string adCode = 10;
+ */
+ public Builder clearAdCode() {
+
+ adCode_ = getDefaultInstance().getAdCode();
+ onChanged();
+ return this;
+ }
+ /**
+ * string adCode = 10;
+ */
+ public Builder setAdCodeBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ adCode_ = value;
+ onChanged();
+ return this;
+ }
+
+ private CameraInfo cameraInfo_;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ CameraInfo, CameraInfo.Builder, CameraInfoOrBuilder> cameraInfoBuilder_;
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public boolean hasCameraInfo() {
+ return cameraInfoBuilder_ != null || cameraInfo_ != null;
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public CameraInfo getCameraInfo() {
+ if (cameraInfoBuilder_ == null) {
+ return cameraInfo_ == null ? CameraInfo.getDefaultInstance() : cameraInfo_;
+ } else {
+ return cameraInfoBuilder_.getMessage();
+ }
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public Builder setCameraInfo(CameraInfo value) {
+ if (cameraInfoBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ cameraInfo_ = value;
+ onChanged();
+ } else {
+ cameraInfoBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public Builder setCameraInfo(
+ CameraInfo.Builder builderForValue) {
+ if (cameraInfoBuilder_ == null) {
+ cameraInfo_ = builderForValue.build();
+ onChanged();
+ } else {
+ cameraInfoBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public Builder mergeCameraInfo(CameraInfo value) {
+ if (cameraInfoBuilder_ == null) {
+ if (cameraInfo_ != null) {
+ cameraInfo_ =
+ CameraInfo.newBuilder(cameraInfo_).mergeFrom(value).buildPartial();
+ } else {
+ cameraInfo_ = value;
+ }
+ onChanged();
+ } else {
+ cameraInfoBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public Builder clearCameraInfo() {
+ if (cameraInfoBuilder_ == null) {
+ cameraInfo_ = null;
+ onChanged();
+ } else {
+ cameraInfo_ = null;
+ cameraInfoBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public CameraInfo.Builder getCameraInfoBuilder() {
+
+ onChanged();
+ return getCameraInfoFieldBuilder().getBuilder();
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ public CameraInfoOrBuilder getCameraInfoOrBuilder() {
+ if (cameraInfoBuilder_ != null) {
+ return cameraInfoBuilder_.getMessageOrBuilder();
+ } else {
+ return cameraInfo_ == null ?
+ CameraInfo.getDefaultInstance() : cameraInfo_;
+ }
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraInfo cameraInfo = 101;
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ CameraInfo, CameraInfo.Builder, CameraInfoOrBuilder>
+ getCameraInfoFieldBuilder() {
+ if (cameraInfoBuilder_ == null) {
+ cameraInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ CameraInfo, CameraInfo.Builder, CameraInfoOrBuilder>(
+ getCameraInfo(),
+ getParentForChildren(),
+ isClean());
+ cameraInfo_ = null;
+ }
+ return cameraInfoBuilder_;
+ }
+ @Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:com.zhidao.ptech.shadow.server.protocol.DeviceInfoData)
+ }
+
+ // @@protoc_insertion_point(class_scope:com.zhidao.ptech.shadow.server.protocol.DeviceInfoData)
+ private static final DeviceInfoData DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new DeviceInfoData();
+ }
+
+ public static DeviceInfoData getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ int getC1Value();
+ /**
+ *
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ CameraStatus getC1();
+
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ int getC2Value();
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ CameraStatus getC2();
+
+ /**
+ *
+ * 数据有效时间:数据失效时间 = 当前时间 + expireTime
+ *
+ *
+ * int64 expireTime = 3;
+ */
+ long getExpireTime();
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * Protobuf type {@code com.zhidao.ptech.shadow.server.protocol.CameraInfo}
+ */
+ public static final class CameraInfo extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:com.zhidao.ptech.shadow.server.protocol.CameraInfo)
+ CameraInfoOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use CameraInfo.newBuilder() to construct.
+ private CameraInfo(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+ private CameraInfo() {
+ c1_ = 0;
+ c2_ = 0;
+ }
+
+ @Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private CameraInfo(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ if (extensionRegistry == null) {
+ throw new NullPointerException();
+ }
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ case 8: {
+ int rawValue = input.readEnum();
+
+ c1_ = rawValue;
+ break;
+ }
+ case 16: {
+ int rawValue = input.readEnum();
+
+ c2_ = rawValue;
+ break;
+ }
+ case 24: {
+
+ expireTime_ = input.readInt64();
+ break;
+ }
+ default: {
+ if (!parseUnknownField(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return DeviceInfo.internal_static_com_zhidao_ptech_shadow_server_protocol_CameraInfo_descriptor;
+ }
+
+ @Override
+ protected FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return DeviceInfo.internal_static_com_zhidao_ptech_shadow_server_protocol_CameraInfo_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ CameraInfo.class, Builder.class);
+ }
+
+ public static final int C_1_FIELD_NUMBER = 1;
+ private int c1_;
+ /**
+ *
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ public int getC1Value() {
+ return c1_;
+ }
+ /**
+ *
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ public CameraStatus getC1() {
+ @SuppressWarnings("deprecation")
+ CameraStatus result = CameraStatus.valueOf(c1_);
+ return result == null ? CameraStatus.UNRECOGNIZED : result;
+ }
+
+ public static final int C_2_FIELD_NUMBER = 2;
+ private int c2_;
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ public int getC2Value() {
+ return c2_;
+ }
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ public CameraStatus getC2() {
+ @SuppressWarnings("deprecation")
+ CameraStatus result = CameraStatus.valueOf(c2_);
+ return result == null ? CameraStatus.UNRECOGNIZED : result;
+ }
+
+ public static final int EXPIRETIME_FIELD_NUMBER = 3;
+ private long expireTime_;
+ /**
+ *
+ * 数据有效时间:数据失效时间 = 当前时间 + expireTime
+ *
+ *
+ * int64 expireTime = 3;
+ */
+ public long getExpireTime() {
+ return expireTime_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ @Override
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ @Override
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (c1_ != CameraStatus.CAMERA_STATUS_UNKNOW.getNumber()) {
+ output.writeEnum(1, c1_);
+ }
+ if (c2_ != CameraStatus.CAMERA_STATUS_UNKNOW.getNumber()) {
+ output.writeEnum(2, c2_);
+ }
+ if (expireTime_ != 0L) {
+ output.writeInt64(3, expireTime_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ @Override
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (c1_ != CameraStatus.CAMERA_STATUS_UNKNOW.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, c1_);
+ }
+ if (c2_ != CameraStatus.CAMERA_STATUS_UNKNOW.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(2, c2_);
+ }
+ if (expireTime_ != 0L) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt64Size(3, expireTime_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof CameraInfo)) {
+ return super.equals(obj);
+ }
+ CameraInfo other = (CameraInfo) obj;
+
+ if (c1_ != other.c1_) return false;
+ if (c2_ != other.c2_) return false;
+ if (getExpireTime()
+ != other.getExpireTime()) return false;
+ if (!unknownFields.equals(other.unknownFields)) return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + C_1_FIELD_NUMBER;
+ hash = (53 * hash) + c1_;
+ hash = (37 * hash) + C_2_FIELD_NUMBER;
+ hash = (53 * hash) + c2_;
+ hash = (37 * hash) + EXPIRETIME_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ getExpireTime());
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static CameraInfo parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static CameraInfo parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static CameraInfo parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static CameraInfo parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static CameraInfo parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static CameraInfo parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static CameraInfo parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static CameraInfo parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static CameraInfo parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static CameraInfo parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static CameraInfo parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static CameraInfo parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ @Override
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(CameraInfo prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ @Override
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @Override
+ protected Builder newBuilderForType(
+ BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ *
+ * 摄像头信息
+ *
+ *
+ * Protobuf type {@code com.zhidao.ptech.shadow.server.protocol.CameraInfo}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ public int getC1Value() {
+ return c1_;
+ }
+ /**
+ *
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ public Builder setC1Value(int value) {
+ c1_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ public CameraStatus getC1() {
+ @SuppressWarnings("deprecation")
+ CameraStatus result = CameraStatus.valueOf(c1_);
+ return result == null ? CameraStatus.UNRECOGNIZED : result;
+ }
+ /**
+ *
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ public Builder setC1(CameraStatus value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ c1_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 前置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_1 = 1;
+ */
+ public Builder clearC1() {
+
+ c1_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int c2_ = 0;
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ public int getC2Value() {
+ return c2_;
+ }
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ public Builder setC2Value(int value) {
+ c2_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ public CameraStatus getC2() {
+ @SuppressWarnings("deprecation")
+ CameraStatus result = CameraStatus.valueOf(c2_);
+ return result == null ? CameraStatus.UNRECOGNIZED : result;
+ }
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ public Builder setC2(CameraStatus value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ c2_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 后置
+ *
+ *
+ * .com.zhidao.ptech.shadow.server.protocol.CameraStatus C_2 = 2;
+ */
+ public Builder clearC2() {
+
+ c2_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private long expireTime_ ;
+ /**
+ *
+ * 数据有效时间:数据失效时间 = 当前时间 + expireTime
+ *
+ *
+ * int64 expireTime = 3;
+ */
+ public long getExpireTime() {
+ return expireTime_;
+ }
+ /**
+ *
+ * 数据有效时间:数据失效时间 = 当前时间 + expireTime
+ *
+ *
+ * int64 expireTime = 3;
+ */
+ public Builder setExpireTime(long value) {
+
+ expireTime_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ *
+ * 数据有效时间:数据失效时间 = 当前时间 + expireTime
+ *
+ *
+ * int64 expireTime = 3;
+ */
+ public Builder clearExpireTime() {
+
+ expireTime_ = 0L;
+ onChanged();
+ return this;
+ }
+ @Override
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:com.zhidao.ptech.shadow.server.protocol.CameraInfo)
+ }
+
+ // @@protoc_insertion_point(class_scope:com.zhidao.ptech.shadow.server.protocol.CameraInfo)
+ private static final CameraInfo DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new CameraInfo();
+ }
+
+ public static CameraInfo getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser