33 changed files with 8035 additions and 0 deletions
@ -0,0 +1 @@ |
|||||
|
RemoveMarineAnimals |
||||
@ -0,0 +1,8 @@ |
|||||
|
<component name="InspectionProjectProfileManager"> |
||||
|
<profile version="1.0"> |
||||
|
<option name="myName" value="Project Default" /> |
||||
|
<inspection_tool class="CommentedOutCode" enabled="true" level="WEAK WARNING" enabled_by_default="true"> |
||||
|
<option name="minLines" value="14" /> |
||||
|
</inspection_tool> |
||||
|
</profile> |
||||
|
</component> |
||||
@ -0,0 +1,6 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="RenderSettings"> |
||||
|
<option name="showDecorations" value="true" /> |
||||
|
</component> |
||||
|
</project> |
||||
@ -0,0 +1,6 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project version="4"> |
||||
|
<component name="VcsDirectoryMappings"> |
||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" /> |
||||
|
</component> |
||||
|
</project> |
||||
@ -0,0 +1,26 @@ |
|||||
|
package com.example.removemarineanimals; |
||||
|
|
||||
|
import android.content.Context; |
||||
|
|
||||
|
import androidx.test.platform.app.InstrumentationRegistry; |
||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4; |
||||
|
|
||||
|
import org.junit.Test; |
||||
|
import org.junit.runner.RunWith; |
||||
|
|
||||
|
import static org.junit.Assert.*; |
||||
|
|
||||
|
/** |
||||
|
* Instrumented test, which will execute on an Android device. |
||||
|
* |
||||
|
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a> |
||||
|
*/ |
||||
|
@RunWith(AndroidJUnit4.class) |
||||
|
public class ExampleInstrumentedTest { |
||||
|
@Test |
||||
|
public void useAppContext() { |
||||
|
// Context of the app under test.
|
||||
|
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); |
||||
|
assertEquals("com.example.removemarineanimals", appContext.getPackageName()); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,57 @@ |
|||||
|
package com.example.removemarineanimals; |
||||
|
|
||||
|
import static com.example.removemarineanimals.viewmodels.MainViewModel.mainBinding; |
||||
|
|
||||
|
import android.content.Context; |
||||
|
|
||||
|
import androidx.room.Database; |
||||
|
import androidx.room.Room; |
||||
|
import androidx.room.RoomDatabase; |
||||
|
|
||||
|
@Database(entities = {RobotLog.class}, version = 1, exportSchema = false) |
||||
|
public abstract class AppDatabase extends RoomDatabase { |
||||
|
|
||||
|
public abstract RobotLogDao robotLogDao(); |
||||
|
|
||||
|
private static volatile AppDatabase INSTANCE; |
||||
|
|
||||
|
public static AppDatabase getInstance(Context context) { |
||||
|
if (INSTANCE == null) { |
||||
|
synchronized (AppDatabase.class) { |
||||
|
if (INSTANCE == null) { |
||||
|
INSTANCE = Room.databaseBuilder(context.getApplicationContext(), |
||||
|
AppDatabase.class, "robot_logs.db") |
||||
|
.fallbackToDestructiveMigration() // 数据库升级时清空数据,可根据需求改
|
||||
|
.build(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
return INSTANCE; |
||||
|
} |
||||
|
|
||||
|
// 在 MainActivity 中添加两个成员变量缓存电机状态
|
||||
|
private String lastLeftError = "正常"; |
||||
|
private String lastRightError = "正常"; |
||||
|
|
||||
|
// 在 TimerTask 或接收串口数据后调用的方法
|
||||
|
private void checkMotorErrors() { |
||||
|
String currentLeftError = mainBinding.tvLeftError.getText().toString().trim(); |
||||
|
String currentRightError = mainBinding.tvRightError.getText().toString().trim(); |
||||
|
|
||||
|
// 左电机状态变化且不正常时保存日志
|
||||
|
if (!currentLeftError.equals("正常") && !currentLeftError.equals(lastLeftError)) { |
||||
|
saveMotorError("左电机", currentLeftError); |
||||
|
} |
||||
|
lastLeftError = currentLeftError; |
||||
|
|
||||
|
// 右电机状态变化且不正常时保存日志
|
||||
|
if (!currentRightError.equals("正常") && !currentRightError.equals(lastRightError)) { |
||||
|
saveMotorError("右电机", currentRightError); |
||||
|
} |
||||
|
lastRightError = currentRightError; |
||||
|
} |
||||
|
|
||||
|
private void saveMotorError(String 左电机, String currentLeftError) { |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,335 @@ |
|||||
|
package com.example.removemarineanimals; |
||||
|
|
||||
|
import androidx.appcompat.app.AppCompatActivity; |
||||
|
import androidx.core.content.ContextCompat; |
||||
|
import androidx.databinding.DataBindingUtil; |
||||
|
import androidx.lifecycle.ViewModelProvider; |
||||
|
|
||||
|
import android.app.PendingIntent; |
||||
|
import android.content.BroadcastReceiver; |
||||
|
import android.content.Context; |
||||
|
import android.content.Intent; |
||||
|
import android.content.IntentFilter; |
||||
|
import android.hardware.usb.UsbDevice; |
||||
|
import android.hardware.usb.UsbDeviceConnection; |
||||
|
import android.hardware.usb.UsbManager; |
||||
|
import android.os.Build; |
||||
|
import android.os.Bundle; |
||||
|
|
||||
|
import com.example.removemarineanimals.databinding.ActivityMainBinding; |
||||
|
import com.example.removemarineanimals.services.CustomProber; |
||||
|
//import com.example.removemarineanimals.services.USBSerialPortHelper; |
||||
|
import com.example.removemarineanimals.services.VideoHelper; |
||||
|
import com.example.removemarineanimals.viewmodels.MainViewModel; |
||||
|
import com.hoho.android.usbserial.driver.UsbSerialDriver; |
||||
|
import com.hoho.android.usbserial.driver.UsbSerialPort; |
||||
|
import com.hoho.android.usbserial.driver.UsbSerialProber; |
||||
|
import com.hoho.android.usbserial.util.SerialInputOutputManager; |
||||
|
|
||||
|
import android.os.Bundle; |
||||
|
import android.os.CountDownTimer; |
||||
|
import android.os.Handler; |
||||
|
import android.os.Looper; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.Iterator; |
||||
|
import java.util.List; |
||||
|
|
||||
|
import cn.nodemedia.NodePlayer; |
||||
|
|
||||
|
|
||||
|
public class MainActivity extends AppCompatActivity implements SerialInputOutputManager.Listener { |
||||
|
|
||||
|
|
||||
|
private enum UsbPermission {Unknown, Requested, Granted, Denied} |
||||
|
|
||||
|
private static final String INTENT_ACTION_GRANT_USB = BuildConfig.APPLICATION_ID + ".GRANT_USB"; |
||||
|
private int deviceId = 60000; |
||||
|
private int deviceId_test = 60000; |
||||
|
private int portNum; |
||||
|
private static final int WRITE_WAIT_MILLIS = 500; |
||||
|
private static final int READ_WAIT_MILLIS = 1000; |
||||
|
private static String PortNameContians = "SILICON";/**/ |
||||
|
private int baudRate = 57600; |
||||
|
private boolean withIoManager = true; |
||||
|
|
||||
|
private BroadcastReceiver broadcastReceiver; |
||||
|
private Handler mainLooper; |
||||
|
|
||||
|
|
||||
|
private SerialInputOutputManager usbIoManager; |
||||
|
private UsbSerialPort usbSerialPort; |
||||
|
private UsbPermission usbPermission = UsbPermission.Unknown; |
||||
|
private boolean connected = false; |
||||
|
|
||||
|
|
||||
|
public void GetControlsReferences() { |
||||
|
broadcastReceiver = new BroadcastReceiver() { |
||||
|
@Override |
||||
|
public void onReceive(Context context, Intent intent) { |
||||
|
if (INTENT_ACTION_GRANT_USB.equals(intent.getAction())) { |
||||
|
usbPermission = intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false) |
||||
|
? UsbPermission.Granted : UsbPermission.Denied; |
||||
|
connect(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
}; |
||||
|
mainLooper = new Handler(Looper.getMainLooper()); |
||||
|
|
||||
|
|
||||
|
_receiveBufferlist = new ArrayList<Byte>(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public static ActivityMainBinding mainBinding;//通过Binding可以获取界面数据 |
||||
|
// public USBSerialPortHelper serialPortHelper; |
||||
|
|
||||
|
@Override |
||||
|
protected void onCreate(Bundle savedInstanceState) { |
||||
|
super.onCreate(savedInstanceState); |
||||
|
// setContentView(R.layout.activity_main); |
||||
|
mainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); |
||||
|
MainViewModel vm = new ViewModelProvider(this).get(MainViewModel.class); |
||||
|
MainViewModel.mainBinding = mainBinding; |
||||
|
// vm.mainBinding=mainBinding; |
||||
|
mainBinding.setVm(vm); |
||||
|
|
||||
|
|
||||
|
//nodePlayer0 =new NodePlayer(this); |
||||
|
//nodePlayer1 =new NodePlayer(this); |
||||
|
|
||||
|
VideoHelper.nodePlayerView0 = mainBinding.nodePlayerView0; |
||||
|
VideoHelper.nodePlayerView1 = mainBinding.nodePlayerView1; |
||||
|
|
||||
|
VideoHelper.nodePlayer0 = new NodePlayer(this); |
||||
|
VideoHelper.nodePlayer1 = new NodePlayer(this); |
||||
|
|
||||
|
|
||||
|
VideoHelper.StatPlayVideo(); |
||||
|
|
||||
|
// |
||||
|
// serialPortHelper=new USBSerialPortHelper(); |
||||
|
// serialPortHelper.MainActivity=this; |
||||
|
// serialPortHelper.intialize(); |
||||
|
|
||||
|
|
||||
|
GetControlsReferences(); |
||||
|
connect(); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
protected void onStart() { |
||||
|
super.onStart(); |
||||
|
ContextCompat.registerReceiver(this, broadcastReceiver, new IntentFilter(INTENT_ACTION_GRANT_USB), ContextCompat.RECEIVER_NOT_EXPORTED); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onStop() { |
||||
|
this.unregisterReceiver(broadcastReceiver); |
||||
|
super.onStop(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onResume() { |
||||
|
super.onResume(); |
||||
|
if (!connected && (usbPermission == UsbPermission.Unknown || usbPermission == UsbPermission.Granted)) { |
||||
|
//mainLooper.post(this::connect); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onPause() { |
||||
|
if (connected) { |
||||
|
status("串口断开"); |
||||
|
// _serialPortSwitch.setChecked(false); |
||||
|
disconnect(); |
||||
|
} |
||||
|
super.onPause(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onNewData(byte[] data) { |
||||
|
mainLooper.post(() -> |
||||
|
{ |
||||
|
receive(data); |
||||
|
// receive data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onRunError(Exception e) { |
||||
|
mainLooper.post(() -> |
||||
|
{ |
||||
|
status("connection lost: " + e.getMessage()); |
||||
|
disconnect(); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
private void connect() { |
||||
|
|
||||
|
UsbDevice device = null; |
||||
|
UsbManager usbManager = (UsbManager) this.getSystemService(Context.USB_SERVICE); |
||||
|
for (UsbDevice v : usbManager.getDeviceList().values()) { |
||||
|
status(v.getManufacturerName().toUpperCase()); |
||||
|
if (v.getManufacturerName().toUpperCase().contains(PortNameContians)) { |
||||
|
device = v; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if (device == null) { |
||||
|
// _serialPortSwitch.setChecked(false); |
||||
|
|
||||
|
status("找不到设备"); |
||||
|
return; |
||||
|
} |
||||
|
UsbSerialDriver driver = UsbSerialProber.getDefaultProber().probeDevice(device); |
||||
|
if (driver == null) { |
||||
|
driver = CustomProber.getCustomProber().probeDevice(device); |
||||
|
} |
||||
|
if (driver == null) { |
||||
|
// _serialPortSwitch.setChecked(false); |
||||
|
status("无驱动"); |
||||
|
return; |
||||
|
} |
||||
|
if (driver.getPorts().size() < portNum) //就是0 cp2102 或者同一个驱动,第一个 |
||||
|
{ |
||||
|
status("connection failed: not enough ports at device"); |
||||
|
status("找不到设备"); |
||||
|
return; |
||||
|
} |
||||
|
usbSerialPort = driver.getPorts().get(portNum); |
||||
|
|
||||
|
UsbDeviceConnection usbConnection = usbManager.openDevice(driver.getDevice()); |
||||
|
if (usbConnection == null && usbPermission == UsbPermission.Unknown && !usbManager.hasPermission(driver.getDevice())) { |
||||
|
usbPermission = UsbPermission.Requested; |
||||
|
int flags = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_MUTABLE : 0; |
||||
|
Intent intent = new Intent(INTENT_ACTION_GRANT_USB); |
||||
|
intent.setPackage(this.getPackageName()); |
||||
|
PendingIntent usbPermissionIntent = PendingIntent.getBroadcast(this, 0, intent, flags); |
||||
|
usbManager.requestPermission(driver.getDevice(), usbPermissionIntent); |
||||
|
return; |
||||
|
} |
||||
|
if (usbConnection == null) { |
||||
|
if (!usbManager.hasPermission(driver.getDevice())) { |
||||
|
status("connection failed: permission denied"); |
||||
|
} else { |
||||
|
status("connection failed: open failed"); |
||||
|
} |
||||
|
|
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
try { |
||||
|
usbSerialPort.open(usbConnection); |
||||
|
try { |
||||
|
usbSerialPort.setParameters(baudRate, 8, 1, UsbSerialPort.PARITY_NONE); |
||||
|
} catch (UnsupportedOperationException e) { |
||||
|
status("unsupport setparameters"); |
||||
|
} |
||||
|
if (withIoManager) { |
||||
|
usbIoManager = new SerialInputOutputManager(usbSerialPort, this); |
||||
|
usbIoManager.setReadBufferSize(40960); |
||||
|
usbIoManager.setReadTimeout(READ_WAIT_MILLIS); |
||||
|
usbIoManager.start(); |
||||
|
} |
||||
|
//status("connected"); |
||||
|
connected = true; |
||||
|
// _serialPortSwitch.setChecked(true); |
||||
|
//switch set true |
||||
|
|
||||
|
} catch (Exception e) { |
||||
|
status("connection failed: " + e.getMessage()); |
||||
|
disconnect(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void disconnect() { |
||||
|
connected = false; |
||||
|
|
||||
|
if (usbIoManager != null) { |
||||
|
usbIoManager.setListener(null); |
||||
|
usbIoManager.stop(); |
||||
|
} |
||||
|
usbIoManager = null; |
||||
|
try { |
||||
|
usbSerialPort.close(); |
||||
|
} catch (IOException ignored) |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
usbSerialPort = null; |
||||
|
} |
||||
|
|
||||
|
List<Byte> _receiveBufferlist; |
||||
|
|
||||
|
private byte[] listTobyte(List<Byte> list) { |
||||
|
if (list == null || list.size() < 0) |
||||
|
return null; |
||||
|
byte[] bytes = new byte[list.size()]; |
||||
|
int i = 0; |
||||
|
Iterator<Byte> iterator = list.iterator(); |
||||
|
while (iterator.hasNext()) { |
||||
|
bytes[i] = iterator.next(); |
||||
|
i++; |
||||
|
} |
||||
|
return bytes; |
||||
|
} |
||||
|
|
||||
|
public int Counter = 1000; |
||||
|
boolean StartCountDown = false; |
||||
|
|
||||
|
private void receive(byte[] data) { |
||||
|
|
||||
|
for (int i = 0; i < data.length; i++) { |
||||
|
_receiveBufferlist.add(data[i]); |
||||
|
} |
||||
|
|
||||
|
//decodeRceive(data); |
||||
|
if (StartCountDown == false) { |
||||
|
StartCountDown = true; |
||||
|
new CountDownTimer(500, 500) { |
||||
|
public void onTick(long millisUntilFinished) { |
||||
|
// Used for formatting digit to be in 2 digits only |
||||
|
|
||||
|
} |
||||
|
|
||||
|
// When the task is over it will print 00:00:00 there |
||||
|
public void onFinish() { |
||||
|
decodeRceive(listTobyte(_receiveBufferlist)); |
||||
|
_receiveBufferlist.clear(); |
||||
|
StartCountDown = false; |
||||
|
} |
||||
|
}.start(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
private void decodeRceive(byte[] data) { |
||||
|
try { |
||||
|
|
||||
|
} catch ( |
||||
|
Exception e) { |
||||
|
//spn.append("exception:{e} "); |
||||
|
} |
||||
|
} |
||||
|
void status(String str) |
||||
|
{ |
||||
|
mainBinding.message.setText(str); |
||||
|
// SpannableStringBuilder spn = new SpannableStringBuilder(str + '\r' + '\n'); |
||||
|
// |
||||
|
// // spn.append(getTime()); |
||||
|
// |
||||
|
// spn.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorAccent)), 0, spn.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); |
||||
|
// receiveText.append(spn); |
||||
|
// scrollView.fullScroll(ScrollView.FOCUS_DOWN); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,607 @@ |
|||||
|
package com.example.removemarineanimals; |
||||
|
|
||||
|
import android.content.Context; |
||||
|
import android.content.SharedPreferences; |
||||
|
import android.os.Bundle; |
||||
|
import android.text.Editable; |
||||
|
import android.text.TextWatcher; |
||||
|
import android.view.View; |
||||
|
import android.view.inputmethod.InputMethodManager; |
||||
|
import android.widget.EditText; |
||||
|
import android.widget.TextView; |
||||
|
import androidx.annotation.NonNull; |
||||
|
import androidx.appcompat.app.AlertDialog; |
||||
|
import androidx.appcompat.app.AppCompatActivity; |
||||
|
import androidx.core.content.ContextCompat; |
||||
|
import androidx.databinding.DataBindingUtil; |
||||
|
import androidx.lifecycle.ViewModelProvider; |
||||
|
|
||||
|
import com.example.removemarineanimals.databinding.ActivityMainBinding; |
||||
|
import com.example.removemarineanimals.models.BspPV; |
||||
|
import com.example.removemarineanimals.models.RobotRMACM; |
||||
|
import com.example.removemarineanimals.services.ModbusCRC; |
||||
|
import com.example.removemarineanimals.services.ttySerialPortHelper; |
||||
|
import com.example.removemarineanimals.viewmodels.MainViewModel; |
||||
|
|
||||
|
import java.util.List; |
||||
|
import java.util.Locale; |
||||
|
import java.util.Timer; |
||||
|
import java.util.TimerTask; |
||||
|
|
||||
|
|
||||
|
public class MainActivity extends AppCompatActivity { |
||||
|
|
||||
|
public ActivityMainBinding mainBinding;//通过Binding可以获取界面数据
|
||||
|
//USB 串口服务
|
||||
|
//public USBSerialPortHelper serialPortHelper;
|
||||
|
private BspPV.PV_struct_define _toSendPV; |
||||
|
|
||||
|
public RobotRMACM.RMACM robotRMACM; |
||||
|
|
||||
|
// 换道标志位,默认左换道
|
||||
|
private int laneChangeDirection = 0; |
||||
|
|
||||
|
// 按钮高亮状态
|
||||
|
private boolean isLeftLaneChangeActive = true; |
||||
|
private boolean isRightLaneChangeActive = false; |
||||
|
|
||||
|
// 输入框
|
||||
|
private void setupDecimalEditText(EditText editText, String paramName) { |
||||
|
editText.addTextChangedListener(new TextWatcher() { |
||||
|
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} |
||||
|
@Override public void onTextChanged(CharSequence s, int start, int before, int count) {} |
||||
|
@Override |
||||
|
public void afterTextChanged(Editable editable) { |
||||
|
String text = editable.toString(); |
||||
|
// 如果只输入了 "."
|
||||
|
if (text.equals(".")) { |
||||
|
editText.setText("0."); |
||||
|
editText.setSelection(editText.getText().length()); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
//新增
|
||||
|
editText.setOnFocusChangeListener((v, hasFocus) -> { |
||||
|
if (!hasFocus) { |
||||
|
String text = editText.getText().toString().trim(); |
||||
|
String originalText = text; |
||||
|
|
||||
|
if (text.isEmpty()) { |
||||
|
text = getDefaultValue(paramName); |
||||
|
editText.setText(text); |
||||
|
saveParamChange(paramName, text); |
||||
|
} else { |
||||
|
// 在编辑完成后进行一次性参数限制
|
||||
|
text = validateAndLimitValue(paramName, text); |
||||
|
|
||||
|
// 如果值被调整,更新编辑框并显示提示
|
||||
|
if (!text.equals(originalText)) { |
||||
|
editText.setText(text); |
||||
|
showRangeLimitDialog(paramName, originalText, text); |
||||
|
} |
||||
|
|
||||
|
// 自动保存参数修改日志
|
||||
|
saveParamChange(paramName, text); |
||||
|
} |
||||
|
editText.setCursorVisible(false); |
||||
|
} else { |
||||
|
// 获得焦点时再显示光标,并全选文本
|
||||
|
editText.setCursorVisible(true); |
||||
|
|
||||
|
// 延迟一小段时间后全选文本,确保焦点稳定
|
||||
|
editText.postDelayed(() -> { |
||||
|
if (editText.hasFocus()) { |
||||
|
editText.selectAll(); |
||||
|
} |
||||
|
}, 100); |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
// 新增:编辑完成时自动隐藏光标
|
||||
|
editText.setOnEditorActionListener((v, actionId, event) -> { |
||||
|
editText.setCursorVisible(false); |
||||
|
editText.clearFocus(); |
||||
|
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); |
||||
|
if (imm != null) { |
||||
|
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); |
||||
|
} |
||||
|
return false; |
||||
|
}); |
||||
|
|
||||
|
// 新增:点击编辑框时也全选文本(作为焦点变化的补充)
|
||||
|
editText.setOnClickListener(v -> { |
||||
|
if (editText.hasFocus()) { |
||||
|
editText.postDelayed(() -> { |
||||
|
if (editText.hasFocus()) { |
||||
|
editText.selectAll(); |
||||
|
} |
||||
|
}, 100); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 验证并限制参数值范围 |
||||
|
*/ |
||||
|
private String validateAndLimitValue(String paramName, String value) { |
||||
|
try { |
||||
|
double numValue = Double.parseDouble(value); |
||||
|
|
||||
|
switch (paramName) { |
||||
|
case "RobotChgLength": |
||||
|
// 换道长度限制在0-1000
|
||||
|
int length = Math.max(0, Math.min(1000, (int) Math.round(numValue))); |
||||
|
return String.valueOf(length); |
||||
|
|
||||
|
case "RobotManualSpeed": |
||||
|
case "RobotAutoSpeed": |
||||
|
// 速度限制在 0-30 范围内
|
||||
|
double speed = Math.max(0, Math.min(30, numValue)); |
||||
|
// 保留一位小数
|
||||
|
return (speed == (int)speed) ? String.valueOf((int)speed) : String.format(Locale.getDefault(),"%.1f", speed); |
||||
|
|
||||
|
case "RobotForce": |
||||
|
// 压力限制在 300-3000 范围内
|
||||
|
int force = Math.max(300, Math.min(3000, (int) Math.round(numValue))); |
||||
|
return String.valueOf(force); |
||||
|
|
||||
|
default: |
||||
|
return value; |
||||
|
} |
||||
|
} catch (NumberFormatException e) { |
||||
|
// 如果解析失败,返回默认值
|
||||
|
return getDefaultValue(paramName); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取参数的默认值 |
||||
|
*/ |
||||
|
private String getDefaultValue(String paramName) { |
||||
|
switch (paramName) { |
||||
|
case "RobotChgLength": return "100"; |
||||
|
case "RobotManualSpeed": return "8"; |
||||
|
case "RobotAutoSpeed": return "20"; |
||||
|
case "RobotForce": return "300"; |
||||
|
default: return "0"; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 显示范围限制提示对话框 |
||||
|
*/ |
||||
|
private void showRangeLimitDialog(String paramName, String originalValue, String adjustedValue) { |
||||
|
runOnUiThread(() -> { |
||||
|
String paramDisplayName = getParamDisplayName(paramName); |
||||
|
String rangeInfo = getRangeInfo(paramName); |
||||
|
|
||||
|
String message = String.format("输入值 %s 已调整为 %s\n%s", |
||||
|
originalValue, adjustedValue, rangeInfo); |
||||
|
|
||||
|
new AlertDialog.Builder(this) |
||||
|
.setTitle(paramDisplayName + " 调整提示") |
||||
|
.setMessage(message) |
||||
|
.setPositiveButton("确定", null) |
||||
|
.show(); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取参数显示名称 |
||||
|
*/ |
||||
|
private String getParamDisplayName(String paramName) { |
||||
|
switch (paramName) { |
||||
|
case "RobotChgLength": return "换道长度"; |
||||
|
case "RobotManualSpeed": return "手动速度"; |
||||
|
case "RobotAutoSpeed": return "自动速度"; |
||||
|
case "RobotForce": return "压力值"; |
||||
|
default: return paramName; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取参数范围信息 |
||||
|
*/ |
||||
|
private String getRangeInfo(String paramName) { |
||||
|
switch (paramName) { |
||||
|
case "RobotChgLength": return "有效范围:0 — 1000"; |
||||
|
case "RobotManualSpeed": |
||||
|
case "RobotAutoSpeed": return "有效范围:0 - 30"; |
||||
|
case "RobotForce": return "有效范围:300 - 3000"; |
||||
|
default: return ""; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 安全取值,防止 Timer 崩溃
|
||||
|
private int getSafeInt(@NonNull EditText editText) { |
||||
|
String text = editText.getText().toString().trim(); |
||||
|
if (text.isEmpty()) return 0; |
||||
|
try { |
||||
|
return Integer.parseInt(text); |
||||
|
} catch (NumberFormatException e) { |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private double getSafeDouble(@NonNull EditText editText) { |
||||
|
String text = editText.getText().toString().trim(); |
||||
|
if (text.isEmpty()) return 0.0; |
||||
|
try { |
||||
|
return Double.parseDouble(text); |
||||
|
} catch (NumberFormatException e) { |
||||
|
return 0.0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
Timer timer = new Timer(); |
||||
|
//--
|
||||
|
public MainActivity() { |
||||
|
robotRMACM = RobotRMACM.RMACM.newBuilder().setRobotSpeed(0).setLightBrightness(0).build(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
protected void onCreate(Bundle savedInstanceState) { |
||||
|
super.onCreate(savedInstanceState); |
||||
|
|
||||
|
//MainViewModel binding region
|
||||
|
mainBinding = DataBindingUtil.setContentView(this,R.layout.activity_main); |
||||
|
MainViewModel vm=new ViewModelProvider(this).get(MainViewModel.class); |
||||
|
MainViewModel.mainBinding=mainBinding; |
||||
|
mainBinding.btnShowLogs.setOnClickListener(v -> showLogsDialog()); |
||||
|
mainBinding.setVm(vm); |
||||
|
|
||||
|
// 设置左右换道按钮的点击监听器
|
||||
|
mainBinding.btnLeftLaneChange.setOnClickListener(v -> { |
||||
|
setLaneChangeDirection(0); // 左换道
|
||||
|
updateButtonStyles(); |
||||
|
saveOperationLog("切换至左换道"); |
||||
|
}); |
||||
|
|
||||
|
mainBinding.btnRightLaneChange.setOnClickListener(v -> { |
||||
|
setLaneChangeDirection(1); // 右换道
|
||||
|
updateButtonStyles(); |
||||
|
saveOperationLog("切换至右换道"); |
||||
|
}); |
||||
|
|
||||
|
// 初始化按钮样式
|
||||
|
updateButtonStyles(); |
||||
|
|
||||
|
setupDecimalEditText(mainBinding.tvRobotChgLength, "RobotChgLength"); |
||||
|
setupDecimalEditText(mainBinding.tvRobotManualSpeed, "RobotManualSpeed"); |
||||
|
setupDecimalEditText(mainBinding.tvRobotAutoSpeed, "RobotAutoSpeed"); |
||||
|
setupDecimalEditText(mainBinding.tvRobotForce, "RobotForce"); |
||||
|
|
||||
|
|
||||
|
// 保存参数
|
||||
|
SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE); |
||||
|
String Str_RobotChgLength = sharedPreferences.getString("RobotChgLength", "100"); |
||||
|
String Str_RobotLeftCompensation = sharedPreferences.getString("RobotLeftCompensation", "0"); |
||||
|
String Str_RobotRightCompensation = sharedPreferences.getString("RobotRightCompensation", "0"); |
||||
|
String Str_RobotManualSpeed = sharedPreferences.getString("RobotManualSpeed", "8"); |
||||
|
String Str_RobotAutoSpeed = sharedPreferences.getString("RobotAutoSpeed", "20"); |
||||
|
String Str_RobotForce = sharedPreferences.getString("RobotForce", "300"); |
||||
|
|
||||
|
mainBinding.rFAngleRoll.setText(String.valueOf(0)); |
||||
|
mainBinding.tvRobotError.setText(String.valueOf(0)); |
||||
|
mainBinding.tvRobotChgLength.setText(Str_RobotChgLength); |
||||
|
mainBinding.tvRobotLeftCompensation.setText(Str_RobotLeftCompensation); |
||||
|
mainBinding.tvRobotRightCompensation.setText(Str_RobotRightCompensation); |
||||
|
mainBinding.tvForce.setText(String.valueOf(0)); |
||||
|
mainBinding.tvRobotManualSpeed.setText(Str_RobotManualSpeed); |
||||
|
mainBinding.tvRobotAutoSpeed.setText(Str_RobotAutoSpeed); |
||||
|
mainBinding.tvRobotCurrent.setText(String.valueOf(0)); |
||||
|
mainBinding.tvDynamometer.setText(String.valueOf(0)); |
||||
|
mainBinding.tvRobotForce.setText(Str_RobotForce); |
||||
|
|
||||
|
/* 删除15天前旧日志*/ |
||||
|
deleteOldLogs(); |
||||
|
|
||||
|
/* USB串口 控制区域*/ |
||||
|
ttySerialPortHelper.MainActivity = this; |
||||
|
ttySerialPortHelper.Open(); |
||||
|
|
||||
|
// /* NodePlayer 播放视频区域*/
|
||||
|
// NodePlayer nodePlayer0=new NodePlayer(this);
|
||||
|
// // NodePlayer nodePlayer1=new NodePlayer(this);
|
||||
|
//
|
||||
|
// //String address0 = "rtsp://192.168.1.168:8554/0";
|
||||
|
// // String address1 = "rtsp://192.168.1.169:8554/0";
|
||||
|
//
|
||||
|
// //String addressTest = "rtsp://rtspstream:yEhp9qzAqveM9kHIE7GcL@zephyr.rtsp.stream/movie";
|
||||
|
// String address0 = "rtsp://192.168.144.25:8554/main.264";
|
||||
|
// /**/
|
||||
|
// //VideoPlayerHelper.startVideo(mainBinding.nodePlayerView0,nodePlayer0,address0);不涉及摄像头
|
||||
|
// // VideoPlayerHelper.startVideo(mainBinding.nodePlayerView1,nodePlayer1,address1);
|
||||
|
// //VideoPlayerHelper.startVideo(mainBinding.nodePlayerView1,nodePlayer1,addressTest);
|
||||
|
|
||||
|
startSending(); |
||||
|
} |
||||
|
|
||||
|
// 设置换道方向
|
||||
|
private void setLaneChangeDirection(int direction) { |
||||
|
laneChangeDirection = direction; |
||||
|
isLeftLaneChangeActive = (direction == 0); |
||||
|
isRightLaneChangeActive = (direction == 1); |
||||
|
} |
||||
|
|
||||
|
// 更新按钮样式
|
||||
|
private void updateButtonStyles() { |
||||
|
// 左换道按钮样式
|
||||
|
if (isLeftLaneChangeActive) { |
||||
|
mainBinding.btnLeftLaneChange.setTextColor(ContextCompat.getColor(this, R.color.mediumvioletred)); // 高亮色
|
||||
|
mainBinding.btnLeftLaneChange.setBackgroundResource(R.drawable.blue_rounded_rectangle); |
||||
|
} else { |
||||
|
mainBinding.btnLeftLaneChange.setTextColor(ContextCompat.getColor(this, R.color.deepskyblue)); // 默认色
|
||||
|
mainBinding.btnLeftLaneChange.setBackgroundResource(R.drawable.blue_rounded_rectangle); |
||||
|
} |
||||
|
|
||||
|
// 右换道按钮样式
|
||||
|
if (isRightLaneChangeActive) { |
||||
|
mainBinding.btnRightLaneChange.setTextColor(ContextCompat.getColor(this, R.color.mediumvioletred)); |
||||
|
mainBinding.btnRightLaneChange.setBackgroundResource(R.drawable.blue_rounded_rectangle); |
||||
|
} else { |
||||
|
mainBinding.btnRightLaneChange.setTextColor(ContextCompat.getColor(this, R.color.deepskyblue)); |
||||
|
mainBinding.btnRightLaneChange.setBackgroundResource(R.drawable.blue_rounded_rectangle); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// Create a Timer instance
|
||||
|
|
||||
|
@Override |
||||
|
protected void onStart() { |
||||
|
super.onStart(); |
||||
|
|
||||
|
// serialPortHelper.onStart();
|
||||
|
|
||||
|
} |
||||
|
@Override |
||||
|
public void onStop() |
||||
|
{ |
||||
|
super.onStop(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onResume() |
||||
|
{ |
||||
|
super.onResume(); |
||||
|
// serialPortHelper.onResume();
|
||||
|
//新增
|
||||
|
startSending(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onPause() { |
||||
|
super.onPause(); |
||||
|
stopSending(); |
||||
|
|
||||
|
SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE); |
||||
|
SharedPreferences.Editor editor = sharedPreferences.edit(); |
||||
|
|
||||
|
// 添加空值检查
|
||||
|
String chgLength = String.valueOf(mainBinding.tvRobotChgLength.getText()); |
||||
|
if (chgLength.isEmpty()) chgLength = "100"; |
||||
|
|
||||
|
String leftComp = String.valueOf(mainBinding.tvRobotLeftCompensation.getText()); |
||||
|
if (leftComp.isEmpty()) leftComp = "0"; |
||||
|
|
||||
|
String rightComp = String.valueOf(mainBinding.tvRobotRightCompensation.getText()); |
||||
|
if (rightComp.isEmpty()) rightComp = "0"; |
||||
|
|
||||
|
String manualSpeed = String.valueOf(mainBinding.tvRobotManualSpeed.getText()); |
||||
|
if (manualSpeed.isEmpty()) manualSpeed = "8"; |
||||
|
|
||||
|
String autoSpeed = String.valueOf(mainBinding.tvRobotAutoSpeed.getText()); |
||||
|
if (autoSpeed.isEmpty()) autoSpeed = "20"; |
||||
|
|
||||
|
String force = String.valueOf(mainBinding.tvRobotForce.getText()); |
||||
|
if (force.isEmpty()) force = "300"; |
||||
|
|
||||
|
editor.putString("RobotChgLength", chgLength); |
||||
|
editor.putString("RobotLeftCompensation", leftComp); |
||||
|
editor.putString("RobotRightCompensation", rightComp); |
||||
|
editor.putString("RobotManualSpeed", manualSpeed); |
||||
|
editor.putString("RobotAutoSpeed", autoSpeed); |
||||
|
editor.putString("RobotForce", force); |
||||
|
editor.apply(); |
||||
|
} |
||||
|
@Override |
||||
|
protected void onDestroy() { |
||||
|
super.onDestroy(); |
||||
|
if (timer != null) { |
||||
|
timer.cancel(); |
||||
|
} |
||||
|
} |
||||
|
private TimerTask sendTask; |
||||
|
//新增
|
||||
|
private void startSending() { |
||||
|
stopSending(); |
||||
|
if (timer == null) { |
||||
|
timer = new Timer(); |
||||
|
sendTask = new TimerTask() { |
||||
|
@Override |
||||
|
public void run() { |
||||
|
try { |
||||
|
// 获取当前编辑框的值
|
||||
|
int chgLength = getSafeInt(mainBinding.tvRobotChgLength); |
||||
|
double manualSpeed = getSafeDouble(mainBinding.tvRobotManualSpeed); |
||||
|
double autoSpeed = getSafeDouble(mainBinding.tvRobotAutoSpeed); |
||||
|
int force = getSafeInt(mainBinding.tvRobotForce); |
||||
|
|
||||
|
// 在发送前进行范围限制
|
||||
|
chgLength = Math.max(0, Math.min(1000, chgLength)); |
||||
|
manualSpeed = Math.max(0, Math.min(30, manualSpeed)); |
||||
|
autoSpeed = Math.max(0, Math.min(30, autoSpeed)); |
||||
|
force = Math.max(300, Math.min(3000, force)); |
||||
|
|
||||
|
_toSendPV = BspPV.PV_struct_define.newBuilder() |
||||
|
.setRobotChgLength(chgLength) |
||||
|
.setRobotAutoSpeedBase(autoSpeed) |
||||
|
.setRobotManualSpeedBase(manualSpeed) |
||||
|
.setRobotLaneChangeDirection(laneChangeDirection) |
||||
|
.setRobotForce(force) |
||||
|
.build(); |
||||
|
|
||||
|
byte[] byteArray = _toSendPV.toByteArray(); |
||||
|
byte[] sendByteArray = new byte[byteArray.length + 4]; |
||||
|
byte[] sendByteArray3 = new byte[byteArray.length + 6]; |
||||
|
|
||||
|
if (byteArray.length != 0) { |
||||
|
System.arraycopy(byteArray, 0, sendByteArray, 4, byteArray.length); |
||||
|
} |
||||
|
sendByteArray[0] = (byte) 0x55; |
||||
|
sendByteArray[1] = (byte) 0x55; |
||||
|
sendByteArray[2] = (byte) 0x01; |
||||
|
sendByteArray[3] = (byte) 0x01; |
||||
|
|
||||
|
byte[] byteArray2 = ModbusCRC.calculateCRC(sendByteArray); |
||||
|
|
||||
|
System.arraycopy(sendByteArray, 0, sendByteArray3, 0, sendByteArray.length); |
||||
|
System.arraycopy(byteArray2, 0, sendByteArray3, sendByteArray3.length - 2, 2); |
||||
|
|
||||
|
ttySerialPortHelper.SendData(sendByteArray3); |
||||
|
|
||||
|
runOnUiThread(() -> checkMotorErrors()); |
||||
|
} catch (Exception e) { |
||||
|
android.util.Log.e("MainActivity", "Error in startSending timer task", e); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
timer.schedule(sendTask, 0, 1000); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void stopSending() { |
||||
|
try { |
||||
|
if (sendTask != null) { |
||||
|
sendTask.cancel(); |
||||
|
sendTask = null; |
||||
|
} |
||||
|
if (timer != null) { |
||||
|
timer.cancel(); |
||||
|
timer.purge(); |
||||
|
timer = null; |
||||
|
} |
||||
|
} catch (Exception ignored) {} |
||||
|
} |
||||
|
|
||||
|
private void saveMotorError(String motorSide, String errorMsg) { |
||||
|
new Thread(() -> { |
||||
|
AppDatabase db = AppDatabase.getInstance(this); |
||||
|
RobotLog log = new RobotLog(); |
||||
|
log.type = "error"; |
||||
|
log.message = motorSide + " 电机报错: " + errorMsg; |
||||
|
log.time = System.currentTimeMillis(); |
||||
|
db.robotLogDao().insert(log); |
||||
|
}).start(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
private String lastLeftError = "xxx"; |
||||
|
private String lastRightError = "xxx"; |
||||
|
|
||||
|
private void checkMotorErrors() { |
||||
|
String currentLeftError = mainBinding.tvLeftError.getText().toString().trim(); |
||||
|
String currentRightError = mainBinding.tvRightError.getText().toString().trim(); |
||||
|
|
||||
|
// 左电机状态变化且不正常时保存日志
|
||||
|
if (!currentLeftError.equals("正常") && !currentLeftError.equals(lastLeftError)) { |
||||
|
saveMotorError("左电机", currentLeftError); |
||||
|
} |
||||
|
lastLeftError = currentLeftError; |
||||
|
|
||||
|
// 右电机状态变化且不正常时保存日志
|
||||
|
if (!currentRightError.equals("正常") && !currentRightError.equals(lastRightError)) { |
||||
|
saveMotorError("右电机", currentRightError); |
||||
|
} |
||||
|
lastRightError = currentRightError; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
// 启用参数设定区域
|
||||
|
public void enableParameterArea() { |
||||
|
runOnUiThread(() -> { |
||||
|
mainBinding.setLayout.setEnabled(true); |
||||
|
for (int i = 0; i < mainBinding.setLayout.getChildCount(); i++) { |
||||
|
View child = mainBinding.setLayout.getChildAt(i); |
||||
|
child.setEnabled(true); |
||||
|
child.setAlpha(1.0f); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 禁用参数设定区域
|
||||
|
public void disableParameterArea() { |
||||
|
runOnUiThread(() -> { |
||||
|
mainBinding.setLayout.setEnabled(false); |
||||
|
for (int i = 0; i < mainBinding.setLayout.getChildCount(); i++) { |
||||
|
View child = mainBinding.setLayout.getChildAt(i); |
||||
|
child.setEnabled(false); |
||||
|
child.setAlpha(0.5f); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
private void saveParamChange(String paramName, String newValue) { |
||||
|
new Thread(() -> { |
||||
|
AppDatabase db = AppDatabase.getInstance(this); |
||||
|
RobotLog log = new RobotLog(); |
||||
|
log.type = "param_change"; |
||||
|
log.message = paramName + " 修改为 " + newValue; |
||||
|
log.time = System.currentTimeMillis(); |
||||
|
db.robotLogDao().insert(log); |
||||
|
}).start(); |
||||
|
} |
||||
|
|
||||
|
private void saveOperationLog(String operation) { |
||||
|
new Thread(() -> { |
||||
|
AppDatabase db = AppDatabase.getInstance(this); |
||||
|
RobotLog log = new RobotLog(); |
||||
|
log.type = "operation"; |
||||
|
log.message = operation; |
||||
|
log.time = System.currentTimeMillis(); |
||||
|
db.robotLogDao().insert(log); |
||||
|
}).start(); |
||||
|
} |
||||
|
|
||||
|
private void showLogsDialog() { |
||||
|
new Thread(() -> { |
||||
|
AppDatabase db = AppDatabase.getInstance(this); |
||||
|
List<RobotLog> logs = db.robotLogDao().getAllLogs(); |
||||
|
|
||||
|
StringBuilder sb = new StringBuilder(); |
||||
|
for (RobotLog log : logs) { |
||||
|
sb.append("[").append(android.text.format.DateFormat.format("yyyy-MM-dd HH:mm:ss", log.time)).append("] "); |
||||
|
sb.append(log.type).append(": ").append(log.message).append("\n"); |
||||
|
} |
||||
|
|
||||
|
String logContent = sb.toString(); |
||||
|
|
||||
|
runOnUiThread(() -> { |
||||
|
// 创建 Dialog
|
||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(this); |
||||
|
builder.setTitle("日志信息"); |
||||
|
|
||||
|
// 使用自定义布局
|
||||
|
View dialogView = getLayoutInflater().inflate(R.layout.dialog_logs, null); |
||||
|
TextView tvLogs = dialogView.findViewById(R.id.tv_logs_content); |
||||
|
tvLogs.setText(logContent.isEmpty() ? "暂无日志" : logContent); |
||||
|
|
||||
|
builder.setView(dialogView) |
||||
|
.setPositiveButton("关闭", null) |
||||
|
.show(); |
||||
|
}); |
||||
|
}).start(); |
||||
|
} |
||||
|
|
||||
|
private void deleteOldLogs() { |
||||
|
new Thread(() -> { |
||||
|
AppDatabase db = AppDatabase.getInstance(this); |
||||
|
long thirtyDaysAgo = System.currentTimeMillis() - 15L * 24 * 60 * 60 * 1000; // 15天前时间戳
|
||||
|
db.robotLogDao().deleteLogsBefore(thirtyDaysAgo); |
||||
|
}).start(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,20 @@ |
|||||
|
package com.example.removemarineanimals; |
||||
|
|
||||
|
import androidx.room.ColumnInfo; |
||||
|
import androidx.room.Entity; |
||||
|
import androidx.room.PrimaryKey; |
||||
|
|
||||
|
@Entity(tableName = "robot_logs") |
||||
|
public class RobotLog { |
||||
|
@PrimaryKey(autoGenerate = true) |
||||
|
public int id; |
||||
|
|
||||
|
@ColumnInfo(name = "type") // "error" 或 "param_change"
|
||||
|
public String type; |
||||
|
|
||||
|
@ColumnInfo(name = "message") // 具体信息:报错内容或修改了哪个参数
|
||||
|
public String message; |
||||
|
|
||||
|
@ColumnInfo(name = "time") // 时间戳
|
||||
|
public long time; |
||||
|
} |
||||
@ -0,0 +1,22 @@ |
|||||
|
package com.example.removemarineanimals; |
||||
|
|
||||
|
import androidx.room.Dao; |
||||
|
import androidx.room.Insert; |
||||
|
import androidx.room.Query; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@Dao |
||||
|
public interface RobotLogDao { |
||||
|
|
||||
|
@Insert |
||||
|
void insert(RobotLog log); |
||||
|
|
||||
|
|
||||
|
@Query("SELECT * FROM robot_logs ORDER BY time DESC") |
||||
|
List<RobotLog> getAllLogs(); |
||||
|
|
||||
|
@Query("DELETE FROM robot_logs WHERE time < :timeLimit") |
||||
|
void deleteLogsBefore(long timeLimit); |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,815 @@ |
|||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
|
// NO CHECKED-IN PROTOBUF GENCODE
|
||||
|
// source: bsp_Error.proto
|
||||
|
// Protobuf Java Version: 4.27.2
|
||||
|
|
||||
|
package com.example.removemarineanimals.models; |
||||
|
|
||||
|
public final class BspError { |
||||
|
private BspError() {} |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
BspError.class.getName()); |
||||
|
} |
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistryLite registry) { |
||||
|
} |
||||
|
|
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistry registry) { |
||||
|
registerAllExtensions( |
||||
|
(com.google.protobuf.ExtensionRegistryLite) registry); |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf enum {@code ComError} |
||||
|
*/ |
||||
|
public enum ComError |
||||
|
implements com.google.protobuf.ProtocolMessageEnum { |
||||
|
/** |
||||
|
* <code>MK32_SBus = 0;</code> |
||||
|
*/ |
||||
|
MK32_SBus(0), |
||||
|
/** |
||||
|
* <code>TL720D = 1;</code> |
||||
|
*/ |
||||
|
TL720D(1), |
||||
|
/** |
||||
|
* <code>Force_sensor = 2;</code> |
||||
|
*/ |
||||
|
Force_sensor(2), |
||||
|
/** |
||||
|
* <code>ZQ_LeftMotor = 3;</code> |
||||
|
*/ |
||||
|
ZQ_LeftMotor(3), |
||||
|
/** |
||||
|
* <code>ZQ_RightMotor = 4;</code> |
||||
|
*/ |
||||
|
ZQ_RightMotor(4), |
||||
|
/** |
||||
|
* <code>DMAKE_1 = 5;</code> |
||||
|
*/ |
||||
|
DMAKE_1(5), |
||||
|
/** |
||||
|
* <pre> |
||||
|
* DMAKE_2 = 6; |
||||
|
* DMAKE_3 = 7; |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>MK32_Serial = 6;</code> |
||||
|
*/ |
||||
|
MK32_Serial(6), |
||||
|
UNRECOGNIZED(-1), |
||||
|
; |
||||
|
|
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
ComError.class.getName()); |
||||
|
} |
||||
|
/** |
||||
|
* <code>MK32_SBus = 0;</code> |
||||
|
*/ |
||||
|
public static final int MK32_SBus_VALUE = 0; |
||||
|
/** |
||||
|
* <code>TL720D = 1;</code> |
||||
|
*/ |
||||
|
public static final int TL720D_VALUE = 1; |
||||
|
/** |
||||
|
* <code>Force_sensor = 2;</code> |
||||
|
*/ |
||||
|
public static final int Force_sensor_VALUE = 2; |
||||
|
/** |
||||
|
* <code>ZQ_LeftMotor = 3;</code> |
||||
|
*/ |
||||
|
public static final int ZQ_LeftMotor_VALUE = 3; |
||||
|
/** |
||||
|
* <code>ZQ_RightMotor = 4;</code> |
||||
|
*/ |
||||
|
public static final int ZQ_RightMotor_VALUE = 4; |
||||
|
/** |
||||
|
* <code>DMAKE_1 = 5;</code> |
||||
|
*/ |
||||
|
public static final int DMAKE_1_VALUE = 5; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* DMAKE_2 = 6; |
||||
|
* DMAKE_3 = 7; |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>MK32_Serial = 6;</code> |
||||
|
*/ |
||||
|
public static final int MK32_Serial_VALUE = 6; |
||||
|
|
||||
|
|
||||
|
public final int getNumber() { |
||||
|
if (this == UNRECOGNIZED) { |
||||
|
throw new java.lang.IllegalArgumentException( |
||||
|
"Can't get the number of an unknown enum value."); |
||||
|
} |
||||
|
return value; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param value The numeric wire value of the corresponding enum entry. |
||||
|
* @return The enum associated with the given numeric wire value. |
||||
|
* @deprecated Use {@link #forNumber(int)} instead. |
||||
|
*/ |
||||
|
@java.lang.Deprecated |
||||
|
public static ComError valueOf(int value) { |
||||
|
return forNumber(value); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* @param value The numeric wire value of the corresponding enum entry. |
||||
|
* @return The enum associated with the given numeric wire value. |
||||
|
*/ |
||||
|
public static ComError forNumber(int value) { |
||||
|
switch (value) { |
||||
|
case 0: return MK32_SBus; |
||||
|
case 1: return TL720D; |
||||
|
case 2: return Force_sensor; |
||||
|
case 3: return ZQ_LeftMotor; |
||||
|
case 4: return ZQ_RightMotor; |
||||
|
case 5: return DMAKE_1; |
||||
|
case 6: return MK32_Serial; |
||||
|
default: return null; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public static com.google.protobuf.Internal.EnumLiteMap<ComError> |
||||
|
internalGetValueMap() { |
||||
|
return internalValueMap; |
||||
|
} |
||||
|
private static final com.google.protobuf.Internal.EnumLiteMap< |
||||
|
ComError> internalValueMap = |
||||
|
new com.google.protobuf.Internal.EnumLiteMap<ComError>() { |
||||
|
public ComError findValueByNumber(int number) { |
||||
|
return ComError.forNumber(number); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
public final com.google.protobuf.Descriptors.EnumValueDescriptor |
||||
|
getValueDescriptor() { |
||||
|
if (this == UNRECOGNIZED) { |
||||
|
throw new java.lang.IllegalStateException( |
||||
|
"Can't get the descriptor of an unrecognized enum value."); |
||||
|
} |
||||
|
return getDescriptor().getValues().get(ordinal()); |
||||
|
} |
||||
|
public final com.google.protobuf.Descriptors.EnumDescriptor |
||||
|
getDescriptorForType() { |
||||
|
return getDescriptor(); |
||||
|
} |
||||
|
public static final com.google.protobuf.Descriptors.EnumDescriptor |
||||
|
getDescriptor() { |
||||
|
return com.example.removemarineanimals.models.BspError.getDescriptor().getEnumTypes().get(0); |
||||
|
} |
||||
|
|
||||
|
private static final ComError[] VALUES = values(); |
||||
|
|
||||
|
public static ComError valueOf( |
||||
|
com.google.protobuf.Descriptors.EnumValueDescriptor desc) { |
||||
|
if (desc.getType() != getDescriptor()) { |
||||
|
throw new java.lang.IllegalArgumentException( |
||||
|
"EnumValueDescriptor is not for this type."); |
||||
|
} |
||||
|
if (desc.getIndex() == -1) { |
||||
|
return UNRECOGNIZED; |
||||
|
} |
||||
|
return VALUES[desc.getIndex()]; |
||||
|
} |
||||
|
|
||||
|
private final int value; |
||||
|
|
||||
|
private ComError(int value) { |
||||
|
this.value = value; |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(enum_scope:ComError)
|
||||
|
} |
||||
|
|
||||
|
public interface ErrorDataOrBuilder extends |
||||
|
// @@protoc_insertion_point(interface_extends:ErrorData)
|
||||
|
com.google.protobuf.MessageOrBuilder { |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Com_Error_Code = 1;</code> |
||||
|
* @return The comErrorCode. |
||||
|
*/ |
||||
|
int getComErrorCode(); |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Left_Motor_Error_Code = 2;</code> |
||||
|
* @return The leftMotorErrorCode. |
||||
|
*/ |
||||
|
int getLeftMotorErrorCode(); |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Right_Motor_Error_Code = 3;</code> |
||||
|
* @return The rightMotorErrorCode. |
||||
|
*/ |
||||
|
int getRightMotorErrorCode(); |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code ErrorData} |
||||
|
*/ |
||||
|
public static final class ErrorData extends |
||||
|
com.google.protobuf.GeneratedMessage implements |
||||
|
// @@protoc_insertion_point(message_implements:ErrorData)
|
||||
|
ErrorDataOrBuilder { |
||||
|
private static final long serialVersionUID = 0L; |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
ErrorData.class.getName()); |
||||
|
} |
||||
|
// Use ErrorData.newBuilder() to construct.
|
||||
|
private ErrorData(com.google.protobuf.GeneratedMessage.Builder<?> builder) { |
||||
|
super(builder); |
||||
|
} |
||||
|
private ErrorData() { |
||||
|
} |
||||
|
|
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return com.example.removemarineanimals.models.BspError.internal_static_ErrorData_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return com.example.removemarineanimals.models.BspError.internal_static_ErrorData_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
com.example.removemarineanimals.models.BspError.ErrorData.class, com.example.removemarineanimals.models.BspError.ErrorData.Builder.class); |
||||
|
} |
||||
|
|
||||
|
public static final int COM_ERROR_CODE_FIELD_NUMBER = 1; |
||||
|
private int comErrorCode_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Com_Error_Code = 1;</code> |
||||
|
* @return The comErrorCode. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getComErrorCode() { |
||||
|
return comErrorCode_; |
||||
|
} |
||||
|
|
||||
|
public static final int LEFT_MOTOR_ERROR_CODE_FIELD_NUMBER = 2; |
||||
|
private int leftMotorErrorCode_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Left_Motor_Error_Code = 2;</code> |
||||
|
* @return The leftMotorErrorCode. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getLeftMotorErrorCode() { |
||||
|
return leftMotorErrorCode_; |
||||
|
} |
||||
|
|
||||
|
public static final int RIGHT_MOTOR_ERROR_CODE_FIELD_NUMBER = 3; |
||||
|
private int rightMotorErrorCode_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Right_Motor_Error_Code = 3;</code> |
||||
|
* @return The rightMotorErrorCode. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRightMotorErrorCode() { |
||||
|
return rightMotorErrorCode_; |
||||
|
} |
||||
|
|
||||
|
private byte memoizedIsInitialized = -1; |
||||
|
@java.lang.Override |
||||
|
public final boolean isInitialized() { |
||||
|
byte isInitialized = memoizedIsInitialized; |
||||
|
if (isInitialized == 1) return true; |
||||
|
if (isInitialized == 0) return false; |
||||
|
|
||||
|
memoizedIsInitialized = 1; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public void writeTo(com.google.protobuf.CodedOutputStream output) |
||||
|
throws java.io.IOException { |
||||
|
if (comErrorCode_ != 0) { |
||||
|
output.writeInt32(1, comErrorCode_); |
||||
|
} |
||||
|
if (leftMotorErrorCode_ != 0) { |
||||
|
output.writeInt32(2, leftMotorErrorCode_); |
||||
|
} |
||||
|
if (rightMotorErrorCode_ != 0) { |
||||
|
output.writeInt32(3, rightMotorErrorCode_); |
||||
|
} |
||||
|
getUnknownFields().writeTo(output); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public int getSerializedSize() { |
||||
|
int size = memoizedSize; |
||||
|
if (size != -1) return size; |
||||
|
|
||||
|
size = 0; |
||||
|
if (comErrorCode_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(1, comErrorCode_); |
||||
|
} |
||||
|
if (leftMotorErrorCode_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(2, leftMotorErrorCode_); |
||||
|
} |
||||
|
if (rightMotorErrorCode_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(3, rightMotorErrorCode_); |
||||
|
} |
||||
|
size += getUnknownFields().getSerializedSize(); |
||||
|
memoizedSize = size; |
||||
|
return size; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public boolean equals(final java.lang.Object obj) { |
||||
|
if (obj == this) { |
||||
|
return true; |
||||
|
} |
||||
|
if (!(obj instanceof com.example.removemarineanimals.models.BspError.ErrorData)) { |
||||
|
return super.equals(obj); |
||||
|
} |
||||
|
com.example.removemarineanimals.models.BspError.ErrorData other = (com.example.removemarineanimals.models.BspError.ErrorData) obj; |
||||
|
|
||||
|
if (getComErrorCode() |
||||
|
!= other.getComErrorCode()) return false; |
||||
|
if (getLeftMotorErrorCode() |
||||
|
!= other.getLeftMotorErrorCode()) return false; |
||||
|
if (getRightMotorErrorCode() |
||||
|
!= other.getRightMotorErrorCode()) return false; |
||||
|
if (!getUnknownFields().equals(other.getUnknownFields())) return false; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public int hashCode() { |
||||
|
if (memoizedHashCode != 0) { |
||||
|
return memoizedHashCode; |
||||
|
} |
||||
|
int hash = 41; |
||||
|
hash = (19 * hash) + getDescriptor().hashCode(); |
||||
|
hash = (37 * hash) + COM_ERROR_CODE_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getComErrorCode(); |
||||
|
hash = (37 * hash) + LEFT_MOTOR_ERROR_CODE_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getLeftMotorErrorCode(); |
||||
|
hash = (37 * hash) + RIGHT_MOTOR_ERROR_CODE_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRightMotorErrorCode(); |
||||
|
hash = (29 * hash) + getUnknownFields().hashCode(); |
||||
|
memoizedHashCode = hash; |
||||
|
return hash; |
||||
|
} |
||||
|
|
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom( |
||||
|
java.nio.ByteBuffer data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom( |
||||
|
java.nio.ByteBuffer data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom( |
||||
|
com.google.protobuf.ByteString data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom( |
||||
|
com.google.protobuf.ByteString data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom(byte[] data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom( |
||||
|
byte[] data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseDelimitedFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input); |
||||
|
} |
||||
|
|
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseDelimitedFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder newBuilderForType() { return newBuilder(); } |
||||
|
public static Builder newBuilder() { |
||||
|
return DEFAULT_INSTANCE.toBuilder(); |
||||
|
} |
||||
|
public static Builder newBuilder(com.example.removemarineanimals.models.BspError.ErrorData prototype) { |
||||
|
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); |
||||
|
} |
||||
|
@java.lang.Override |
||||
|
public Builder toBuilder() { |
||||
|
return this == DEFAULT_INSTANCE |
||||
|
? new Builder() : new Builder().mergeFrom(this); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected Builder newBuilderForType( |
||||
|
com.google.protobuf.GeneratedMessage.BuilderParent parent) { |
||||
|
Builder builder = new Builder(parent); |
||||
|
return builder; |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code ErrorData} |
||||
|
*/ |
||||
|
public static final class Builder extends |
||||
|
com.google.protobuf.GeneratedMessage.Builder<Builder> implements |
||||
|
// @@protoc_insertion_point(builder_implements:ErrorData)
|
||||
|
com.example.removemarineanimals.models.BspError.ErrorDataOrBuilder { |
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return com.example.removemarineanimals.models.BspError.internal_static_ErrorData_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return com.example.removemarineanimals.models.BspError.internal_static_ErrorData_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
com.example.removemarineanimals.models.BspError.ErrorData.class, com.example.removemarineanimals.models.BspError.ErrorData.Builder.class); |
||||
|
} |
||||
|
|
||||
|
// Construct using com.example.removemarineanimals.models.BspError.ErrorData.newBuilder()
|
||||
|
private Builder() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private Builder( |
||||
|
com.google.protobuf.GeneratedMessage.BuilderParent parent) { |
||||
|
super(parent); |
||||
|
|
||||
|
} |
||||
|
@java.lang.Override |
||||
|
public Builder clear() { |
||||
|
super.clear(); |
||||
|
bitField0_ = 0; |
||||
|
comErrorCode_ = 0; |
||||
|
leftMotorErrorCode_ = 0; |
||||
|
rightMotorErrorCode_ = 0; |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptorForType() { |
||||
|
return com.example.removemarineanimals.models.BspError.internal_static_ErrorData_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.example.removemarineanimals.models.BspError.ErrorData getDefaultInstanceForType() { |
||||
|
return com.example.removemarineanimals.models.BspError.ErrorData.getDefaultInstance(); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.example.removemarineanimals.models.BspError.ErrorData build() { |
||||
|
com.example.removemarineanimals.models.BspError.ErrorData result = buildPartial(); |
||||
|
if (!result.isInitialized()) { |
||||
|
throw newUninitializedMessageException(result); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.example.removemarineanimals.models.BspError.ErrorData buildPartial() { |
||||
|
com.example.removemarineanimals.models.BspError.ErrorData result = new com.example.removemarineanimals.models.BspError.ErrorData(this); |
||||
|
if (bitField0_ != 0) { buildPartial0(result); } |
||||
|
onBuilt(); |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
private void buildPartial0(com.example.removemarineanimals.models.BspError.ErrorData result) { |
||||
|
int from_bitField0_ = bitField0_; |
||||
|
if (((from_bitField0_ & 0x00000001) != 0)) { |
||||
|
result.comErrorCode_ = comErrorCode_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000002) != 0)) { |
||||
|
result.leftMotorErrorCode_ = leftMotorErrorCode_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000004) != 0)) { |
||||
|
result.rightMotorErrorCode_ = rightMotorErrorCode_; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder mergeFrom(com.google.protobuf.Message other) { |
||||
|
if (other instanceof com.example.removemarineanimals.models.BspError.ErrorData) { |
||||
|
return mergeFrom((com.example.removemarineanimals.models.BspError.ErrorData)other); |
||||
|
} else { |
||||
|
super.mergeFrom(other); |
||||
|
return this; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Builder mergeFrom(com.example.removemarineanimals.models.BspError.ErrorData other) { |
||||
|
if (other == com.example.removemarineanimals.models.BspError.ErrorData.getDefaultInstance()) return this; |
||||
|
if (other.getComErrorCode() != 0) { |
||||
|
setComErrorCode(other.getComErrorCode()); |
||||
|
} |
||||
|
if (other.getLeftMotorErrorCode() != 0) { |
||||
|
setLeftMotorErrorCode(other.getLeftMotorErrorCode()); |
||||
|
} |
||||
|
if (other.getRightMotorErrorCode() != 0) { |
||||
|
setRightMotorErrorCode(other.getRightMotorErrorCode()); |
||||
|
} |
||||
|
this.mergeUnknownFields(other.getUnknownFields()); |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public final boolean isInitialized() { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder mergeFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
if (extensionRegistry == null) { |
||||
|
throw new java.lang.NullPointerException(); |
||||
|
} |
||||
|
try { |
||||
|
boolean done = false; |
||||
|
while (!done) { |
||||
|
int tag = input.readTag(); |
||||
|
switch (tag) { |
||||
|
case 0: |
||||
|
done = true; |
||||
|
break; |
||||
|
case 8: { |
||||
|
comErrorCode_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000001; |
||||
|
break; |
||||
|
} // case 8
|
||||
|
case 16: { |
||||
|
leftMotorErrorCode_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000002; |
||||
|
break; |
||||
|
} // case 16
|
||||
|
case 24: { |
||||
|
rightMotorErrorCode_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000004; |
||||
|
break; |
||||
|
} // case 24
|
||||
|
default: { |
||||
|
if (!super.parseUnknownField(input, extensionRegistry, tag)) { |
||||
|
done = true; // was an endgroup tag
|
||||
|
} |
||||
|
break; |
||||
|
} // default:
|
||||
|
} // switch (tag)
|
||||
|
} // while (!done)
|
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.unwrapIOException(); |
||||
|
} finally { |
||||
|
onChanged(); |
||||
|
} // finally
|
||||
|
return this; |
||||
|
} |
||||
|
private int bitField0_; |
||||
|
|
||||
|
private int comErrorCode_ ; |
||||
|
/** |
||||
|
* <code>int32 Com_Error_Code = 1;</code> |
||||
|
* @return The comErrorCode. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getComErrorCode() { |
||||
|
return comErrorCode_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Com_Error_Code = 1;</code> |
||||
|
* @param value The comErrorCode to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setComErrorCode(int value) { |
||||
|
|
||||
|
comErrorCode_ = value; |
||||
|
bitField0_ |= 0x00000001; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Com_Error_Code = 1;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearComErrorCode() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000001); |
||||
|
comErrorCode_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int leftMotorErrorCode_ ; |
||||
|
/** |
||||
|
* <code>int32 Left_Motor_Error_Code = 2;</code> |
||||
|
* @return The leftMotorErrorCode. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getLeftMotorErrorCode() { |
||||
|
return leftMotorErrorCode_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Left_Motor_Error_Code = 2;</code> |
||||
|
* @param value The leftMotorErrorCode to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setLeftMotorErrorCode(int value) { |
||||
|
|
||||
|
leftMotorErrorCode_ = value; |
||||
|
bitField0_ |= 0x00000002; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Left_Motor_Error_Code = 2;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearLeftMotorErrorCode() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000002); |
||||
|
leftMotorErrorCode_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int rightMotorErrorCode_ ; |
||||
|
/** |
||||
|
* <code>int32 Right_Motor_Error_Code = 3;</code> |
||||
|
* @return The rightMotorErrorCode. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRightMotorErrorCode() { |
||||
|
return rightMotorErrorCode_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Right_Motor_Error_Code = 3;</code> |
||||
|
* @param value The rightMotorErrorCode to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRightMotorErrorCode(int value) { |
||||
|
|
||||
|
rightMotorErrorCode_ = value; |
||||
|
bitField0_ |= 0x00000004; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Right_Motor_Error_Code = 3;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRightMotorErrorCode() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000004); |
||||
|
rightMotorErrorCode_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(builder_scope:ErrorData)
|
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(class_scope:ErrorData)
|
||||
|
private static final com.example.removemarineanimals.models.BspError.ErrorData DEFAULT_INSTANCE; |
||||
|
static { |
||||
|
DEFAULT_INSTANCE = new com.example.removemarineanimals.models.BspError.ErrorData(); |
||||
|
} |
||||
|
|
||||
|
public static com.example.removemarineanimals.models.BspError.ErrorData getDefaultInstance() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Parser<ErrorData> |
||||
|
PARSER = new com.google.protobuf.AbstractParser<ErrorData>() { |
||||
|
@java.lang.Override |
||||
|
public ErrorData parsePartialFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
Builder builder = newBuilder(); |
||||
|
try { |
||||
|
builder.mergeFrom(input, extensionRegistry); |
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (com.google.protobuf.UninitializedMessageException e) { |
||||
|
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (java.io.IOException e) { |
||||
|
throw new com.google.protobuf.InvalidProtocolBufferException(e) |
||||
|
.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} |
||||
|
return builder.buildPartial(); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
public static com.google.protobuf.Parser<ErrorData> parser() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.google.protobuf.Parser<ErrorData> getParserForType() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.example.removemarineanimals.models.BspError.ErrorData getDefaultInstanceForType() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Descriptors.Descriptor |
||||
|
internal_static_ErrorData_descriptor; |
||||
|
private static final |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internal_static_ErrorData_fieldAccessorTable; |
||||
|
|
||||
|
public static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
getDescriptor() { |
||||
|
return descriptor; |
||||
|
} |
||||
|
private static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
descriptor; |
||||
|
static { |
||||
|
java.lang.String[] descriptorData = { |
||||
|
"\n\017bsp_Error.proto\"b\n\tErrorData\022\026\n\016Com_Er" + |
||||
|
"ror_Code\030\001 \001(\005\022\035\n\025Left_Motor_Error_Code\030" + |
||||
|
"\002 \001(\005\022\036\n\026Right_Motor_Error_Code\030\003 \001(\005*z\n" + |
||||
|
"\010ComError\022\r\n\tMK32_SBus\020\000\022\n\n\006TL720D\020\001\022\020\n\014" + |
||||
|
"Force_sensor\020\002\022\020\n\014ZQ_LeftMotor\020\003\022\021\n\rZQ_R" + |
||||
|
"ightMotor\020\004\022\013\n\007DMAKE_1\020\005\022\017\n\013MK32_Serial\020" + |
||||
|
"\006B*\n&com.example.removemarineanimals.mod" + |
||||
|
"elsP\000b\006proto3" |
||||
|
}; |
||||
|
descriptor = com.google.protobuf.Descriptors.FileDescriptor |
||||
|
.internalBuildGeneratedFileFrom(descriptorData, |
||||
|
new com.google.protobuf.Descriptors.FileDescriptor[] { |
||||
|
}); |
||||
|
internal_static_ErrorData_descriptor = |
||||
|
getDescriptor().getMessageTypes().get(0); |
||||
|
internal_static_ErrorData_fieldAccessorTable = new |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable( |
||||
|
internal_static_ErrorData_descriptor, |
||||
|
new java.lang.String[] { "ComErrorCode", "LeftMotorErrorCode", "RightMotorErrorCode", }); |
||||
|
descriptor.resolveAllFeaturesImmutable(); |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(outer_class_scope)
|
||||
|
} |
||||
File diff suppressed because it is too large
@ -0,0 +1,789 @@ |
|||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
|
// NO CHECKED-IN PROTOBUF GENCODE
|
||||
|
// source: bsp_PV.proto
|
||||
|
// Protobuf Java Version: 4.27.2
|
||||
|
|
||||
|
package com.example.removemarineanimals.models; |
||||
|
|
||||
|
public final class BspPV { |
||||
|
private BspPV() {} |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
BspPV.class.getName()); |
||||
|
} |
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistryLite registry) { |
||||
|
} |
||||
|
|
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistry registry) { |
||||
|
registerAllExtensions( |
||||
|
(com.google.protobuf.ExtensionRegistryLite) registry); |
||||
|
} |
||||
|
public interface PV_struct_defineOrBuilder extends |
||||
|
// @@protoc_insertion_point(interface_extends:PV_struct_define)
|
||||
|
com.google.protobuf.MessageOrBuilder { |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Robot_ChgLength = 1;</code> |
||||
|
* @return The robotChgLength. |
||||
|
*/ |
||||
|
int getRobotChgLength(); |
||||
|
|
||||
|
/** |
||||
|
* <code>double Robot_AutoSpeedBase = 2;</code> |
||||
|
* @return The robotAutoSpeedBase. |
||||
|
*/ |
||||
|
double getRobotAutoSpeedBase(); |
||||
|
|
||||
|
/** |
||||
|
* <code>double Robot_ManualSpeedBase = 3;</code> |
||||
|
* @return The robotManualSpeedBase. |
||||
|
*/ |
||||
|
double getRobotManualSpeedBase(); |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Robot_LaneChange_Direction = 4;</code> |
||||
|
* @return The robotLaneChangeDirection. |
||||
|
*/ |
||||
|
int getRobotLaneChangeDirection(); |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Robot_Force = 5;</code> |
||||
|
* @return The robotForce. |
||||
|
*/ |
||||
|
int getRobotForce(); |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code PV_struct_define} |
||||
|
*/ |
||||
|
public static final class PV_struct_define extends |
||||
|
com.google.protobuf.GeneratedMessage implements |
||||
|
// @@protoc_insertion_point(message_implements:PV_struct_define)
|
||||
|
PV_struct_defineOrBuilder { |
||||
|
private static final long serialVersionUID = 0L; |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
PV_struct_define.class.getName()); |
||||
|
} |
||||
|
// Use PV_struct_define.newBuilder() to construct.
|
||||
|
private PV_struct_define(com.google.protobuf.GeneratedMessage.Builder<?> builder) { |
||||
|
super(builder); |
||||
|
} |
||||
|
private PV_struct_define() { |
||||
|
} |
||||
|
|
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return com.example.removemarineanimals.models.BspPV.internal_static_PV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return com.example.removemarineanimals.models.BspPV.internal_static_PV_struct_define_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
com.example.removemarineanimals.models.BspPV.PV_struct_define.class, com.example.removemarineanimals.models.BspPV.PV_struct_define.Builder.class); |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_CHGLENGTH_FIELD_NUMBER = 1; |
||||
|
private int robotChgLength_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Robot_ChgLength = 1;</code> |
||||
|
* @return The robotChgLength. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotChgLength() { |
||||
|
return robotChgLength_; |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_AUTOSPEEDBASE_FIELD_NUMBER = 2; |
||||
|
private double robotAutoSpeedBase_ = 0D; |
||||
|
/** |
||||
|
* <code>double Robot_AutoSpeedBase = 2;</code> |
||||
|
* @return The robotAutoSpeedBase. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public double getRobotAutoSpeedBase() { |
||||
|
return robotAutoSpeedBase_; |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_MANUALSPEEDBASE_FIELD_NUMBER = 3; |
||||
|
private double robotManualSpeedBase_ = 0D; |
||||
|
/** |
||||
|
* <code>double Robot_ManualSpeedBase = 3;</code> |
||||
|
* @return The robotManualSpeedBase. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public double getRobotManualSpeedBase() { |
||||
|
return robotManualSpeedBase_; |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_LANECHANGE_DIRECTION_FIELD_NUMBER = 4; |
||||
|
private int robotLaneChangeDirection_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Robot_LaneChange_Direction = 4;</code> |
||||
|
* @return The robotLaneChangeDirection. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotLaneChangeDirection() { |
||||
|
return robotLaneChangeDirection_; |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_FORCE_FIELD_NUMBER = 5; |
||||
|
private int robotForce_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Robot_Force = 5;</code> |
||||
|
* @return The robotForce. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotForce() { |
||||
|
return robotForce_; |
||||
|
} |
||||
|
|
||||
|
private byte memoizedIsInitialized = -1; |
||||
|
@java.lang.Override |
||||
|
public final boolean isInitialized() { |
||||
|
byte isInitialized = memoizedIsInitialized; |
||||
|
if (isInitialized == 1) return true; |
||||
|
if (isInitialized == 0) return false; |
||||
|
|
||||
|
memoizedIsInitialized = 1; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public void writeTo(com.google.protobuf.CodedOutputStream output) |
||||
|
throws java.io.IOException { |
||||
|
if (robotChgLength_ != 0) { |
||||
|
output.writeInt32(1, robotChgLength_); |
||||
|
} |
||||
|
if (java.lang.Double.doubleToRawLongBits(robotAutoSpeedBase_) != 0) { |
||||
|
output.writeDouble(2, robotAutoSpeedBase_); |
||||
|
} |
||||
|
if (java.lang.Double.doubleToRawLongBits(robotManualSpeedBase_) != 0) { |
||||
|
output.writeDouble(3, robotManualSpeedBase_); |
||||
|
} |
||||
|
if (robotLaneChangeDirection_ != 0) { |
||||
|
output.writeInt32(4, robotLaneChangeDirection_); |
||||
|
} |
||||
|
if (robotForce_ != 0) { |
||||
|
output.writeInt32(5, robotForce_); |
||||
|
} |
||||
|
getUnknownFields().writeTo(output); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public int getSerializedSize() { |
||||
|
int size = memoizedSize; |
||||
|
if (size != -1) return size; |
||||
|
|
||||
|
size = 0; |
||||
|
if (robotChgLength_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(1, robotChgLength_); |
||||
|
} |
||||
|
if (java.lang.Double.doubleToRawLongBits(robotAutoSpeedBase_) != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeDoubleSize(2, robotAutoSpeedBase_); |
||||
|
} |
||||
|
if (java.lang.Double.doubleToRawLongBits(robotManualSpeedBase_) != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeDoubleSize(3, robotManualSpeedBase_); |
||||
|
} |
||||
|
if (robotLaneChangeDirection_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(4, robotLaneChangeDirection_); |
||||
|
} |
||||
|
if (robotForce_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(5, robotForce_); |
||||
|
} |
||||
|
size += getUnknownFields().getSerializedSize(); |
||||
|
memoizedSize = size; |
||||
|
return size; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public boolean equals(final java.lang.Object obj) { |
||||
|
if (obj == this) { |
||||
|
return true; |
||||
|
} |
||||
|
if (!(obj instanceof com.example.removemarineanimals.models.BspPV.PV_struct_define)) { |
||||
|
return super.equals(obj); |
||||
|
} |
||||
|
com.example.removemarineanimals.models.BspPV.PV_struct_define other = (com.example.removemarineanimals.models.BspPV.PV_struct_define) obj; |
||||
|
|
||||
|
if (getRobotChgLength() |
||||
|
!= other.getRobotChgLength()) return false; |
||||
|
if (java.lang.Double.doubleToLongBits(getRobotAutoSpeedBase()) |
||||
|
!= java.lang.Double.doubleToLongBits( |
||||
|
other.getRobotAutoSpeedBase())) return false; |
||||
|
if (java.lang.Double.doubleToLongBits(getRobotManualSpeedBase()) |
||||
|
!= java.lang.Double.doubleToLongBits( |
||||
|
other.getRobotManualSpeedBase())) return false; |
||||
|
if (getRobotLaneChangeDirection() |
||||
|
!= other.getRobotLaneChangeDirection()) return false; |
||||
|
if (getRobotForce() |
||||
|
!= other.getRobotForce()) return false; |
||||
|
if (!getUnknownFields().equals(other.getUnknownFields())) return false; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public int hashCode() { |
||||
|
if (memoizedHashCode != 0) { |
||||
|
return memoizedHashCode; |
||||
|
} |
||||
|
int hash = 41; |
||||
|
hash = (19 * hash) + getDescriptor().hashCode(); |
||||
|
hash = (37 * hash) + ROBOT_CHGLENGTH_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotChgLength(); |
||||
|
hash = (37 * hash) + ROBOT_AUTOSPEEDBASE_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + com.google.protobuf.Internal.hashLong( |
||||
|
java.lang.Double.doubleToLongBits(getRobotAutoSpeedBase())); |
||||
|
hash = (37 * hash) + ROBOT_MANUALSPEEDBASE_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + com.google.protobuf.Internal.hashLong( |
||||
|
java.lang.Double.doubleToLongBits(getRobotManualSpeedBase())); |
||||
|
hash = (37 * hash) + ROBOT_LANECHANGE_DIRECTION_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotLaneChangeDirection(); |
||||
|
hash = (37 * hash) + ROBOT_FORCE_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotForce(); |
||||
|
hash = (29 * hash) + getUnknownFields().hashCode(); |
||||
|
memoizedHashCode = hash; |
||||
|
return hash; |
||||
|
} |
||||
|
|
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom( |
||||
|
java.nio.ByteBuffer data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom( |
||||
|
java.nio.ByteBuffer data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom( |
||||
|
com.google.protobuf.ByteString data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom( |
||||
|
com.google.protobuf.ByteString data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom(byte[] data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom( |
||||
|
byte[] data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseDelimitedFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input); |
||||
|
} |
||||
|
|
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseDelimitedFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder newBuilderForType() { return newBuilder(); } |
||||
|
public static Builder newBuilder() { |
||||
|
return DEFAULT_INSTANCE.toBuilder(); |
||||
|
} |
||||
|
public static Builder newBuilder(com.example.removemarineanimals.models.BspPV.PV_struct_define prototype) { |
||||
|
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); |
||||
|
} |
||||
|
@java.lang.Override |
||||
|
public Builder toBuilder() { |
||||
|
return this == DEFAULT_INSTANCE |
||||
|
? new Builder() : new Builder().mergeFrom(this); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected Builder newBuilderForType( |
||||
|
com.google.protobuf.GeneratedMessage.BuilderParent parent) { |
||||
|
Builder builder = new Builder(parent); |
||||
|
return builder; |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code PV_struct_define} |
||||
|
*/ |
||||
|
public static final class Builder extends |
||||
|
com.google.protobuf.GeneratedMessage.Builder<Builder> implements |
||||
|
// @@protoc_insertion_point(builder_implements:PV_struct_define)
|
||||
|
com.example.removemarineanimals.models.BspPV.PV_struct_defineOrBuilder { |
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return com.example.removemarineanimals.models.BspPV.internal_static_PV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return com.example.removemarineanimals.models.BspPV.internal_static_PV_struct_define_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
com.example.removemarineanimals.models.BspPV.PV_struct_define.class, com.example.removemarineanimals.models.BspPV.PV_struct_define.Builder.class); |
||||
|
} |
||||
|
|
||||
|
// Construct using com.example.removemarineanimals.models.BspPV.PV_struct_define.newBuilder()
|
||||
|
private Builder() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private Builder( |
||||
|
com.google.protobuf.GeneratedMessage.BuilderParent parent) { |
||||
|
super(parent); |
||||
|
|
||||
|
} |
||||
|
@java.lang.Override |
||||
|
public Builder clear() { |
||||
|
super.clear(); |
||||
|
bitField0_ = 0; |
||||
|
robotChgLength_ = 0; |
||||
|
robotAutoSpeedBase_ = 0D; |
||||
|
robotManualSpeedBase_ = 0D; |
||||
|
robotLaneChangeDirection_ = 0; |
||||
|
robotForce_ = 0; |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptorForType() { |
||||
|
return com.example.removemarineanimals.models.BspPV.internal_static_PV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.example.removemarineanimals.models.BspPV.PV_struct_define getDefaultInstanceForType() { |
||||
|
return com.example.removemarineanimals.models.BspPV.PV_struct_define.getDefaultInstance(); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.example.removemarineanimals.models.BspPV.PV_struct_define build() { |
||||
|
com.example.removemarineanimals.models.BspPV.PV_struct_define result = buildPartial(); |
||||
|
if (!result.isInitialized()) { |
||||
|
throw newUninitializedMessageException(result); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.example.removemarineanimals.models.BspPV.PV_struct_define buildPartial() { |
||||
|
com.example.removemarineanimals.models.BspPV.PV_struct_define result = new com.example.removemarineanimals.models.BspPV.PV_struct_define(this); |
||||
|
if (bitField0_ != 0) { buildPartial0(result); } |
||||
|
onBuilt(); |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
private void buildPartial0(com.example.removemarineanimals.models.BspPV.PV_struct_define result) { |
||||
|
int from_bitField0_ = bitField0_; |
||||
|
if (((from_bitField0_ & 0x00000001) != 0)) { |
||||
|
result.robotChgLength_ = robotChgLength_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000002) != 0)) { |
||||
|
result.robotAutoSpeedBase_ = robotAutoSpeedBase_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000004) != 0)) { |
||||
|
result.robotManualSpeedBase_ = robotManualSpeedBase_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000008) != 0)) { |
||||
|
result.robotLaneChangeDirection_ = robotLaneChangeDirection_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000010) != 0)) { |
||||
|
result.robotForce_ = robotForce_; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder mergeFrom(com.google.protobuf.Message other) { |
||||
|
if (other instanceof com.example.removemarineanimals.models.BspPV.PV_struct_define) { |
||||
|
return mergeFrom((com.example.removemarineanimals.models.BspPV.PV_struct_define)other); |
||||
|
} else { |
||||
|
super.mergeFrom(other); |
||||
|
return this; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Builder mergeFrom(com.example.removemarineanimals.models.BspPV.PV_struct_define other) { |
||||
|
if (other == com.example.removemarineanimals.models.BspPV.PV_struct_define.getDefaultInstance()) return this; |
||||
|
if (other.getRobotChgLength() != 0) { |
||||
|
setRobotChgLength(other.getRobotChgLength()); |
||||
|
} |
||||
|
if (other.getRobotAutoSpeedBase() != 0D) { |
||||
|
setRobotAutoSpeedBase(other.getRobotAutoSpeedBase()); |
||||
|
} |
||||
|
if (other.getRobotManualSpeedBase() != 0D) { |
||||
|
setRobotManualSpeedBase(other.getRobotManualSpeedBase()); |
||||
|
} |
||||
|
if (other.getRobotLaneChangeDirection() != 0) { |
||||
|
setRobotLaneChangeDirection(other.getRobotLaneChangeDirection()); |
||||
|
} |
||||
|
if (other.getRobotForce() != 0) { |
||||
|
setRobotForce(other.getRobotForce()); |
||||
|
} |
||||
|
this.mergeUnknownFields(other.getUnknownFields()); |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public final boolean isInitialized() { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder mergeFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
if (extensionRegistry == null) { |
||||
|
throw new java.lang.NullPointerException(); |
||||
|
} |
||||
|
try { |
||||
|
boolean done = false; |
||||
|
while (!done) { |
||||
|
int tag = input.readTag(); |
||||
|
switch (tag) { |
||||
|
case 0: |
||||
|
done = true; |
||||
|
break; |
||||
|
case 8: { |
||||
|
robotChgLength_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000001; |
||||
|
break; |
||||
|
} // case 8
|
||||
|
case 17: { |
||||
|
robotAutoSpeedBase_ = input.readDouble(); |
||||
|
bitField0_ |= 0x00000002; |
||||
|
break; |
||||
|
} // case 17
|
||||
|
case 25: { |
||||
|
robotManualSpeedBase_ = input.readDouble(); |
||||
|
bitField0_ |= 0x00000004; |
||||
|
break; |
||||
|
} // case 25
|
||||
|
case 32: { |
||||
|
robotLaneChangeDirection_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000008; |
||||
|
break; |
||||
|
} // case 32
|
||||
|
case 40: { |
||||
|
robotForce_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000010; |
||||
|
break; |
||||
|
} // case 40
|
||||
|
default: { |
||||
|
if (!super.parseUnknownField(input, extensionRegistry, tag)) { |
||||
|
done = true; // was an endgroup tag
|
||||
|
} |
||||
|
break; |
||||
|
} // default:
|
||||
|
} // switch (tag)
|
||||
|
} // while (!done)
|
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.unwrapIOException(); |
||||
|
} finally { |
||||
|
onChanged(); |
||||
|
} // finally
|
||||
|
return this; |
||||
|
} |
||||
|
private int bitField0_; |
||||
|
|
||||
|
private int robotChgLength_ ; |
||||
|
/** |
||||
|
* <code>int32 Robot_ChgLength = 1;</code> |
||||
|
* @return The robotChgLength. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotChgLength() { |
||||
|
return robotChgLength_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_ChgLength = 1;</code> |
||||
|
* @param value The robotChgLength to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotChgLength(int value) { |
||||
|
|
||||
|
robotChgLength_ = value; |
||||
|
bitField0_ |= 0x00000001; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_ChgLength = 1;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotChgLength() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000001); |
||||
|
robotChgLength_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private double robotAutoSpeedBase_ ; |
||||
|
/** |
||||
|
* <code>double Robot_AutoSpeedBase = 2;</code> |
||||
|
* @return The robotAutoSpeedBase. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public double getRobotAutoSpeedBase() { |
||||
|
return robotAutoSpeedBase_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>double Robot_AutoSpeedBase = 2;</code> |
||||
|
* @param value The robotAutoSpeedBase to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotAutoSpeedBase(double value) { |
||||
|
|
||||
|
robotAutoSpeedBase_ = value; |
||||
|
bitField0_ |= 0x00000002; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>double Robot_AutoSpeedBase = 2;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotAutoSpeedBase() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000002); |
||||
|
robotAutoSpeedBase_ = 0D; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private double robotManualSpeedBase_ ; |
||||
|
/** |
||||
|
* <code>double Robot_ManualSpeedBase = 3;</code> |
||||
|
* @return The robotManualSpeedBase. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public double getRobotManualSpeedBase() { |
||||
|
return robotManualSpeedBase_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>double Robot_ManualSpeedBase = 3;</code> |
||||
|
* @param value The robotManualSpeedBase to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotManualSpeedBase(double value) { |
||||
|
|
||||
|
robotManualSpeedBase_ = value; |
||||
|
bitField0_ |= 0x00000004; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>double Robot_ManualSpeedBase = 3;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotManualSpeedBase() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000004); |
||||
|
robotManualSpeedBase_ = 0D; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int robotLaneChangeDirection_ ; |
||||
|
/** |
||||
|
* <code>int32 Robot_LaneChange_Direction = 4;</code> |
||||
|
* @return The robotLaneChangeDirection. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotLaneChangeDirection() { |
||||
|
return robotLaneChangeDirection_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_LaneChange_Direction = 4;</code> |
||||
|
* @param value The robotLaneChangeDirection to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotLaneChangeDirection(int value) { |
||||
|
|
||||
|
robotLaneChangeDirection_ = value; |
||||
|
bitField0_ |= 0x00000008; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_LaneChange_Direction = 4;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotLaneChangeDirection() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000008); |
||||
|
robotLaneChangeDirection_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int robotForce_ ; |
||||
|
/** |
||||
|
* <code>int32 Robot_Force = 5;</code> |
||||
|
* @return The robotForce. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotForce() { |
||||
|
return robotForce_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Force = 5;</code> |
||||
|
* @param value The robotForce to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotForce(int value) { |
||||
|
|
||||
|
robotForce_ = value; |
||||
|
bitField0_ |= 0x00000010; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Force = 5;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotForce() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000010); |
||||
|
robotForce_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(builder_scope:PV_struct_define)
|
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(class_scope:PV_struct_define)
|
||||
|
private static final com.example.removemarineanimals.models.BspPV.PV_struct_define DEFAULT_INSTANCE; |
||||
|
static { |
||||
|
DEFAULT_INSTANCE = new com.example.removemarineanimals.models.BspPV.PV_struct_define(); |
||||
|
} |
||||
|
|
||||
|
public static com.example.removemarineanimals.models.BspPV.PV_struct_define getDefaultInstance() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Parser<PV_struct_define> |
||||
|
PARSER = new com.google.protobuf.AbstractParser<PV_struct_define>() { |
||||
|
@java.lang.Override |
||||
|
public PV_struct_define parsePartialFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
Builder builder = newBuilder(); |
||||
|
try { |
||||
|
builder.mergeFrom(input, extensionRegistry); |
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (com.google.protobuf.UninitializedMessageException e) { |
||||
|
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (java.io.IOException e) { |
||||
|
throw new com.google.protobuf.InvalidProtocolBufferException(e) |
||||
|
.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} |
||||
|
return builder.buildPartial(); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
public static com.google.protobuf.Parser<PV_struct_define> parser() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.google.protobuf.Parser<PV_struct_define> getParserForType() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.example.removemarineanimals.models.BspPV.PV_struct_define getDefaultInstanceForType() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Descriptors.Descriptor |
||||
|
internal_static_PV_struct_define_descriptor; |
||||
|
private static final |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internal_static_PV_struct_define_fieldAccessorTable; |
||||
|
|
||||
|
public static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
getDescriptor() { |
||||
|
return descriptor; |
||||
|
} |
||||
|
private static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
descriptor; |
||||
|
static { |
||||
|
java.lang.String[] descriptorData = { |
||||
|
"\n\014bsp_PV.proto\"\240\001\n\020PV_struct_define\022\027\n\017R" + |
||||
|
"obot_ChgLength\030\001 \001(\005\022\033\n\023Robot_AutoSpeedB" + |
||||
|
"ase\030\002 \001(\001\022\035\n\025Robot_ManualSpeedBase\030\003 \001(\001" + |
||||
|
"\022\"\n\032Robot_LaneChange_Direction\030\004 \001(\005\022\023\n\013" + |
||||
|
"Robot_Force\030\005 \001(\005B*\n&com.example.removem" + |
||||
|
"arineanimals.modelsP\000b\006proto3" |
||||
|
}; |
||||
|
descriptor = com.google.protobuf.Descriptors.FileDescriptor |
||||
|
.internalBuildGeneratedFileFrom(descriptorData, |
||||
|
new com.google.protobuf.Descriptors.FileDescriptor[] { |
||||
|
}); |
||||
|
internal_static_PV_struct_define_descriptor = |
||||
|
getDescriptor().getMessageTypes().get(0); |
||||
|
internal_static_PV_struct_define_fieldAccessorTable = new |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable( |
||||
|
internal_static_PV_struct_define_descriptor, |
||||
|
new java.lang.String[] { "RobotChgLength", "RobotAutoSpeedBase", "RobotManualSpeedBase", "RobotLaneChangeDirection", "RobotForce", }); |
||||
|
descriptor.resolveAllFeaturesImmutable(); |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(outer_class_scope)
|
||||
|
} |
||||
@ -0,0 +1,792 @@ |
|||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
|
// NO CHECKED-IN PROTOBUF GENCODE
|
||||
|
// source: robot_data.proto
|
||||
|
// Protobuf Java Version: 4.27.2
|
||||
|
|
||||
|
package com.example.removemarineanimals.models; |
||||
|
|
||||
|
public final class RobotData { |
||||
|
private RobotData() {} |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
RobotData.class.getName()); |
||||
|
} |
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistryLite registry) { |
||||
|
} |
||||
|
|
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistry registry) { |
||||
|
registerAllExtensions( |
||||
|
(com.google.protobuf.ExtensionRegistryLite) registry); |
||||
|
} |
||||
|
public interface DataTransOrBuilder extends |
||||
|
// @@protoc_insertion_point(interface_extends:DataTrans)
|
||||
|
com.google.protobuf.MessageOrBuilder { |
||||
|
|
||||
|
/** |
||||
|
* <pre> |
||||
|
* 横滚角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Roll = 1;</code> |
||||
|
* @return The rFAngleRoll. |
||||
|
*/ |
||||
|
int getRFAngleRoll(); |
||||
|
|
||||
|
/** |
||||
|
* <pre> |
||||
|
* 俯仰角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Pitch = 2;</code> |
||||
|
* @return The rFAnglePitch. |
||||
|
*/ |
||||
|
int getRFAnglePitch(); |
||||
|
|
||||
|
/** |
||||
|
* <pre> |
||||
|
* 航向角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Yaw = 3;</code> |
||||
|
* @return The rFAngleYaw. |
||||
|
*/ |
||||
|
int getRFAngleYaw(); |
||||
|
|
||||
|
/** |
||||
|
* <pre> |
||||
|
* 海洋深度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Depth = 4;</code> |
||||
|
* @return The rFDepth. |
||||
|
*/ |
||||
|
int getRFDepth(); |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code DataTrans} |
||||
|
*/ |
||||
|
public static final class DataTrans extends |
||||
|
com.google.protobuf.GeneratedMessage implements |
||||
|
// @@protoc_insertion_point(message_implements:DataTrans)
|
||||
|
DataTransOrBuilder { |
||||
|
private static final long serialVersionUID = 0L; |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
DataTrans.class.getName()); |
||||
|
} |
||||
|
// Use DataTrans.newBuilder() to construct.
|
||||
|
private DataTrans(com.google.protobuf.GeneratedMessage.Builder<?> builder) { |
||||
|
super(builder); |
||||
|
} |
||||
|
private DataTrans() { |
||||
|
} |
||||
|
|
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return RobotData.internal_static_DataTrans_descriptor; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
protected FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return RobotData.internal_static_DataTrans_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
DataTrans.class, Builder.class); |
||||
|
} |
||||
|
|
||||
|
public static final int RF_ANGLE_ROLL_FIELD_NUMBER = 1; |
||||
|
private int rFAngleRoll_ = 0; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 横滚角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Roll = 1;</code> |
||||
|
* @return The rFAngleRoll. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRFAngleRoll() { |
||||
|
return rFAngleRoll_; |
||||
|
} |
||||
|
|
||||
|
public static final int RF_ANGLE_PITCH_FIELD_NUMBER = 2; |
||||
|
private int rFAnglePitch_ = 0; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 俯仰角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Pitch = 2;</code> |
||||
|
* @return The rFAnglePitch. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRFAnglePitch() { |
||||
|
return rFAnglePitch_; |
||||
|
} |
||||
|
|
||||
|
public static final int RF_ANGLE_YAW_FIELD_NUMBER = 3; |
||||
|
private int rFAngleYaw_ = 0; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 航向角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Yaw = 3;</code> |
||||
|
* @return The rFAngleYaw. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRFAngleYaw() { |
||||
|
return rFAngleYaw_; |
||||
|
} |
||||
|
|
||||
|
public static final int RF_DEPTH_FIELD_NUMBER = 4; |
||||
|
private int rFDepth_ = 0; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 海洋深度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Depth = 4;</code> |
||||
|
* @return The rFDepth. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRFDepth() { |
||||
|
return rFDepth_; |
||||
|
} |
||||
|
|
||||
|
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 (rFAngleRoll_ != 0) { |
||||
|
output.writeInt32(1, rFAngleRoll_); |
||||
|
} |
||||
|
if (rFAnglePitch_ != 0) { |
||||
|
output.writeInt32(2, rFAnglePitch_); |
||||
|
} |
||||
|
if (rFAngleYaw_ != 0) { |
||||
|
output.writeInt32(3, rFAngleYaw_); |
||||
|
} |
||||
|
if (rFDepth_ != 0) { |
||||
|
output.writeInt32(4, rFDepth_); |
||||
|
} |
||||
|
getUnknownFields().writeTo(output); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int getSerializedSize() { |
||||
|
int size = memoizedSize; |
||||
|
if (size != -1) return size; |
||||
|
|
||||
|
size = 0; |
||||
|
if (rFAngleRoll_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(1, rFAngleRoll_); |
||||
|
} |
||||
|
if (rFAnglePitch_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(2, rFAnglePitch_); |
||||
|
} |
||||
|
if (rFAngleYaw_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(3, rFAngleYaw_); |
||||
|
} |
||||
|
if (rFDepth_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(4, rFDepth_); |
||||
|
} |
||||
|
size += getUnknownFields().getSerializedSize(); |
||||
|
memoizedSize = size; |
||||
|
return size; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public boolean equals(final Object obj) { |
||||
|
if (obj == this) { |
||||
|
return true; |
||||
|
} |
||||
|
if (!(obj instanceof DataTrans)) { |
||||
|
return super.equals(obj); |
||||
|
} |
||||
|
DataTrans other = (DataTrans) obj; |
||||
|
|
||||
|
if (getRFAngleRoll() |
||||
|
!= other.getRFAngleRoll()) return false; |
||||
|
if (getRFAnglePitch() |
||||
|
!= other.getRFAnglePitch()) return false; |
||||
|
if (getRFAngleYaw() |
||||
|
!= other.getRFAngleYaw()) return false; |
||||
|
if (getRFDepth() |
||||
|
!= other.getRFDepth()) return false; |
||||
|
if (!getUnknownFields().equals(other.getUnknownFields())) return false; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int hashCode() { |
||||
|
if (memoizedHashCode != 0) { |
||||
|
return memoizedHashCode; |
||||
|
} |
||||
|
int hash = 41; |
||||
|
hash = (19 * hash) + getDescriptor().hashCode(); |
||||
|
hash = (37 * hash) + RF_ANGLE_ROLL_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRFAngleRoll(); |
||||
|
hash = (37 * hash) + RF_ANGLE_PITCH_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRFAnglePitch(); |
||||
|
hash = (37 * hash) + RF_ANGLE_YAW_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRFAngleYaw(); |
||||
|
hash = (37 * hash) + RF_DEPTH_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRFDepth(); |
||||
|
hash = (29 * hash) + getUnknownFields().hashCode(); |
||||
|
memoizedHashCode = hash; |
||||
|
return hash; |
||||
|
} |
||||
|
|
||||
|
public static DataTrans parseFrom( |
||||
|
java.nio.ByteBuffer data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static DataTrans parseFrom( |
||||
|
java.nio.ByteBuffer data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static DataTrans parseFrom( |
||||
|
com.google.protobuf.ByteString data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static DataTrans parseFrom( |
||||
|
com.google.protobuf.ByteString data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static DataTrans parseFrom(byte[] data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static DataTrans parseFrom( |
||||
|
byte[] data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static DataTrans parseFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static DataTrans parseFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
public static DataTrans parseDelimitedFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input); |
||||
|
} |
||||
|
|
||||
|
public static DataTrans parseDelimitedFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
public static DataTrans parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static DataTrans parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Builder newBuilderForType() { return newBuilder(); } |
||||
|
public static Builder newBuilder() { |
||||
|
return DEFAULT_INSTANCE.toBuilder(); |
||||
|
} |
||||
|
public static Builder newBuilder(DataTrans 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 DataTrans} |
||||
|
*/ |
||||
|
public static final class Builder extends |
||||
|
com.google.protobuf.GeneratedMessage.Builder<Builder> implements |
||||
|
// @@protoc_insertion_point(builder_implements:DataTrans)
|
||||
|
DataTransOrBuilder { |
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return RobotData.internal_static_DataTrans_descriptor; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
protected FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return RobotData.internal_static_DataTrans_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
DataTrans.class, Builder.class); |
||||
|
} |
||||
|
|
||||
|
// Construct using com.example.removemarineanimals.models.RobotData.DataTrans.newBuilder()
|
||||
|
private Builder() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private Builder( |
||||
|
BuilderParent parent) { |
||||
|
super(parent); |
||||
|
|
||||
|
} |
||||
|
@Override |
||||
|
public Builder clear() { |
||||
|
super.clear(); |
||||
|
bitField0_ = 0; |
||||
|
rFAngleRoll_ = 0; |
||||
|
rFAnglePitch_ = 0; |
||||
|
rFAngleYaw_ = 0; |
||||
|
rFDepth_ = 0; |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptorForType() { |
||||
|
return RobotData.internal_static_DataTrans_descriptor; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DataTrans getDefaultInstanceForType() { |
||||
|
return DataTrans.getDefaultInstance(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DataTrans build() { |
||||
|
DataTrans result = buildPartial(); |
||||
|
if (!result.isInitialized()) { |
||||
|
throw newUninitializedMessageException(result); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DataTrans buildPartial() { |
||||
|
DataTrans result = new DataTrans(this); |
||||
|
if (bitField0_ != 0) { buildPartial0(result); } |
||||
|
onBuilt(); |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
private void buildPartial0(DataTrans result) { |
||||
|
int from_bitField0_ = bitField0_; |
||||
|
if (((from_bitField0_ & 0x00000001) != 0)) { |
||||
|
result.rFAngleRoll_ = rFAngleRoll_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000002) != 0)) { |
||||
|
result.rFAnglePitch_ = rFAnglePitch_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000004) != 0)) { |
||||
|
result.rFAngleYaw_ = rFAngleYaw_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000008) != 0)) { |
||||
|
result.rFDepth_ = rFDepth_; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Builder mergeFrom(com.google.protobuf.Message other) { |
||||
|
if (other instanceof DataTrans) { |
||||
|
return mergeFrom((DataTrans)other); |
||||
|
} else { |
||||
|
super.mergeFrom(other); |
||||
|
return this; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Builder mergeFrom(DataTrans other) { |
||||
|
if (other == DataTrans.getDefaultInstance()) return this; |
||||
|
if (other.getRFAngleRoll() != 0) { |
||||
|
setRFAngleRoll(other.getRFAngleRoll()); |
||||
|
} |
||||
|
if (other.getRFAnglePitch() != 0) { |
||||
|
setRFAnglePitch(other.getRFAnglePitch()); |
||||
|
} |
||||
|
if (other.getRFAngleYaw() != 0) { |
||||
|
setRFAngleYaw(other.getRFAngleYaw()); |
||||
|
} |
||||
|
if (other.getRFDepth() != 0) { |
||||
|
setRFDepth(other.getRFDepth()); |
||||
|
} |
||||
|
this.mergeUnknownFields(other.getUnknownFields()); |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public final boolean isInitialized() { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Builder mergeFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
if (extensionRegistry == null) { |
||||
|
throw new NullPointerException(); |
||||
|
} |
||||
|
try { |
||||
|
boolean done = false; |
||||
|
while (!done) { |
||||
|
int tag = input.readTag(); |
||||
|
switch (tag) { |
||||
|
case 0: |
||||
|
done = true; |
||||
|
break; |
||||
|
case 8: { |
||||
|
rFAngleRoll_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000001; |
||||
|
break; |
||||
|
} // case 8
|
||||
|
case 16: { |
||||
|
rFAnglePitch_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000002; |
||||
|
break; |
||||
|
} // case 16
|
||||
|
case 24: { |
||||
|
rFAngleYaw_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000004; |
||||
|
break; |
||||
|
} // case 24
|
||||
|
case 32: { |
||||
|
rFDepth_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000008; |
||||
|
break; |
||||
|
} // case 32
|
||||
|
default: { |
||||
|
if (!super.parseUnknownField(input, extensionRegistry, tag)) { |
||||
|
done = true; // was an endgroup tag
|
||||
|
} |
||||
|
break; |
||||
|
} // default:
|
||||
|
} // switch (tag)
|
||||
|
} // while (!done)
|
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.unwrapIOException(); |
||||
|
} finally { |
||||
|
onChanged(); |
||||
|
} // finally
|
||||
|
return this; |
||||
|
} |
||||
|
private int bitField0_; |
||||
|
|
||||
|
private int rFAngleRoll_ ; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 横滚角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Roll = 1;</code> |
||||
|
* @return The rFAngleRoll. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRFAngleRoll() { |
||||
|
return rFAngleRoll_; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 横滚角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Roll = 1;</code> |
||||
|
* @param value The rFAngleRoll to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRFAngleRoll(int value) { |
||||
|
|
||||
|
rFAngleRoll_ = value; |
||||
|
bitField0_ |= 0x00000001; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 横滚角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Roll = 1;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRFAngleRoll() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000001); |
||||
|
rFAngleRoll_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int rFAnglePitch_ ; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 俯仰角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Pitch = 2;</code> |
||||
|
* @return The rFAnglePitch. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRFAnglePitch() { |
||||
|
return rFAnglePitch_; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 俯仰角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Pitch = 2;</code> |
||||
|
* @param value The rFAnglePitch to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRFAnglePitch(int value) { |
||||
|
|
||||
|
rFAnglePitch_ = value; |
||||
|
bitField0_ |= 0x00000002; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 俯仰角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Pitch = 2;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRFAnglePitch() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000002); |
||||
|
rFAnglePitch_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int rFAngleYaw_ ; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 航向角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Yaw = 3;</code> |
||||
|
* @return The rFAngleYaw. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRFAngleYaw() { |
||||
|
return rFAngleYaw_; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 航向角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Yaw = 3;</code> |
||||
|
* @param value The rFAngleYaw to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRFAngleYaw(int value) { |
||||
|
|
||||
|
rFAngleYaw_ = value; |
||||
|
bitField0_ |= 0x00000004; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 航向角 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Angle_Yaw = 3;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRFAngleYaw() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000004); |
||||
|
rFAngleYaw_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int rFDepth_ ; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 海洋深度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Depth = 4;</code> |
||||
|
* @return The rFDepth. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRFDepth() { |
||||
|
return rFDepth_; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 海洋深度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Depth = 4;</code> |
||||
|
* @param value The rFDepth to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRFDepth(int value) { |
||||
|
|
||||
|
rFDepth_ = value; |
||||
|
bitField0_ |= 0x00000008; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 海洋深度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 RF_Depth = 4;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRFDepth() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000008); |
||||
|
rFDepth_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(builder_scope:DataTrans)
|
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(class_scope:DataTrans)
|
||||
|
private static final DataTrans DEFAULT_INSTANCE; |
||||
|
static { |
||||
|
DEFAULT_INSTANCE = new DataTrans(); |
||||
|
} |
||||
|
|
||||
|
public static DataTrans getDefaultInstance() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Parser<DataTrans> |
||||
|
PARSER = new com.google.protobuf.AbstractParser<DataTrans>() { |
||||
|
@Override |
||||
|
public DataTrans parsePartialFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
Builder builder = newBuilder(); |
||||
|
try { |
||||
|
builder.mergeFrom(input, extensionRegistry); |
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (com.google.protobuf.UninitializedMessageException e) { |
||||
|
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (java.io.IOException e) { |
||||
|
throw new com.google.protobuf.InvalidProtocolBufferException(e) |
||||
|
.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} |
||||
|
return builder.buildPartial(); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
public static com.google.protobuf.Parser<DataTrans> parser() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public com.google.protobuf.Parser<DataTrans> getParserForType() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public DataTrans getDefaultInstanceForType() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Descriptors.Descriptor |
||||
|
internal_static_DataTrans_descriptor; |
||||
|
private static final |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internal_static_DataTrans_fieldAccessorTable; |
||||
|
|
||||
|
public static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
getDescriptor() { |
||||
|
return descriptor; |
||||
|
} |
||||
|
private static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
descriptor; |
||||
|
static { |
||||
|
String[] descriptorData = { |
||||
|
"\n\020robot_data.proto\"b\n\tDataTrans\022\025\n\rRF_An" + |
||||
|
"gle_Roll\030\001 \001(\005\022\026\n\016RF_Angle_Pitch\030\002 \001(\005\022\024" + |
||||
|
"\n\014RF_Angle_Yaw\030\003 \001(\005\022\020\n\010RF_Depth\030\004 \001(\005B*" + |
||||
|
"\n&com.example.removemarineanimals.models" + |
||||
|
"P\000b\006proto3" |
||||
|
}; |
||||
|
descriptor = com.google.protobuf.Descriptors.FileDescriptor |
||||
|
.internalBuildGeneratedFileFrom(descriptorData, |
||||
|
new com.google.protobuf.Descriptors.FileDescriptor[] { |
||||
|
}); |
||||
|
internal_static_DataTrans_descriptor = |
||||
|
getDescriptor().getMessageTypes().get(0); |
||||
|
internal_static_DataTrans_fieldAccessorTable = new |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable( |
||||
|
internal_static_DataTrans_descriptor, |
||||
|
new String[] { "RFAngleRoll", "RFAnglePitch", "RFAngleYaw", "RFDepth", }); |
||||
|
descriptor.resolveAllFeaturesImmutable(); |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(outer_class_scope)
|
||||
|
} |
||||
@ -0,0 +1,615 @@ |
|||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
|
// NO CHECKED-IN PROTOBUF GENCODE
|
||||
|
// source: robot_RMACM.proto
|
||||
|
// Protobuf Java Version: 4.27.2
|
||||
|
|
||||
|
package com.example.removemarineanimals.models; |
||||
|
|
||||
|
public final class RobotRMACM { |
||||
|
private RobotRMACM() {} |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
RobotRMACM.class.getName()); |
||||
|
} |
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistryLite registry) { |
||||
|
} |
||||
|
|
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistry registry) { |
||||
|
registerAllExtensions( |
||||
|
(com.google.protobuf.ExtensionRegistryLite) registry); |
||||
|
} |
||||
|
public interface RMACMOrBuilder extends |
||||
|
// @@protoc_insertion_point(interface_extends:RMACM)
|
||||
|
com.google.protobuf.MessageOrBuilder { |
||||
|
|
||||
|
/** |
||||
|
* <pre> |
||||
|
* 灯光亮度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 LightBrightness = 1;</code> |
||||
|
* @return The lightBrightness. |
||||
|
*/ |
||||
|
int getLightBrightness(); |
||||
|
|
||||
|
/** |
||||
|
* <pre> |
||||
|
* 机器人速度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Speed = 2;</code> |
||||
|
* @return The robotSpeed. |
||||
|
*/ |
||||
|
int getRobotSpeed(); |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* Remove Marine Animal Command |
||||
|
* </pre> |
||||
|
* |
||||
|
* Protobuf type {@code RMACM} |
||||
|
*/ |
||||
|
public static final class RMACM extends |
||||
|
com.google.protobuf.GeneratedMessage implements |
||||
|
// @@protoc_insertion_point(message_implements:RMACM)
|
||||
|
RMACMOrBuilder { |
||||
|
private static final long serialVersionUID = 0L; |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
RMACM.class.getName()); |
||||
|
} |
||||
|
// Use RMACM.newBuilder() to construct.
|
||||
|
private RMACM(com.google.protobuf.GeneratedMessage.Builder<?> builder) { |
||||
|
super(builder); |
||||
|
} |
||||
|
private RMACM() { |
||||
|
} |
||||
|
|
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return RobotRMACM.internal_static_RMACM_descriptor; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
protected FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return RobotRMACM.internal_static_RMACM_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
RMACM.class, Builder.class); |
||||
|
} |
||||
|
|
||||
|
public static final int LIGHTBRIGHTNESS_FIELD_NUMBER = 1; |
||||
|
private int lightBrightness_ = 0; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 灯光亮度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 LightBrightness = 1;</code> |
||||
|
* @return The lightBrightness. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getLightBrightness() { |
||||
|
return lightBrightness_; |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_SPEED_FIELD_NUMBER = 2; |
||||
|
private int robotSpeed_ = 0; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 机器人速度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Speed = 2;</code> |
||||
|
* @return The robotSpeed. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRobotSpeed() { |
||||
|
return robotSpeed_; |
||||
|
} |
||||
|
|
||||
|
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 (lightBrightness_ != 0) { |
||||
|
output.writeInt32(1, lightBrightness_); |
||||
|
} |
||||
|
if (robotSpeed_ != 0) { |
||||
|
output.writeInt32(2, robotSpeed_); |
||||
|
} |
||||
|
getUnknownFields().writeTo(output); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int getSerializedSize() { |
||||
|
int size = memoizedSize; |
||||
|
if (size != -1) return size; |
||||
|
|
||||
|
size = 0; |
||||
|
if (lightBrightness_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(1, lightBrightness_); |
||||
|
} |
||||
|
if (robotSpeed_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(2, robotSpeed_); |
||||
|
} |
||||
|
size += getUnknownFields().getSerializedSize(); |
||||
|
memoizedSize = size; |
||||
|
return size; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public boolean equals(final Object obj) { |
||||
|
if (obj == this) { |
||||
|
return true; |
||||
|
} |
||||
|
if (!(obj instanceof RMACM)) { |
||||
|
return super.equals(obj); |
||||
|
} |
||||
|
RMACM other = (RMACM) obj; |
||||
|
|
||||
|
if (getLightBrightness() |
||||
|
!= other.getLightBrightness()) return false; |
||||
|
if (getRobotSpeed() |
||||
|
!= other.getRobotSpeed()) return false; |
||||
|
if (!getUnknownFields().equals(other.getUnknownFields())) return false; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int hashCode() { |
||||
|
if (memoizedHashCode != 0) { |
||||
|
return memoizedHashCode; |
||||
|
} |
||||
|
int hash = 41; |
||||
|
hash = (19 * hash) + getDescriptor().hashCode(); |
||||
|
hash = (37 * hash) + LIGHTBRIGHTNESS_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getLightBrightness(); |
||||
|
hash = (37 * hash) + ROBOT_SPEED_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotSpeed(); |
||||
|
hash = (29 * hash) + getUnknownFields().hashCode(); |
||||
|
memoizedHashCode = hash; |
||||
|
return hash; |
||||
|
} |
||||
|
|
||||
|
public static RMACM parseFrom( |
||||
|
java.nio.ByteBuffer data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static RMACM parseFrom( |
||||
|
java.nio.ByteBuffer data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static RMACM parseFrom( |
||||
|
com.google.protobuf.ByteString data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static RMACM parseFrom( |
||||
|
com.google.protobuf.ByteString data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static RMACM parseFrom(byte[] data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static RMACM parseFrom( |
||||
|
byte[] data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static RMACM parseFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static RMACM parseFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
public static RMACM parseDelimitedFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input); |
||||
|
} |
||||
|
|
||||
|
public static RMACM parseDelimitedFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
public static RMACM parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static RMACM parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Builder newBuilderForType() { return newBuilder(); } |
||||
|
public static Builder newBuilder() { |
||||
|
return DEFAULT_INSTANCE.toBuilder(); |
||||
|
} |
||||
|
public static Builder newBuilder(RMACM 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; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* Remove Marine Animal Command |
||||
|
* </pre> |
||||
|
* |
||||
|
* Protobuf type {@code RMACM} |
||||
|
*/ |
||||
|
public static final class Builder extends |
||||
|
com.google.protobuf.GeneratedMessage.Builder<Builder> implements |
||||
|
// @@protoc_insertion_point(builder_implements:RMACM)
|
||||
|
RMACMOrBuilder { |
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return RobotRMACM.internal_static_RMACM_descriptor; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
protected FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return RobotRMACM.internal_static_RMACM_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
RMACM.class, Builder.class); |
||||
|
} |
||||
|
|
||||
|
// Construct using com.example.removemarineanimals.models.RobotRMACM.RMACM.newBuilder()
|
||||
|
private Builder() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private Builder( |
||||
|
BuilderParent parent) { |
||||
|
super(parent); |
||||
|
|
||||
|
} |
||||
|
@Override |
||||
|
public Builder clear() { |
||||
|
super.clear(); |
||||
|
bitField0_ = 0; |
||||
|
lightBrightness_ = 0; |
||||
|
robotSpeed_ = 0; |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptorForType() { |
||||
|
return RobotRMACM.internal_static_RMACM_descriptor; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public RMACM getDefaultInstanceForType() { |
||||
|
return RMACM.getDefaultInstance(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public RMACM build() { |
||||
|
RMACM result = buildPartial(); |
||||
|
if (!result.isInitialized()) { |
||||
|
throw newUninitializedMessageException(result); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public RMACM buildPartial() { |
||||
|
RMACM result = new RMACM(this); |
||||
|
if (bitField0_ != 0) { buildPartial0(result); } |
||||
|
onBuilt(); |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
private void buildPartial0(RMACM result) { |
||||
|
int from_bitField0_ = bitField0_; |
||||
|
if (((from_bitField0_ & 0x00000001) != 0)) { |
||||
|
result.lightBrightness_ = lightBrightness_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000002) != 0)) { |
||||
|
result.robotSpeed_ = robotSpeed_; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Builder mergeFrom(com.google.protobuf.Message other) { |
||||
|
if (other instanceof RMACM) { |
||||
|
return mergeFrom((RMACM)other); |
||||
|
} else { |
||||
|
super.mergeFrom(other); |
||||
|
return this; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Builder mergeFrom(RMACM other) { |
||||
|
if (other == RMACM.getDefaultInstance()) return this; |
||||
|
if (other.getLightBrightness() != 0) { |
||||
|
setLightBrightness(other.getLightBrightness()); |
||||
|
} |
||||
|
if (other.getRobotSpeed() != 0) { |
||||
|
setRobotSpeed(other.getRobotSpeed()); |
||||
|
} |
||||
|
this.mergeUnknownFields(other.getUnknownFields()); |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public final boolean isInitialized() { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public Builder mergeFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
if (extensionRegistry == null) { |
||||
|
throw new NullPointerException(); |
||||
|
} |
||||
|
try { |
||||
|
boolean done = false; |
||||
|
while (!done) { |
||||
|
int tag = input.readTag(); |
||||
|
switch (tag) { |
||||
|
case 0: |
||||
|
done = true; |
||||
|
break; |
||||
|
case 8: { |
||||
|
lightBrightness_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000001; |
||||
|
break; |
||||
|
} // case 8
|
||||
|
case 16: { |
||||
|
robotSpeed_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000002; |
||||
|
break; |
||||
|
} // case 16
|
||||
|
default: { |
||||
|
if (!super.parseUnknownField(input, extensionRegistry, tag)) { |
||||
|
done = true; // was an endgroup tag
|
||||
|
} |
||||
|
break; |
||||
|
} // default:
|
||||
|
} // switch (tag)
|
||||
|
} // while (!done)
|
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.unwrapIOException(); |
||||
|
} finally { |
||||
|
onChanged(); |
||||
|
} // finally
|
||||
|
return this; |
||||
|
} |
||||
|
private int bitField0_; |
||||
|
|
||||
|
private int lightBrightness_ ; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 灯光亮度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 LightBrightness = 1;</code> |
||||
|
* @return The lightBrightness. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getLightBrightness() { |
||||
|
return lightBrightness_; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 灯光亮度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 LightBrightness = 1;</code> |
||||
|
* @param value The lightBrightness to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setLightBrightness(int value) { |
||||
|
|
||||
|
lightBrightness_ = value; |
||||
|
bitField0_ |= 0x00000001; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 灯光亮度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 LightBrightness = 1;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearLightBrightness() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000001); |
||||
|
lightBrightness_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int robotSpeed_ ; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 机器人速度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Speed = 2;</code> |
||||
|
* @return The robotSpeed. |
||||
|
*/ |
||||
|
@Override |
||||
|
public int getRobotSpeed() { |
||||
|
return robotSpeed_; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 机器人速度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Speed = 2;</code> |
||||
|
* @param value The robotSpeed to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotSpeed(int value) { |
||||
|
|
||||
|
robotSpeed_ = value; |
||||
|
bitField0_ |= 0x00000002; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 机器人速度 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Speed = 2;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotSpeed() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000002); |
||||
|
robotSpeed_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(builder_scope:RMACM)
|
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(class_scope:RMACM)
|
||||
|
private static final RMACM DEFAULT_INSTANCE; |
||||
|
static { |
||||
|
DEFAULT_INSTANCE = new RMACM(); |
||||
|
} |
||||
|
|
||||
|
public static RMACM getDefaultInstance() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Parser<RMACM> |
||||
|
PARSER = new com.google.protobuf.AbstractParser<RMACM>() { |
||||
|
@Override |
||||
|
public RMACM parsePartialFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
Builder builder = newBuilder(); |
||||
|
try { |
||||
|
builder.mergeFrom(input, extensionRegistry); |
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (com.google.protobuf.UninitializedMessageException e) { |
||||
|
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (java.io.IOException e) { |
||||
|
throw new com.google.protobuf.InvalidProtocolBufferException(e) |
||||
|
.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} |
||||
|
return builder.buildPartial(); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
public static com.google.protobuf.Parser<RMACM> parser() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public com.google.protobuf.Parser<RMACM> getParserForType() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public RMACM getDefaultInstanceForType() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Descriptors.Descriptor |
||||
|
internal_static_RMACM_descriptor; |
||||
|
private static final |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internal_static_RMACM_fieldAccessorTable; |
||||
|
|
||||
|
public static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
getDescriptor() { |
||||
|
return descriptor; |
||||
|
} |
||||
|
private static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
descriptor; |
||||
|
static { |
||||
|
String[] descriptorData = { |
||||
|
"\n\021robot_RMACM.proto\"5\n\005RMACM\022\027\n\017LightBri" + |
||||
|
"ghtness\030\001 \001(\005\022\023\n\013Robot_Speed\030\002 \001(\005B*\n&co" + |
||||
|
"m.example.removemarineanimals.modelsP\000b\006" + |
||||
|
"proto3" |
||||
|
}; |
||||
|
descriptor = com.google.protobuf.Descriptors.FileDescriptor |
||||
|
.internalBuildGeneratedFileFrom(descriptorData, |
||||
|
new com.google.protobuf.Descriptors.FileDescriptor[] { |
||||
|
}); |
||||
|
internal_static_RMACM_descriptor = |
||||
|
getDescriptor().getMessageTypes().get(0); |
||||
|
internal_static_RMACM_fieldAccessorTable = new |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable( |
||||
|
internal_static_RMACM_descriptor, |
||||
|
new String[] { "LightBrightness", "RobotSpeed", }); |
||||
|
descriptor.resolveAllFeaturesImmutable(); |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(outer_class_scope)
|
||||
|
} |
||||
@ -0,0 +1,23 @@ |
|||||
|
package com.example.removemarineanimals.services; |
||||
|
|
||||
|
|
||||
|
import com.hoho.android.usbserial.driver.FtdiSerialDriver; |
||||
|
import com.hoho.android.usbserial.driver.ProbeTable; |
||||
|
import com.hoho.android.usbserial.driver.UsbSerialProber; |
||||
|
|
||||
|
/** |
||||
|
* add devices here, that are not known to DefaultProber |
||||
|
* |
||||
|
* if the App should auto start for these devices, also |
||||
|
* add IDs to app/src/main/res/xml/device_filter.xml |
||||
|
*/ |
||||
|
public class CustomProber { |
||||
|
|
||||
|
public static UsbSerialProber getCustomProber() { |
||||
|
ProbeTable customTable = new ProbeTable(); |
||||
|
customTable.addProduct(0x1234, 0x0001, FtdiSerialDriver.class); // e.g. device with custom VID+PID
|
||||
|
customTable.addProduct(0x1234, 0x0002, FtdiSerialDriver.class); // e.g. device with custom VID+PID
|
||||
|
return new UsbSerialProber(customTable); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
package com.example.removemarineanimals.services; |
||||
|
|
||||
|
import android.content.Context; |
||||
|
import android.content.res.Resources; |
||||
|
import android.util.TypedValue; |
||||
|
|
||||
|
public class DisplayUtils { |
||||
|
// 静态方法,无需实例化即可调用
|
||||
|
public static int dpToPx(Context context, int dp) { |
||||
|
Resources r = context.getResources(); |
||||
|
return (int) TypedValue.applyDimension( |
||||
|
TypedValue.COMPLEX_UNIT_DIP, |
||||
|
dp, |
||||
|
r.getDisplayMetrics() |
||||
|
); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,72 @@ |
|||||
|
package com.example.removemarineanimals.services; |
||||
|
|
||||
|
public class ModbusCRC { |
||||
|
|
||||
|
// /**
|
||||
|
// * 一个字节包含位的数量 8
|
||||
|
// */
|
||||
|
// private static final int BITS_OF_BYTE = 8;
|
||||
|
// /**
|
||||
|
// * 多项式
|
||||
|
// */
|
||||
|
// private static final int POLYNOMIAL = 0xA001;
|
||||
|
// /**
|
||||
|
// * 初始值
|
||||
|
// */
|
||||
|
// private static final int INITIAL_VALUE = 0xFFFF;
|
||||
|
//
|
||||
|
// /**
|
||||
|
// * CRC16 编码
|
||||
|
// *
|
||||
|
// * @param bytes 编码内容
|
||||
|
// * @return 编码结果
|
||||
|
// */
|
||||
|
// public static int crc16(byte[] bytes) {
|
||||
|
// int res = INITIAL_VALUE;
|
||||
|
// for (int data : bytes) {
|
||||
|
// res = res ^ data;
|
||||
|
// for (int i = 0; i < BITS_OF_BYTE; i++) {
|
||||
|
// res = (res & 0x0001) == 1 ? (res >> 1) ^ POLYNOMIAL : res >> 1;
|
||||
|
// }
|
||||
|
// }
|
||||
|
// return revert(res);
|
||||
|
// }
|
||||
|
//
|
||||
|
// /**
|
||||
|
// * 翻转16位的高八位和低八位字节
|
||||
|
// *
|
||||
|
// * @param src 翻转数字
|
||||
|
// * @return 翻转结果
|
||||
|
// */
|
||||
|
// private static int revert(int src) {
|
||||
|
// int lowByte = (src & 0xFF00) >> 8;
|
||||
|
// int highByte = (src & 0x00FF) << 8;
|
||||
|
// return lowByte | highByte;
|
||||
|
// }
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 计算 Modbus CRC 校验值 |
||||
|
* @param data 要计算校验值的字节数组 |
||||
|
* @return CRC 校验值,以 2 字节的数组形式返回 |
||||
|
*/ |
||||
|
public static byte[] calculateCRC(byte[] data) { |
||||
|
int crc = 0xFFFF; |
||||
|
for (byte b : data) { |
||||
|
crc ^= (b & 0xFF); |
||||
|
for (int i = 0; i < 8; i++) { |
||||
|
if ((crc & 0x0001) != 0) { |
||||
|
crc >>= 1; |
||||
|
crc ^= 0xA001; |
||||
|
} else { |
||||
|
crc >>= 1; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
// 将 CRC 结果拆分为两个字节
|
||||
|
byte[] crcBytes = new byte[2]; |
||||
|
crcBytes[0] = (byte) (crc & 0xFF); |
||||
|
crcBytes[1] = (byte) ((crc >> 8) & 0xFF); |
||||
|
return crcBytes; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,54 @@ |
|||||
|
package com.example.removemarineanimals.services; |
||||
|
|
||||
|
import com.example.removemarineanimals.models.RobotData; |
||||
|
import com.google.protobuf.InvalidProtocolBufferException; |
||||
|
|
||||
|
public class RobotDataHanlder { |
||||
|
|
||||
|
|
||||
|
public static void test() |
||||
|
{ |
||||
|
//byte[] data=hexToByteArray("080110830118313A04B1CBBACF");
|
||||
|
byte[] data=hexToByteArray("100A180A28013A32B1CBBACF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"); |
||||
|
|
||||
|
} |
||||
|
public static RobotData.DataTrans DeoodeDataFromRobot(byte[] data) |
||||
|
{ |
||||
|
|
||||
|
RobotData.DataTrans dtrans3 = null; |
||||
|
try |
||||
|
{ |
||||
|
dtrans3 = RobotData.DataTrans.parseFrom(data); |
||||
|
|
||||
|
return dtrans3; |
||||
|
} catch (InvalidProtocolBufferException e) { |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
public static byte[] hexToByteArray(String inHex){ |
||||
|
int hexlen = inHex.length(); |
||||
|
byte[] result; |
||||
|
if (hexlen % 2 == 1){ |
||||
|
//奇数
|
||||
|
hexlen++; |
||||
|
result = new byte[(hexlen/2)]; |
||||
|
inHex="0"+inHex; |
||||
|
}else { |
||||
|
//偶数
|
||||
|
result = new byte[(hexlen/2)]; |
||||
|
} |
||||
|
int j=0; |
||||
|
for (int i = 0; i < hexlen; i+=2){ |
||||
|
result[j]=hexToByte(inHex.substring(i,i+2)); |
||||
|
j++; |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
public static byte hexToByte(String inHex){ |
||||
|
return (byte)Integer.parseInt(inHex,16); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,140 @@ |
|||||
|
//package com.example.removemarineanimals.services;
|
||||
|
//
|
||||
|
//import android.content.Context;
|
||||
|
//import android.graphics.Bitmap;
|
||||
|
//import android.graphics.Canvas;
|
||||
|
//import android.view.View;
|
||||
|
//import android.widget.Toast;
|
||||
|
//
|
||||
|
//import com.arthenica.ffmpegkit.FFmpegKit;
|
||||
|
//import com.arthenica.ffmpegkit.FFmpegSession;
|
||||
|
//import com.arthenica.ffmpegkit.ReturnCode;
|
||||
|
//import com.example.removemarineanimals.MainActivity;
|
||||
|
//
|
||||
|
//import java.io.File;
|
||||
|
//import java.io.FileOutputStream;
|
||||
|
//import java.io.IOException;
|
||||
|
//import java.text.SimpleDateFormat;
|
||||
|
//import java.util.Date;
|
||||
|
//
|
||||
|
//public class RtspRecorder {
|
||||
|
// // 用于控制录制会话
|
||||
|
// private MainActivity MainActivity;
|
||||
|
// private static FFmpegSession recordingSession;
|
||||
|
//
|
||||
|
// // 开始分段录制
|
||||
|
// public static void startRecording(Context context, String rtspUrl)
|
||||
|
// {
|
||||
|
//
|
||||
|
// String outputPath ="storage/emulated/0/DCIM/" + "/record_%Y-%m-%d_%H-%M-%S.mp4";
|
||||
|
// //String outputPath = context.getExternalFilesDir(null) + "/record_%Y-%m-%d_%H-%M-%S.mp4";
|
||||
|
// String command = String.format(
|
||||
|
// "-rtsp_transport tcp -i \"%s\" -c:v copy -f segment -segment_time 30 -reset_timestamps 1 -strftime 1 \"%s\"",
|
||||
|
// rtspUrl, outputPath
|
||||
|
// );
|
||||
|
//
|
||||
|
// recordingSession = FFmpegKit.executeAsync(command, session -> {
|
||||
|
// if (ReturnCode.isSuccess(session.getReturnCode())) {
|
||||
|
// // 录制正常结束
|
||||
|
// } else {
|
||||
|
// // 录制异常终止
|
||||
|
// }
|
||||
|
// });
|
||||
|
// }
|
||||
|
//
|
||||
|
// // 停止录制
|
||||
|
// public static void stopRecording() {
|
||||
|
// if (recordingSession != null) {
|
||||
|
// FFmpegKit.cancel(recordingSession.getSessionId());
|
||||
|
// recordingSession = null;
|
||||
|
// }
|
||||
|
// }
|
||||
|
//
|
||||
|
// // 实时截图(需手动调用)
|
||||
|
// public static void takeSnapshot(Context context, String rtspUrl) {
|
||||
|
// //String outputPath = context.getExternalFilesDir(null) + "/snapshot_%Y-%m-%d_%H-%M-%S.jpg";
|
||||
|
//
|
||||
|
// String outputPath = "storage/emulated/0/DCIM/" + "/snapshot_%Y-%m-%d_%H-%M-%S.jpg";
|
||||
|
//
|
||||
|
// String command = String.format(
|
||||
|
// "-rtsp_transport tcp -i \"%s\" -frames:v 1 -strftime 1 \"%s\"",
|
||||
|
// rtspUrl, outputPath
|
||||
|
// );
|
||||
|
// FFmpegSession session2 = FFmpegKit.executeAsync(command,session -> {
|
||||
|
// if (ReturnCode.isSuccess(session.getReturnCode()))
|
||||
|
// {
|
||||
|
// // 截图成功
|
||||
|
// Toast.makeText(context, "截图成功", Toast.LENGTH_SHORT).show();
|
||||
|
//
|
||||
|
// } else
|
||||
|
// {
|
||||
|
// // 截图失败
|
||||
|
// Toast.makeText(context, "截图失败", Toast.LENGTH_SHORT).show();
|
||||
|
// }
|
||||
|
// });
|
||||
|
//
|
||||
|
////
|
||||
|
//// if (ReturnCode.isSuccess(session.getReturnCode())) {
|
||||
|
//// // 截图成功
|
||||
|
//// } else {
|
||||
|
//// // 截图失败
|
||||
|
//// }
|
||||
|
//
|
||||
|
//// recordingSession = FFmpegKit.executeAsync(command, session -> {
|
||||
|
//// if (ReturnCode.isSuccess(session.getReturnCode()))
|
||||
|
//// {
|
||||
|
//// // 截图成功
|
||||
|
//// Toast.makeText(context, "截图成功", Toast.LENGTH_SHORT).show();
|
||||
|
////
|
||||
|
//// } else
|
||||
|
//// {
|
||||
|
//// // 截图失败
|
||||
|
//// Toast.makeText(context, "截图失败", Toast.LENGTH_SHORT).show();
|
||||
|
//// }
|
||||
|
//// });
|
||||
|
//
|
||||
|
//
|
||||
|
// }
|
||||
|
//
|
||||
|
// // 方法1:通过DrawingCache(适用于可见的View)
|
||||
|
// public static Bitmap captureView(View view) {
|
||||
|
// view.setDrawingCacheEnabled(true);
|
||||
|
// view.buildDrawingCache();
|
||||
|
// Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
|
||||
|
// view.setDrawingCacheEnabled(false); // 释放缓存
|
||||
|
// return bitmap;
|
||||
|
// }
|
||||
|
//
|
||||
|
// // 方法2:直接绘制到Bitmap(更可靠,适用于未显示的View)
|
||||
|
// public static Bitmap captureViewManual(View view) {
|
||||
|
//
|
||||
|
//// view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
|
||||
|
//// view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
|
||||
|
//// view.buildDrawingCache();
|
||||
|
//// Bitmap bitmap = view.getDrawingCache();
|
||||
|
//
|
||||
|
//
|
||||
|
// Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
|
||||
|
// Canvas canvas = new Canvas(bitmap);
|
||||
|
// view.draw(canvas);
|
||||
|
// return bitmap;
|
||||
|
// }
|
||||
|
//
|
||||
|
// public static void SnapPictureByView (View view)
|
||||
|
// {
|
||||
|
// // 保存到文件(需权限)
|
||||
|
// Date dNow=new Date();
|
||||
|
// SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh-mm-ss");
|
||||
|
// String path = "storage/emulated/0/DCIM/" + ft.format(dNow)+ ".png";
|
||||
|
// File file = new File(path);
|
||||
|
// try (FileOutputStream out = new FileOutputStream(file))
|
||||
|
// {
|
||||
|
// // Bitmap screenshot = captureView(view);
|
||||
|
// Bitmap screenshot = captureViewManual(view);
|
||||
|
// screenshot.compress(Bitmap.CompressFormat.PNG, 100, out);
|
||||
|
// } catch (IOException e) {
|
||||
|
// e.printStackTrace();
|
||||
|
// }
|
||||
|
// }
|
||||
|
//
|
||||
|
//}
|
||||
@ -0,0 +1,352 @@ |
|||||
|
package com.example.removemarineanimals.services; |
||||
|
|
||||
|
import android.app.PendingIntent; |
||||
|
import android.content.BroadcastReceiver; |
||||
|
import android.content.Context; |
||||
|
import android.content.Intent; |
||||
|
import android.content.IntentFilter; |
||||
|
import android.hardware.usb.UsbDevice; |
||||
|
import android.hardware.usb.UsbDeviceConnection; |
||||
|
import android.hardware.usb.UsbManager; |
||||
|
import android.os.Build; |
||||
|
import android.os.CountDownTimer; |
||||
|
import android.os.Handler; |
||||
|
import android.os.Looper; |
||||
|
|
||||
|
import androidx.core.content.ContextCompat; |
||||
|
|
||||
|
import com.example.removemarineanimals.BuildConfig; |
||||
|
import com.example.removemarineanimals.MainActivity; |
||||
|
import com.example.removemarineanimals.models.RobotData; |
||||
|
import com.example.removemarineanimals.viewmodels.MainViewModel; |
||||
|
import com.hoho.android.usbserial.driver.UsbSerialDriver; |
||||
|
import com.hoho.android.usbserial.driver.UsbSerialPort; |
||||
|
import com.hoho.android.usbserial.driver.UsbSerialProber; |
||||
|
import com.hoho.android.usbserial.util.SerialInputOutputManager; |
||||
|
|
||||
|
import java.io.IOException; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.Iterator; |
||||
|
import java.util.List; |
||||
|
|
||||
|
public class USBSerialPortHelper implements SerialInputOutputManager.Listener { |
||||
|
|
||||
|
|
||||
|
public MainActivity MainActivity; |
||||
|
//sserial port part start
|
||||
|
|
||||
|
private enum UsbPermission {Unknown, Requested, Granted, Denied} |
||||
|
|
||||
|
private final String INTENT_ACTION_GRANT_USB = BuildConfig.APPLICATION_ID + ".GRANT_USB"; |
||||
|
|
||||
|
|
||||
|
// <usb-device vendor-id="4292" product-id="60000" /> <!-- 0xea60: CP2102 and other CP210x single port devices -->
|
||||
|
// <usb-device vendor-id="4292" product-id="60016" /> <!-- 0xea70: CP2105 -->
|
||||
|
// <usb-device vendor-id="4292" product-id="60017" /> <!-- 0xea71: CP2108 -->
|
||||
|
|
||||
|
|
||||
|
private int deviceId = 60000; |
||||
|
private int deviceId_test = 60000; |
||||
|
private int portNum; |
||||
|
private final int WRITE_WAIT_MILLIS = 500; |
||||
|
private final int READ_WAIT_MILLIS = 100; |
||||
|
private String PortNameContians = "SILICON";/**/ |
||||
|
// private static String PortNameContians="FTD";
|
||||
|
private int baudRate = 57600; |
||||
|
private boolean withIoManager = true; |
||||
|
|
||||
|
private BroadcastReceiver broadcastReceiver; |
||||
|
private Handler mainLooper; |
||||
|
|
||||
|
private SerialInputOutputManager usbIoManager; |
||||
|
private UsbSerialPort usbSerialPort; |
||||
|
private UsbPermission usbPermission = UsbPermission.Unknown; |
||||
|
private boolean connected = false; |
||||
|
|
||||
|
public void intialize() { |
||||
|
|
||||
|
broadcastReceiver = new BroadcastReceiver() { |
||||
|
@Override |
||||
|
public void onReceive(Context context, Intent intent) { |
||||
|
if (INTENT_ACTION_GRANT_USB.equals(intent.getAction())) { |
||||
|
usbPermission = intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false) ? UsbPermission.Granted : UsbPermission.Denied; |
||||
|
connect(); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
mainLooper = new Handler(Looper.getMainLooper()); |
||||
|
_receiveBufferlist = new ArrayList<Byte>(); |
||||
|
} |
||||
|
|
||||
|
/* |
||||
|
* Serial |
||||
|
*/ |
||||
|
@Override |
||||
|
public void onNewData(byte[] data) { |
||||
|
status("new data"); |
||||
|
mainLooper.post(() -> { |
||||
|
receive(data); |
||||
|
// receive data
|
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public void onRunError(Exception e) { |
||||
|
mainLooper.post(() -> { |
||||
|
status("connection lost: " + e.getMessage()); |
||||
|
disconnect(); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/* |
||||
|
* Serial + UI |
||||
|
*/ |
||||
|
|
||||
|
public void connect() { |
||||
|
|
||||
|
UsbDevice device = null; |
||||
|
UsbManager usbManager = (UsbManager) MainActivity.getSystemService(Context.USB_SERVICE); |
||||
|
for (UsbDevice v : usbManager.getDeviceList().values()) { |
||||
|
status(v.getManufacturerName().toUpperCase()); |
||||
|
if (v.getManufacturerName().toUpperCase().contains(PortNameContians)) { |
||||
|
device = v; |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
if (device == null) { |
||||
|
// _serialPortSwitch.setChecked(false);
|
||||
|
|
||||
|
status("找不到设备"); |
||||
|
return; |
||||
|
} |
||||
|
UsbSerialDriver driver = UsbSerialProber.getDefaultProber().probeDevice(device); |
||||
|
if (driver == null) { |
||||
|
driver = CustomProber.getCustomProber().probeDevice(device); |
||||
|
} |
||||
|
if (driver == null) { |
||||
|
// _serialPortSwitch.setChecked(false);
|
||||
|
status("无驱动"); |
||||
|
return; |
||||
|
} |
||||
|
if (driver.getPorts().size() < portNum) //就是0 cp2102 或者同一个驱动,第一个
|
||||
|
{ |
||||
|
status("connection failed: not enough ports at device"); |
||||
|
status("找不到设备"); |
||||
|
return; |
||||
|
} |
||||
|
usbSerialPort = driver.getPorts().get(portNum); |
||||
|
|
||||
|
UsbDeviceConnection usbConnection = usbManager.openDevice(driver.getDevice()); |
||||
|
if (usbConnection == null && usbPermission == UsbPermission.Unknown && !usbManager.hasPermission(driver.getDevice())) { |
||||
|
usbPermission = UsbPermission.Requested; |
||||
|
int flags = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_MUTABLE : 0; |
||||
|
Intent intent = new Intent(INTENT_ACTION_GRANT_USB); |
||||
|
intent.setPackage(MainActivity.getPackageName()); |
||||
|
PendingIntent usbPermissionIntent = PendingIntent.getBroadcast(MainActivity, 0, intent, flags); |
||||
|
usbManager.requestPermission(driver.getDevice(), usbPermissionIntent); |
||||
|
return; |
||||
|
} |
||||
|
if (usbConnection == null) { |
||||
|
if (!usbManager.hasPermission(driver.getDevice())) { |
||||
|
status("connection failed: permission denied"); |
||||
|
} else { |
||||
|
status("connection failed: open failed"); |
||||
|
} |
||||
|
|
||||
|
return; |
||||
|
} |
||||
|
|
||||
|
try { |
||||
|
usbSerialPort.open(usbConnection); |
||||
|
try { |
||||
|
usbSerialPort.setParameters(baudRate, 8, 1, UsbSerialPort.PARITY_NONE); |
||||
|
status("connected: "); |
||||
|
|
||||
|
} catch (UnsupportedOperationException e) { |
||||
|
status("unsupport setparameters"); |
||||
|
} |
||||
|
if (withIoManager) { |
||||
|
usbIoManager = new SerialInputOutputManager(usbSerialPort, this); |
||||
|
usbIoManager.setReadBufferSize(40960); |
||||
|
usbIoManager.setReadTimeout(READ_WAIT_MILLIS); |
||||
|
usbIoManager.start(); |
||||
|
} |
||||
|
//status("connected");
|
||||
|
connected = true; |
||||
|
// _serialPortSwitch.setChecked(true);
|
||||
|
//switch set true
|
||||
|
|
||||
|
} catch (Exception e) { |
||||
|
status("connection failed: " + e.getMessage()); |
||||
|
disconnect(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private void disconnect() { |
||||
|
connected = false; |
||||
|
|
||||
|
if (usbIoManager != null) { |
||||
|
usbIoManager.setListener(null); |
||||
|
usbIoManager.stop(); |
||||
|
} |
||||
|
usbIoManager = null; |
||||
|
try { |
||||
|
usbSerialPort.close(); |
||||
|
} catch (IOException ignored) { |
||||
|
|
||||
|
} |
||||
|
usbSerialPort = null; |
||||
|
} |
||||
|
|
||||
|
List<Byte> _receiveBufferlist; |
||||
|
|
||||
|
private static byte[] listTobyte(List<Byte> list) { |
||||
|
if (list == null || list.size() < 0) return null; |
||||
|
byte[] bytes = new byte[list.size()]; |
||||
|
int i = 0; |
||||
|
Iterator<Byte> iterator = list.iterator(); |
||||
|
while (iterator.hasNext()) { |
||||
|
bytes[i] = iterator.next(); |
||||
|
i++; |
||||
|
} |
||||
|
return bytes; |
||||
|
} |
||||
|
|
||||
|
boolean StartCountDown = false; |
||||
|
|
||||
|
// byte _receivedData
|
||||
|
private void receive(byte[] data) { |
||||
|
|
||||
|
status("read data"); |
||||
|
for (int i = 0; i < data.length; i++) { |
||||
|
_receiveBufferlist.add(data[i]); |
||||
|
} |
||||
|
|
||||
|
//decodeRceive(data);
|
||||
|
if (StartCountDown == false)//从收到第一个数据开始计时
|
||||
|
{ |
||||
|
StartCountDown = true; |
||||
|
new CountDownTimer(50, 10) { |
||||
|
public void onTick(long millisUntilFinished) { |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void onFinish() { |
||||
|
|
||||
|
status("read finished"); |
||||
|
try { |
||||
|
|
||||
|
decodeRceive(listTobyte(_receiveBufferlist)); |
||||
|
|
||||
|
} |
||||
|
catch (Exception ignored) |
||||
|
{ |
||||
|
status(ignored.getMessage()); |
||||
|
} |
||||
|
_receiveBufferlist.clear(); |
||||
|
StartCountDown = false; |
||||
|
} |
||||
|
}.start(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
void status(String str) { |
||||
|
// SpannableStringBuilder spn = new SpannableStringBuilder(str+'\r'+'\n');
|
||||
|
//
|
||||
|
// // spn.append(getTime());
|
||||
|
//
|
||||
|
// spn.setSpan(new ForegroundColorSpan(MainActivity.getResources().getColor(R.color.colorAccent)), 0, spn.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
// receiveText.append(spn);
|
||||
|
// mainBinding.roll.fullScroll(ScrollView.FOCUS_DOWN);
|
||||
|
|
||||
|
|
||||
|
// com.example.removemarineanimals.MainActivity.mainBinding.message.setText(str);
|
||||
|
} |
||||
|
|
||||
|
private void decodeRceive(byte[] data) { |
||||
|
try { |
||||
|
|
||||
|
|
||||
|
byte[] crcbytes = new byte[data.length - 2]; |
||||
|
System.arraycopy(data, 0, crcbytes, 0, data.length - 2); |
||||
|
byte[] crc=ModbusCRC.calculateCRC(crcbytes); |
||||
|
// status(bytesToHex(data));
|
||||
|
|
||||
|
if(data[data.length-2]==(byte)(crc[1]&0xff) && data[data.length-1]==(byte)(crc[0] & 0xff)) |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
if (data[0] == 0x55 && data[1] == 0x55) { |
||||
|
byte[] bytes = new byte[data.length - 2]; |
||||
|
System.arraycopy(data, 2, bytes, 0, data.length - 2); |
||||
|
RobotData.DataTrans _dataTrans = RobotDataHanlder.DeoodeDataFromRobot(bytes); |
||||
|
//RobotData.DataTrans _dataTrans = RobotDataHanlder.DeoodeDataFromRobot(data);
|
||||
|
status("received data"); |
||||
|
if (_dataTrans != null) { |
||||
|
|
||||
|
MainViewModel.mainBinding.rFAngleRoll.setText(String.valueOf(_dataTrans.getRFAngleRoll())); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} catch (Exception e) { |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void onStart() { |
||||
|
|
||||
|
ContextCompat.registerReceiver(MainActivity, broadcastReceiver, new IntentFilter(INTENT_ACTION_GRANT_USB), ContextCompat.RECEIVER_NOT_EXPORTED); |
||||
|
status("onStart"); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
public void onStop() { |
||||
|
MainActivity.unregisterReceiver(broadcastReceiver); |
||||
|
status("onStop"); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void onResume() { |
||||
|
|
||||
|
if (!connected && (usbPermission == UsbPermission.Unknown || usbPermission == UsbPermission.Granted)) { |
||||
|
mainLooper.post(this::connect); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void onPause() { |
||||
|
if (connected) { |
||||
|
status("串口断开"); |
||||
|
// _serialPortSwitch.setChecked(false);
|
||||
|
disconnect(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
public void SendData(byte[] data) { |
||||
|
if (connected) { |
||||
|
try { |
||||
|
usbSerialPort.write(data, WRITE_WAIT_MILLIS); |
||||
|
} catch (IOException e) { |
||||
|
status("Send Failed"); |
||||
|
connected = false; |
||||
|
} |
||||
|
} else { |
||||
|
status("usb serialport disconnected"); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,27 @@ |
|||||
|
package com.example.removemarineanimals.services; |
||||
|
|
||||
|
import cn.nodemedia.NodePlayer; |
||||
|
import cn.nodemedia.NodePlayerView; |
||||
|
|
||||
|
public class VideoPlayerHelper { |
||||
|
|
||||
|
|
||||
|
|
||||
|
public static void startVideo(NodePlayerView nodePlayerView, NodePlayer nodePlayer, String address ){ |
||||
|
|
||||
|
|
||||
|
nodePlayerView.setRenderType(NodePlayerView.RenderType.SURFACEVIEW);//设置渲染器类型
|
||||
|
nodePlayerView.setUIViewContentMode(NodePlayerView.UIViewContentMode.ScaleToFill);//设置视频画面缩放模式
|
||||
|
//nodePlayer=new NodePlayer(this);
|
||||
|
nodePlayer.setPlayerView(nodePlayerView);//设置播放视图
|
||||
|
//设置RTSP流使用的传输协议,支持的模式有:
|
||||
|
nodePlayer.setRtspTransport(NodePlayer.RTSP_TRANSPORT_TCP);//设置传输
|
||||
|
nodePlayer.setInputUrl(address); |
||||
|
nodePlayer.setVideoEnable(true);//设置视频启用
|
||||
|
nodePlayer.setBufferTime(100);//设置缓冲时间
|
||||
|
nodePlayer.setHWEnable(true); |
||||
|
nodePlayer.setMaxBufferTime(200);//设置最大缓冲时间
|
||||
|
nodePlayer.start(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
@ -0,0 +1,227 @@ |
|||||
|
package com.example.removemarineanimals.services; |
||||
|
|
||||
|
import android.util.Log; |
||||
|
|
||||
|
import com.example.removemarineanimals.models.BspIV; |
||||
|
|
||||
|
import android_serialport_api.SerialPortFinder; |
||||
|
import tp.xmaihh.serialport.SerialHelper; |
||||
|
import tp.xmaihh.serialport.bean.ComBean; |
||||
|
|
||||
|
public class ttySerialPortHelper { |
||||
|
public static com.example.removemarineanimals.MainActivity MainActivity; |
||||
|
private static final String TAG = "ttySerialPortHelper"; |
||||
|
private static SerialHelper serialHelper; |
||||
|
private static SerialPortFinder serialPortFinder; |
||||
|
|
||||
|
final String[] ports = serialPortFinder.getAllDevicesPath(); |
||||
|
final String[] botes = new String[]{"0", "50", "75", "110", "134", "150", "200", "300", "600", "1200", "1800", "2400", "4800", "9600", "19200", "38400", "57600", "115200", "230400", "460800", "500000", "576000", "921600", "1000000", "1152000", "1500000", "2000000", "2500000", "3000000", "3500000", "4000000", "CUSTOM"}; |
||||
|
final String[] databits = new String[]{"8", "7", "6", "5"}; |
||||
|
final String[] paritys = new String[]{"NONE", "ODD", "EVEN", "SPACE", "MARK"}; |
||||
|
final String[] stopbits = new String[]{"1", "2"}; |
||||
|
final String[] flowcons = new String[]{"NONE", "RTS/CTS", "XON/XOFF"}; |
||||
|
|
||||
|
public static int[] decodedCH=new int[17]; |
||||
|
|
||||
|
public static void Open() |
||||
|
{ |
||||
|
|
||||
|
try { |
||||
|
// serialPortFinder = new SerialPortFinder();
|
||||
|
//serialHelper = new SerialHelper("dev/ttyHS0", 115200)//MK32
|
||||
|
serialHelper = new SerialHelper("/dev/ttyHS3", 115200) //UR7
|
||||
|
{ |
||||
|
|
||||
|
@Override |
||||
|
protected void onDataReceived(ComBean comBean) { |
||||
|
|
||||
|
MainActivity.runOnUiThread(new Runnable() { |
||||
|
@Override |
||||
|
public void run() { |
||||
|
// 更新 UI 的代码
|
||||
|
byte[] data=comBean.bRec; |
||||
|
// if (data[0] == 0x55 && data[1] == 0x55) {
|
||||
|
// byte[] bytes = new byte[data.length - 2];
|
||||
|
// System.arraycopy(data, 2, bytes, 0, data.length - 2);
|
||||
|
// RobotData.DataTrans _dataTrans = RobotDataHanlder.DeoodeDataFromRobot(bytes);
|
||||
|
//
|
||||
|
// if (_dataTrans != null) {
|
||||
|
// MainViewModel.mainBinding.rFAngleDepth.setText(String.valueOf(_dataTrans.getRFDepth()));
|
||||
|
// MainViewModel.mainBinding.rFAnglePitch.setText(String.valueOf(_dataTrans.getRFAnglePitch()));
|
||||
|
// MainViewModel.mainBinding.rFAngleRoll.setText(String.valueOf(_dataTrans.getRFAngleRoll()));
|
||||
|
// MainViewModel.mainBinding.rFAngleYaw.setText(String.valueOf(_dataTrans.getRFAngleYaw()));
|
||||
|
// }
|
||||
|
// }
|
||||
|
|
||||
|
try { |
||||
|
|
||||
|
byte[] crcbytes = new byte[data.length - 2]; |
||||
|
System.arraycopy(data, 0, crcbytes, 0, data.length - 2); |
||||
|
byte[] crc=ModbusCRC.calculateCRC(crcbytes); |
||||
|
// status(bytesToHex(data));
|
||||
|
|
||||
|
if(data[data.length-2]==(byte)(crc[1]&0xff) && data[data.length-1]==(byte)(crc[0] & 0xff)) |
||||
|
{ |
||||
|
|
||||
|
if ((data[0] == 0x55) && (data[1] == 0x55) ) |
||||
|
{ |
||||
|
|
||||
|
byte[] bytes = new byte[data.length - 4]; |
||||
|
System.arraycopy(data, 2, bytes, 0, data.length - 4); |
||||
|
|
||||
|
BspIV.IV_struct_define _toReceiveIV=BspIV.IV_struct_define.parseFrom(bytes); |
||||
|
|
||||
|
|
||||
|
if (_toReceiveIV!=null) |
||||
|
{ |
||||
|
// MainActivity.mainBinding.rxRobotSpeed.setText(String.valueOf(_toReceiveIV.getRobotMoveSpeed()));
|
||||
|
|
||||
|
MainActivity.mainBinding.rFAngleRoll.setText(String.valueOf(_toReceiveIV.getRobotAngleRoll()/100.0)); |
||||
|
MainActivity.mainBinding.tvRobotError.setText(String.valueOf(_toReceiveIV.getRobotError())); |
||||
|
MainActivity.mainBinding.tvDynamometer.setText(String.valueOf(_toReceiveIV.getRobotDynamometerValue()/100.0)); |
||||
|
MainActivity.mainBinding.tvForce.setText(String.valueOf(_toReceiveIV.getRobotForceValue())); |
||||
|
MainActivity.mainBinding.tvRobotRightCompensation.setText(String.valueOf(_toReceiveIV.getRobotCompensationRight()/100.0)); |
||||
|
MainActivity.mainBinding.tvRobotLeftCompensation.setText(String.valueOf(_toReceiveIV.getRobotCompensationLeft()/100.0)); |
||||
|
MainActivity.mainBinding.tvRobotCurrent.setText("L"+String.valueOf(_toReceiveIV.getRobotCurrentLeft()/1000) |
||||
|
+ "R"+String.valueOf(_toReceiveIV.getRobotCurrentRight()/1000)); |
||||
|
|
||||
|
int leftError = _toReceiveIV.getRobotErrorLeft(); |
||||
|
int rightError = _toReceiveIV.getRobotErrorRight(); |
||||
|
|
||||
|
// 左
|
||||
|
if (leftError != 0) { |
||||
|
StringBuilder leftBits = new StringBuilder("错误: "); |
||||
|
for (int i = 0; i < 32; i++) { |
||||
|
if (((leftError >> i) & 1) == 1) { |
||||
|
leftBits.append(i).append(" "); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
MainActivity.mainBinding.tvLeftError.setText(leftBits.toString().trim()); |
||||
|
} else { |
||||
|
MainActivity.mainBinding.tvLeftError.setText("正常"); |
||||
|
} |
||||
|
|
||||
|
//右
|
||||
|
if (rightError != 0) { |
||||
|
StringBuilder rightBits = new StringBuilder("错误: "); |
||||
|
for (int i = 0; i < 32; i++) { |
||||
|
if (((rightError >> i) & 1) == 1) { |
||||
|
rightBits.append(i).append(" "); |
||||
|
} |
||||
|
} |
||||
|
MainActivity.mainBinding.tvRightError.setText(rightBits.toString().trim()); |
||||
|
} else { |
||||
|
MainActivity.mainBinding.tvRightError.setText("正常"); |
||||
|
} |
||||
|
String m = ""; |
||||
|
|
||||
|
if(_toReceiveIV.getRobotError() != 0 && _toReceiveIV.getRobotCurrentState() != 12) |
||||
|
{ |
||||
|
m = "null"; |
||||
|
MainActivity.mainBinding.tvRobotError.setText(m); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
switch (_toReceiveIV.getRobotCurrentState()) |
||||
|
{ |
||||
|
case 0 : |
||||
|
m ="停止"; |
||||
|
break; |
||||
|
case 1 : |
||||
|
m ="前进"; |
||||
|
break; |
||||
|
case 2 : |
||||
|
m ="后退"; |
||||
|
break; |
||||
|
case 3 : |
||||
|
m ="左转"; |
||||
|
break; |
||||
|
case 4 : |
||||
|
m ="右转"; |
||||
|
break; |
||||
|
case 5 : |
||||
|
m ="自动前进"; |
||||
|
break; |
||||
|
case 6 : |
||||
|
m ="自动后退"; |
||||
|
break; |
||||
|
case 7 : |
||||
|
m ="左换道"; |
||||
|
break; |
||||
|
case 8 : |
||||
|
m ="右换道"; |
||||
|
break; |
||||
|
case 9 : |
||||
|
m ="上换道"; |
||||
|
break; |
||||
|
case 10 : |
||||
|
m ="下换道"; |
||||
|
break; |
||||
|
case 11 : |
||||
|
m ="换道完成"; |
||||
|
break; |
||||
|
case 12 : |
||||
|
m ="急停"; |
||||
|
break; |
||||
|
case 13 : |
||||
|
m = "未复位"; |
||||
|
break; |
||||
|
case 14 : |
||||
|
m = "复位完成"; |
||||
|
break; |
||||
|
default: |
||||
|
throw new IllegalStateException("Unexpected value: " + _toReceiveIV.getRobotCurrentState()); |
||||
|
} |
||||
|
MainActivity.mainBinding.tvRobotError.setText(m); |
||||
|
// 当状态为 0、11、12、15 时允许修改参数,否则禁用
|
||||
|
int state = _toReceiveIV.getRobotCurrentState(); |
||||
|
if (state == 0 || state == 11 || state == 12 || state == 15) { |
||||
|
MainActivity.enableParameterArea(); |
||||
|
} else { |
||||
|
MainActivity.disableParameterArea(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} catch (Exception e) { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
}; |
||||
|
serialHelper.open(); |
||||
|
} |
||||
|
catch (Exception exception) |
||||
|
{ |
||||
|
Log.d(TAG,"Data Received"); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
private static int index =0; |
||||
|
|
||||
|
|
||||
|
public static void SendData(byte[] data) { |
||||
|
|
||||
|
serialHelper.send( data); // 发送byte[]
|
||||
|
} |
||||
|
|
||||
|
public static byte[] getAllChData=new byte[]{0x55, 0x66,0x01,0x01,0x00,0x00,0x00,0x42,0x02,(byte)(0xB5&0xff),(byte)(0xC0&0xff)}; |
||||
|
public static byte[] stopgetAllChData=new byte[]{0x55, 0x66,0x01,0x01,0x00,0x00,0x00,0x42,0x00,(byte)(0xf7&0xff),(byte)(0xe0&0xff)}; |
||||
|
public static void sendTxt(String sTxt) |
||||
|
{ |
||||
|
serialHelper.sendTxt( sTxt); // 发送byte[]
|
||||
|
} |
||||
|
//serialHelper.send(byte[] bOutArray); // 发送byte[]
|
||||
|
//serialHelper.sendHex(String sHex); // 发送Hex
|
||||
|
//serialHelper.sendTxt(String sTxt); // 发送ASCII
|
||||
|
public static void onDestroy() { |
||||
|
|
||||
|
serialHelper.close(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,77 @@ |
|||||
|
package com.example.removemarineanimals.viewmodels; |
||||
|
|
||||
|
|
||||
|
|
||||
|
import android.view.View; |
||||
|
import android.widget.SeekBar; |
||||
|
|
||||
|
import androidx.annotation.MainThread; |
||||
|
import androidx.lifecycle.LiveData; |
||||
|
import androidx.lifecycle.MutableLiveData; |
||||
|
import androidx.lifecycle.ViewModel; |
||||
|
|
||||
|
import com.example.removemarineanimals.R; |
||||
|
import com.example.removemarineanimals.databinding.ActivityMainBinding; |
||||
|
//import com.example.removemarineanimals.models.user;
|
||||
|
//import com.example.removemarineanimals.services.RobotData;
|
||||
|
import com.example.removemarineanimals.services.RobotDataHanlder; |
||||
|
//import com.example.removemarineanimals.services.VideoHelper;
|
||||
|
|
||||
|
import java.io.UnsupportedEncodingException; |
||||
|
import java.text.SimpleDateFormat; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
import cn.nodemedia.NodePlayer; |
||||
|
|
||||
|
public class MainViewModel extends ViewModel { |
||||
|
|
||||
|
|
||||
|
// public RobotData.DataTrans _dataTrans=new RobotData.DataTrans();
|
||||
|
public static ActivityMainBinding mainBinding;//通过Binding可以获取界面数据
|
||||
|
// public final MutableLiveData<user> LiveUser;
|
||||
|
|
||||
|
public MainViewModel() |
||||
|
{ |
||||
|
// LiveUser = new MutableLiveData<user>();
|
||||
|
//
|
||||
|
// user u=LiveUser.getValue();
|
||||
|
// if(u==null)
|
||||
|
// {
|
||||
|
// u=new user();
|
||||
|
// u.setName("dddddd");
|
||||
|
// LiveUser.setValue(u);
|
||||
|
// }
|
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
//# region Video操作区域
|
||||
|
int recordVideoState=0; |
||||
|
|
||||
|
public void SnapVideo() |
||||
|
{ |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
//#end region Video操作区域
|
||||
|
|
||||
|
void SetPage() |
||||
|
{ |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
||||
@ -0,0 +1,25 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
|
|
||||
|
<!-- 设置透明背景色 --> |
||||
|
<!-- <solid android:color="@color/gainsboro" />--> |
||||
|
<solid android:color="#f2f3f4" /> |
||||
|
<!-- 设置一个黑色边框 --> |
||||
|
<!-- <stroke--> |
||||
|
<!-- android:width="4px"--> |
||||
|
<!-- android:color="@color/deepskyblue" />--> |
||||
|
<!-- 设置四个圆角的半径 --> |
||||
|
<corners |
||||
|
android:bottomLeftRadius="8dp" |
||||
|
android:bottomRightRadius="8dp" |
||||
|
android:topLeftRadius="8dp" |
||||
|
android:topRightRadius="8dp" /> |
||||
|
<!-- 设置一下边距,让空间大一点 --> |
||||
|
<!-- <padding--> |
||||
|
<!-- android:bottom="5dp"--> |
||||
|
<!-- android:left="5dp"--> |
||||
|
<!-- android:right="5dp"--> |
||||
|
<!-- android:top="5dp" />--> |
||||
|
|
||||
|
</shape> |
||||
|
|
||||
@ -0,0 +1,25 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
|
|
||||
|
<!-- 设置透明背景色 --> |
||||
|
<!-- <solid android:color="@color/white" />--> |
||||
|
<solid android:color="#d6eaf8" /> |
||||
|
<!-- 设置一个黑色边框 --> |
||||
|
<!-- <stroke--> |
||||
|
<!-- android:width="4px"--> |
||||
|
<!-- android:color="@color/deepskyblue" />--> |
||||
|
<!-- 设置四个圆角的半径 --> |
||||
|
<corners |
||||
|
android:bottomLeftRadius="8dp" |
||||
|
android:bottomRightRadius="8dp" |
||||
|
android:topLeftRadius="8dp" |
||||
|
android:topRightRadius="8dp" /> |
||||
|
<!-- 设置一下边距,让空间大一点 --> |
||||
|
<!-- <padding--> |
||||
|
<!-- android:bottom="5dp"--> |
||||
|
<!-- android:left="5dp"--> |
||||
|
<!-- android:right="5dp"--> |
||||
|
<!-- android:top="5dp" />--> |
||||
|
|
||||
|
</shape> |
||||
|
|
||||
@ -0,0 +1,24 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
|
|
||||
|
<!-- 设置透明背景色 --> |
||||
|
<solid android:color="#f6ddcc" /> |
||||
|
<!-- 设置一个黑色边框 --> |
||||
|
<!-- <stroke--> |
||||
|
<!-- android:width="4px"--> |
||||
|
<!-- android:color="@color/" />--> |
||||
|
<!-- 设置四个圆角的半径 --> |
||||
|
<corners |
||||
|
android:bottomLeftRadius="8dp" |
||||
|
android:bottomRightRadius="8dp" |
||||
|
android:topLeftRadius="8dp" |
||||
|
android:topRightRadius="8dp" /> |
||||
|
<!-- 设置一下边距,让空间大一点 --> |
||||
|
<!-- <padding--> |
||||
|
<!-- android:bottom="5dp"--> |
||||
|
<!-- android:left="5dp"--> |
||||
|
<!-- android:right="5dp"--> |
||||
|
<!-- android:top="5dp" />--> |
||||
|
|
||||
|
</shape> |
||||
|
|
||||
@ -0,0 +1,15 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" |
||||
|
android:layout_width="match_parent" |
||||
|
android:layout_height="wrap_content" |
||||
|
android:padding="16dp"> |
||||
|
|
||||
|
<TextView |
||||
|
android:id="@+id/tv_logs_content" |
||||
|
android:layout_width="match_parent" |
||||
|
android:layout_height="wrap_content" |
||||
|
android:textSize="14sp" |
||||
|
android:textColor="#000000" |
||||
|
android:scrollbars="vertical" /> |
||||
|
|
||||
|
</ScrollView> |
||||
@ -0,0 +1,17 @@ |
|||||
|
package com.example.removemarineanimals; |
||||
|
|
||||
|
import org.junit.Test; |
||||
|
|
||||
|
import static org.junit.Assert.*; |
||||
|
|
||||
|
/** |
||||
|
* Example local unit test, which will execute on the development machine (host). |
||||
|
* |
||||
|
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a> |
||||
|
*/ |
||||
|
public class ExampleUnitTest { |
||||
|
@Test |
||||
|
public void addition_isCorrect() { |
||||
|
assertEquals(4, 2 + 2); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,729 @@ |
|||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
|
// NO CHECKED-IN PROTOBUF GENCODE
|
||||
|
// source: bsp_IV.proto
|
||||
|
// Protobuf Java Version: 4.27.2
|
||||
|
|
||||
|
public final class BspIV { |
||||
|
private BspIV() {} |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
BspIV.class.getName()); |
||||
|
} |
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistryLite registry) { |
||||
|
} |
||||
|
|
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistry registry) { |
||||
|
registerAllExtensions( |
||||
|
(com.google.protobuf.ExtensionRegistryLite) registry); |
||||
|
} |
||||
|
public interface IV_struct_defineOrBuilder extends |
||||
|
// @@protoc_insertion_point(interface_extends:IV_struct_define)
|
||||
|
com.google.protobuf.MessageOrBuilder { |
||||
|
|
||||
|
/** |
||||
|
* <pre> |
||||
|
* 洗舱项目 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Move_Speed = 1;</code> |
||||
|
* @return The robotMoveSpeed. |
||||
|
*/ |
||||
|
int getRobotMoveSpeed(); |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Robot_Swing_Speed = 2;</code> |
||||
|
* @return The robotSwingSpeed. |
||||
|
*/ |
||||
|
int getRobotSwingSpeed(); |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Speed = 3;</code> |
||||
|
* @return The robotTiltSpeed. |
||||
|
*/ |
||||
|
int getRobotTiltSpeed(); |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Current = 4;</code> |
||||
|
* @return The robotTiltCurrent. |
||||
|
*/ |
||||
|
int getRobotTiltCurrent(); |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code IV_struct_define} |
||||
|
*/ |
||||
|
public static final class IV_struct_define extends |
||||
|
com.google.protobuf.GeneratedMessage implements |
||||
|
// @@protoc_insertion_point(message_implements:IV_struct_define)
|
||||
|
IV_struct_defineOrBuilder { |
||||
|
private static final long serialVersionUID = 0L; |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
IV_struct_define.class.getName()); |
||||
|
} |
||||
|
// Use IV_struct_define.newBuilder() to construct.
|
||||
|
private IV_struct_define(com.google.protobuf.GeneratedMessage.Builder<?> builder) { |
||||
|
super(builder); |
||||
|
} |
||||
|
private IV_struct_define() { |
||||
|
} |
||||
|
|
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return BspIV.internal_static_IV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return BspIV.internal_static_IV_struct_define_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
BspIV.IV_struct_define.class, BspIV.IV_struct_define.Builder.class); |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_MOVE_SPEED_FIELD_NUMBER = 1; |
||||
|
private int robotMoveSpeed_ = 0; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 洗舱项目 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Move_Speed = 1;</code> |
||||
|
* @return The robotMoveSpeed. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotMoveSpeed() { |
||||
|
return robotMoveSpeed_; |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_SWING_SPEED_FIELD_NUMBER = 2; |
||||
|
private int robotSwingSpeed_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Robot_Swing_Speed = 2;</code> |
||||
|
* @return The robotSwingSpeed. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotSwingSpeed() { |
||||
|
return robotSwingSpeed_; |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_TILT_SPEED_FIELD_NUMBER = 3; |
||||
|
private int robotTiltSpeed_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Speed = 3;</code> |
||||
|
* @return The robotTiltSpeed. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotTiltSpeed() { |
||||
|
return robotTiltSpeed_; |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_TILT_CURRENT_FIELD_NUMBER = 4; |
||||
|
private int robotTiltCurrent_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Current = 4;</code> |
||||
|
* @return The robotTiltCurrent. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotTiltCurrent() { |
||||
|
return robotTiltCurrent_; |
||||
|
} |
||||
|
|
||||
|
private byte memoizedIsInitialized = -1; |
||||
|
@java.lang.Override |
||||
|
public final boolean isInitialized() { |
||||
|
byte isInitialized = memoizedIsInitialized; |
||||
|
if (isInitialized == 1) return true; |
||||
|
if (isInitialized == 0) return false; |
||||
|
|
||||
|
memoizedIsInitialized = 1; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public void writeTo(com.google.protobuf.CodedOutputStream output) |
||||
|
throws java.io.IOException { |
||||
|
if (robotMoveSpeed_ != 0) { |
||||
|
output.writeInt32(1, robotMoveSpeed_); |
||||
|
} |
||||
|
if (robotSwingSpeed_ != 0) { |
||||
|
output.writeInt32(2, robotSwingSpeed_); |
||||
|
} |
||||
|
if (robotTiltSpeed_ != 0) { |
||||
|
output.writeInt32(3, robotTiltSpeed_); |
||||
|
} |
||||
|
if (robotTiltCurrent_ != 0) { |
||||
|
output.writeInt32(4, robotTiltCurrent_); |
||||
|
} |
||||
|
getUnknownFields().writeTo(output); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public int getSerializedSize() { |
||||
|
int size = memoizedSize; |
||||
|
if (size != -1) return size; |
||||
|
|
||||
|
size = 0; |
||||
|
if (robotMoveSpeed_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(1, robotMoveSpeed_); |
||||
|
} |
||||
|
if (robotSwingSpeed_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(2, robotSwingSpeed_); |
||||
|
} |
||||
|
if (robotTiltSpeed_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(3, robotTiltSpeed_); |
||||
|
} |
||||
|
if (robotTiltCurrent_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(4, robotTiltCurrent_); |
||||
|
} |
||||
|
size += getUnknownFields().getSerializedSize(); |
||||
|
memoizedSize = size; |
||||
|
return size; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public boolean equals(final java.lang.Object obj) { |
||||
|
if (obj == this) { |
||||
|
return true; |
||||
|
} |
||||
|
if (!(obj instanceof BspIV.IV_struct_define)) { |
||||
|
return super.equals(obj); |
||||
|
} |
||||
|
BspIV.IV_struct_define other = (BspIV.IV_struct_define) obj; |
||||
|
|
||||
|
if (getRobotMoveSpeed() |
||||
|
!= other.getRobotMoveSpeed()) return false; |
||||
|
if (getRobotSwingSpeed() |
||||
|
!= other.getRobotSwingSpeed()) return false; |
||||
|
if (getRobotTiltSpeed() |
||||
|
!= other.getRobotTiltSpeed()) return false; |
||||
|
if (getRobotTiltCurrent() |
||||
|
!= other.getRobotTiltCurrent()) return false; |
||||
|
if (!getUnknownFields().equals(other.getUnknownFields())) return false; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public int hashCode() { |
||||
|
if (memoizedHashCode != 0) { |
||||
|
return memoizedHashCode; |
||||
|
} |
||||
|
int hash = 41; |
||||
|
hash = (19 * hash) + getDescriptor().hashCode(); |
||||
|
hash = (37 * hash) + ROBOT_MOVE_SPEED_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotMoveSpeed(); |
||||
|
hash = (37 * hash) + ROBOT_SWING_SPEED_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotSwingSpeed(); |
||||
|
hash = (37 * hash) + ROBOT_TILT_SPEED_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotTiltSpeed(); |
||||
|
hash = (37 * hash) + ROBOT_TILT_CURRENT_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotTiltCurrent(); |
||||
|
hash = (29 * hash) + getUnknownFields().hashCode(); |
||||
|
memoizedHashCode = hash; |
||||
|
return hash; |
||||
|
} |
||||
|
|
||||
|
public static BspIV.IV_struct_define parseFrom( |
||||
|
java.nio.ByteBuffer data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom( |
||||
|
java.nio.ByteBuffer data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom( |
||||
|
com.google.protobuf.ByteString data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom( |
||||
|
com.google.protobuf.ByteString data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom(byte[] data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom( |
||||
|
byte[] data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
public static BspIV.IV_struct_define parseDelimitedFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input); |
||||
|
} |
||||
|
|
||||
|
public static BspIV.IV_struct_define parseDelimitedFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static BspIV.IV_struct_define parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder newBuilderForType() { return newBuilder(); } |
||||
|
public static Builder newBuilder() { |
||||
|
return DEFAULT_INSTANCE.toBuilder(); |
||||
|
} |
||||
|
public static Builder newBuilder(BspIV.IV_struct_define prototype) { |
||||
|
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); |
||||
|
} |
||||
|
@java.lang.Override |
||||
|
public Builder toBuilder() { |
||||
|
return this == DEFAULT_INSTANCE |
||||
|
? new Builder() : new Builder().mergeFrom(this); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected Builder newBuilderForType( |
||||
|
com.google.protobuf.GeneratedMessage.BuilderParent parent) { |
||||
|
Builder builder = new Builder(parent); |
||||
|
return builder; |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code IV_struct_define} |
||||
|
*/ |
||||
|
public static final class Builder extends |
||||
|
com.google.protobuf.GeneratedMessage.Builder<Builder> implements |
||||
|
// @@protoc_insertion_point(builder_implements:IV_struct_define)
|
||||
|
BspIV.IV_struct_defineOrBuilder { |
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return BspIV.internal_static_IV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return BspIV.internal_static_IV_struct_define_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
BspIV.IV_struct_define.class, BspIV.IV_struct_define.Builder.class); |
||||
|
} |
||||
|
|
||||
|
// Construct using BspIV.IV_struct_define.newBuilder()
|
||||
|
private Builder() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private Builder( |
||||
|
com.google.protobuf.GeneratedMessage.BuilderParent parent) { |
||||
|
super(parent); |
||||
|
|
||||
|
} |
||||
|
@java.lang.Override |
||||
|
public Builder clear() { |
||||
|
super.clear(); |
||||
|
bitField0_ = 0; |
||||
|
robotMoveSpeed_ = 0; |
||||
|
robotSwingSpeed_ = 0; |
||||
|
robotTiltSpeed_ = 0; |
||||
|
robotTiltCurrent_ = 0; |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptorForType() { |
||||
|
return BspIV.internal_static_IV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public BspIV.IV_struct_define getDefaultInstanceForType() { |
||||
|
return BspIV.IV_struct_define.getDefaultInstance(); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public BspIV.IV_struct_define build() { |
||||
|
BspIV.IV_struct_define result = buildPartial(); |
||||
|
if (!result.isInitialized()) { |
||||
|
throw newUninitializedMessageException(result); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public BspIV.IV_struct_define buildPartial() { |
||||
|
BspIV.IV_struct_define result = new BspIV.IV_struct_define(this); |
||||
|
if (bitField0_ != 0) { buildPartial0(result); } |
||||
|
onBuilt(); |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
private void buildPartial0(BspIV.IV_struct_define result) { |
||||
|
int from_bitField0_ = bitField0_; |
||||
|
if (((from_bitField0_ & 0x00000001) != 0)) { |
||||
|
result.robotMoveSpeed_ = robotMoveSpeed_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000002) != 0)) { |
||||
|
result.robotSwingSpeed_ = robotSwingSpeed_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000004) != 0)) { |
||||
|
result.robotTiltSpeed_ = robotTiltSpeed_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000008) != 0)) { |
||||
|
result.robotTiltCurrent_ = robotTiltCurrent_; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder mergeFrom(com.google.protobuf.Message other) { |
||||
|
if (other instanceof BspIV.IV_struct_define) { |
||||
|
return mergeFrom((BspIV.IV_struct_define)other); |
||||
|
} else { |
||||
|
super.mergeFrom(other); |
||||
|
return this; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Builder mergeFrom(BspIV.IV_struct_define other) { |
||||
|
if (other == BspIV.IV_struct_define.getDefaultInstance()) return this; |
||||
|
if (other.getRobotMoveSpeed() != 0) { |
||||
|
setRobotMoveSpeed(other.getRobotMoveSpeed()); |
||||
|
} |
||||
|
if (other.getRobotSwingSpeed() != 0) { |
||||
|
setRobotSwingSpeed(other.getRobotSwingSpeed()); |
||||
|
} |
||||
|
if (other.getRobotTiltSpeed() != 0) { |
||||
|
setRobotTiltSpeed(other.getRobotTiltSpeed()); |
||||
|
} |
||||
|
if (other.getRobotTiltCurrent() != 0) { |
||||
|
setRobotTiltCurrent(other.getRobotTiltCurrent()); |
||||
|
} |
||||
|
this.mergeUnknownFields(other.getUnknownFields()); |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public final boolean isInitialized() { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder mergeFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
if (extensionRegistry == null) { |
||||
|
throw new java.lang.NullPointerException(); |
||||
|
} |
||||
|
try { |
||||
|
boolean done = false; |
||||
|
while (!done) { |
||||
|
int tag = input.readTag(); |
||||
|
switch (tag) { |
||||
|
case 0: |
||||
|
done = true; |
||||
|
break; |
||||
|
case 8: { |
||||
|
robotMoveSpeed_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000001; |
||||
|
break; |
||||
|
} // case 8
|
||||
|
case 16: { |
||||
|
robotSwingSpeed_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000002; |
||||
|
break; |
||||
|
} // case 16
|
||||
|
case 24: { |
||||
|
robotTiltSpeed_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000004; |
||||
|
break; |
||||
|
} // case 24
|
||||
|
case 32: { |
||||
|
robotTiltCurrent_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000008; |
||||
|
break; |
||||
|
} // case 32
|
||||
|
default: { |
||||
|
if (!super.parseUnknownField(input, extensionRegistry, tag)) { |
||||
|
done = true; // was an endgroup tag
|
||||
|
} |
||||
|
break; |
||||
|
} // default:
|
||||
|
} // switch (tag)
|
||||
|
} // while (!done)
|
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.unwrapIOException(); |
||||
|
} finally { |
||||
|
onChanged(); |
||||
|
} // finally
|
||||
|
return this; |
||||
|
} |
||||
|
private int bitField0_; |
||||
|
|
||||
|
private int robotMoveSpeed_ ; |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 洗舱项目 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Move_Speed = 1;</code> |
||||
|
* @return The robotMoveSpeed. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotMoveSpeed() { |
||||
|
return robotMoveSpeed_; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 洗舱项目 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Move_Speed = 1;</code> |
||||
|
* @param value The robotMoveSpeed to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotMoveSpeed(int value) { |
||||
|
|
||||
|
robotMoveSpeed_ = value; |
||||
|
bitField0_ |= 0x00000001; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <pre> |
||||
|
* 洗舱项目 |
||||
|
* </pre> |
||||
|
* |
||||
|
* <code>int32 Robot_Move_Speed = 1;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotMoveSpeed() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000001); |
||||
|
robotMoveSpeed_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int robotSwingSpeed_ ; |
||||
|
/** |
||||
|
* <code>int32 Robot_Swing_Speed = 2;</code> |
||||
|
* @return The robotSwingSpeed. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotSwingSpeed() { |
||||
|
return robotSwingSpeed_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Swing_Speed = 2;</code> |
||||
|
* @param value The robotSwingSpeed to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotSwingSpeed(int value) { |
||||
|
|
||||
|
robotSwingSpeed_ = value; |
||||
|
bitField0_ |= 0x00000002; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Swing_Speed = 2;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotSwingSpeed() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000002); |
||||
|
robotSwingSpeed_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int robotTiltSpeed_ ; |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Speed = 3;</code> |
||||
|
* @return The robotTiltSpeed. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotTiltSpeed() { |
||||
|
return robotTiltSpeed_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Speed = 3;</code> |
||||
|
* @param value The robotTiltSpeed to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotTiltSpeed(int value) { |
||||
|
|
||||
|
robotTiltSpeed_ = value; |
||||
|
bitField0_ |= 0x00000004; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Speed = 3;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotTiltSpeed() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000004); |
||||
|
robotTiltSpeed_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int robotTiltCurrent_ ; |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Current = 4;</code> |
||||
|
* @return The robotTiltCurrent. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotTiltCurrent() { |
||||
|
return robotTiltCurrent_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Current = 4;</code> |
||||
|
* @param value The robotTiltCurrent to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotTiltCurrent(int value) { |
||||
|
|
||||
|
robotTiltCurrent_ = value; |
||||
|
bitField0_ |= 0x00000008; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_Current = 4;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotTiltCurrent() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000008); |
||||
|
robotTiltCurrent_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(builder_scope:IV_struct_define)
|
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(class_scope:IV_struct_define)
|
||||
|
private static final BspIV.IV_struct_define DEFAULT_INSTANCE; |
||||
|
static { |
||||
|
DEFAULT_INSTANCE = new BspIV.IV_struct_define(); |
||||
|
} |
||||
|
|
||||
|
public static BspIV.IV_struct_define getDefaultInstance() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Parser<IV_struct_define> |
||||
|
PARSER = new com.google.protobuf.AbstractParser<IV_struct_define>() { |
||||
|
@java.lang.Override |
||||
|
public IV_struct_define parsePartialFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
Builder builder = newBuilder(); |
||||
|
try { |
||||
|
builder.mergeFrom(input, extensionRegistry); |
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (com.google.protobuf.UninitializedMessageException e) { |
||||
|
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (java.io.IOException e) { |
||||
|
throw new com.google.protobuf.InvalidProtocolBufferException(e) |
||||
|
.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} |
||||
|
return builder.buildPartial(); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
public static com.google.protobuf.Parser<IV_struct_define> parser() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.google.protobuf.Parser<IV_struct_define> getParserForType() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public BspIV.IV_struct_define getDefaultInstanceForType() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Descriptors.Descriptor |
||||
|
internal_static_IV_struct_define_descriptor; |
||||
|
private static final |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internal_static_IV_struct_define_fieldAccessorTable; |
||||
|
|
||||
|
public static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
getDescriptor() { |
||||
|
return descriptor; |
||||
|
} |
||||
|
private static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
descriptor; |
||||
|
static { |
||||
|
java.lang.String[] descriptorData = { |
||||
|
"\n\014bsp_IV.proto\"}\n\020IV_struct_define\022\030\n\020Ro" + |
||||
|
"bot_Move_Speed\030\001 \001(\005\022\031\n\021Robot_Swing_Spee" + |
||||
|
"d\030\002 \001(\005\022\030\n\020Robot_Tilt_Speed\030\003 \001(\005\022\032\n\022Rob" + |
||||
|
"ot_Tilt_Current\030\004 \001(\005b\006proto3" |
||||
|
}; |
||||
|
descriptor = com.google.protobuf.Descriptors.FileDescriptor |
||||
|
.internalBuildGeneratedFileFrom(descriptorData, |
||||
|
new com.google.protobuf.Descriptors.FileDescriptor[] { |
||||
|
}); |
||||
|
internal_static_IV_struct_define_descriptor = |
||||
|
getDescriptor().getMessageTypes().get(0); |
||||
|
internal_static_IV_struct_define_fieldAccessorTable = new |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable( |
||||
|
internal_static_IV_struct_define_descriptor, |
||||
|
new java.lang.String[] { "RobotMoveSpeed", "RobotSwingSpeed", "RobotTiltSpeed", "RobotTiltCurrent", }); |
||||
|
descriptor.resolveAllFeaturesImmutable(); |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(outer_class_scope)
|
||||
|
} |
||||
@ -0,0 +1,564 @@ |
|||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||
|
// NO CHECKED-IN PROTOBUF GENCODE
|
||||
|
// source: bsp_PV.proto
|
||||
|
// Protobuf Java Version: 4.27.2
|
||||
|
|
||||
|
public final class BspPV { |
||||
|
private BspPV() {} |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
BspPV.class.getName()); |
||||
|
} |
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistryLite registry) { |
||||
|
} |
||||
|
|
||||
|
public static void registerAllExtensions( |
||||
|
com.google.protobuf.ExtensionRegistry registry) { |
||||
|
registerAllExtensions( |
||||
|
(com.google.protobuf.ExtensionRegistryLite) registry); |
||||
|
} |
||||
|
public interface PV_struct_defineOrBuilder extends |
||||
|
// @@protoc_insertion_point(interface_extends:PV_struct_define)
|
||||
|
com.google.protobuf.MessageOrBuilder { |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_TargetCurrent = 1;</code> |
||||
|
* @return The robotTiltTargetCurrent. |
||||
|
*/ |
||||
|
int getRobotTiltTargetCurrent(); |
||||
|
|
||||
|
/** |
||||
|
* <code>int32 CurrentModeValue = 2;</code> |
||||
|
* @return The currentModeValue. |
||||
|
*/ |
||||
|
int getCurrentModeValue(); |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code PV_struct_define} |
||||
|
*/ |
||||
|
public static final class PV_struct_define extends |
||||
|
com.google.protobuf.GeneratedMessage implements |
||||
|
// @@protoc_insertion_point(message_implements:PV_struct_define)
|
||||
|
PV_struct_defineOrBuilder { |
||||
|
private static final long serialVersionUID = 0L; |
||||
|
static { |
||||
|
com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( |
||||
|
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, |
||||
|
/* major= */ 4, |
||||
|
/* minor= */ 27, |
||||
|
/* patch= */ 2, |
||||
|
/* suffix= */ "", |
||||
|
PV_struct_define.class.getName()); |
||||
|
} |
||||
|
// Use PV_struct_define.newBuilder() to construct.
|
||||
|
private PV_struct_define(com.google.protobuf.GeneratedMessage.Builder<?> builder) { |
||||
|
super(builder); |
||||
|
} |
||||
|
private PV_struct_define() { |
||||
|
} |
||||
|
|
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return BspPV.internal_static_PV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return BspPV.internal_static_PV_struct_define_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
BspPV.PV_struct_define.class, BspPV.PV_struct_define.Builder.class); |
||||
|
} |
||||
|
|
||||
|
public static final int ROBOT_TILT_TARGETCURRENT_FIELD_NUMBER = 1; |
||||
|
private int robotTiltTargetCurrent_ = 0; |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_TargetCurrent = 1;</code> |
||||
|
* @return The robotTiltTargetCurrent. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotTiltTargetCurrent() { |
||||
|
return robotTiltTargetCurrent_; |
||||
|
} |
||||
|
|
||||
|
public static final int CURRENTMODEVALUE_FIELD_NUMBER = 2; |
||||
|
private int currentModeValue_ = 0; |
||||
|
/** |
||||
|
* <code>int32 CurrentModeValue = 2;</code> |
||||
|
* @return The currentModeValue. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getCurrentModeValue() { |
||||
|
return currentModeValue_; |
||||
|
} |
||||
|
|
||||
|
private byte memoizedIsInitialized = -1; |
||||
|
@java.lang.Override |
||||
|
public final boolean isInitialized() { |
||||
|
byte isInitialized = memoizedIsInitialized; |
||||
|
if (isInitialized == 1) return true; |
||||
|
if (isInitialized == 0) return false; |
||||
|
|
||||
|
memoizedIsInitialized = 1; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public void writeTo(com.google.protobuf.CodedOutputStream output) |
||||
|
throws java.io.IOException { |
||||
|
if (robotTiltTargetCurrent_ != 0) { |
||||
|
output.writeInt32(1, robotTiltTargetCurrent_); |
||||
|
} |
||||
|
if (currentModeValue_ != 0) { |
||||
|
output.writeInt32(2, currentModeValue_); |
||||
|
} |
||||
|
getUnknownFields().writeTo(output); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public int getSerializedSize() { |
||||
|
int size = memoizedSize; |
||||
|
if (size != -1) return size; |
||||
|
|
||||
|
size = 0; |
||||
|
if (robotTiltTargetCurrent_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(1, robotTiltTargetCurrent_); |
||||
|
} |
||||
|
if (currentModeValue_ != 0) { |
||||
|
size += com.google.protobuf.CodedOutputStream |
||||
|
.computeInt32Size(2, currentModeValue_); |
||||
|
} |
||||
|
size += getUnknownFields().getSerializedSize(); |
||||
|
memoizedSize = size; |
||||
|
return size; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public boolean equals(final java.lang.Object obj) { |
||||
|
if (obj == this) { |
||||
|
return true; |
||||
|
} |
||||
|
if (!(obj instanceof BspPV.PV_struct_define)) { |
||||
|
return super.equals(obj); |
||||
|
} |
||||
|
BspPV.PV_struct_define other = (BspPV.PV_struct_define) obj; |
||||
|
|
||||
|
if (getRobotTiltTargetCurrent() |
||||
|
!= other.getRobotTiltTargetCurrent()) return false; |
||||
|
if (getCurrentModeValue() |
||||
|
!= other.getCurrentModeValue()) return false; |
||||
|
if (!getUnknownFields().equals(other.getUnknownFields())) return false; |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public int hashCode() { |
||||
|
if (memoizedHashCode != 0) { |
||||
|
return memoizedHashCode; |
||||
|
} |
||||
|
int hash = 41; |
||||
|
hash = (19 * hash) + getDescriptor().hashCode(); |
||||
|
hash = (37 * hash) + ROBOT_TILT_TARGETCURRENT_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getRobotTiltTargetCurrent(); |
||||
|
hash = (37 * hash) + CURRENTMODEVALUE_FIELD_NUMBER; |
||||
|
hash = (53 * hash) + getCurrentModeValue(); |
||||
|
hash = (29 * hash) + getUnknownFields().hashCode(); |
||||
|
memoizedHashCode = hash; |
||||
|
return hash; |
||||
|
} |
||||
|
|
||||
|
public static BspPV.PV_struct_define parseFrom( |
||||
|
java.nio.ByteBuffer data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom( |
||||
|
java.nio.ByteBuffer data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom( |
||||
|
com.google.protobuf.ByteString data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom( |
||||
|
com.google.protobuf.ByteString data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom(byte[] data) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom( |
||||
|
byte[] data, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
return PARSER.parseFrom(data, extensionRegistry); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
public static BspPV.PV_struct_define parseDelimitedFrom(java.io.InputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input); |
||||
|
} |
||||
|
|
||||
|
public static BspPV.PV_struct_define parseDelimitedFrom( |
||||
|
java.io.InputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseDelimitedWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input); |
||||
|
} |
||||
|
public static BspPV.PV_struct_define parseFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
return com.google.protobuf.GeneratedMessage |
||||
|
.parseWithIOException(PARSER, input, extensionRegistry); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder newBuilderForType() { return newBuilder(); } |
||||
|
public static Builder newBuilder() { |
||||
|
return DEFAULT_INSTANCE.toBuilder(); |
||||
|
} |
||||
|
public static Builder newBuilder(BspPV.PV_struct_define prototype) { |
||||
|
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); |
||||
|
} |
||||
|
@java.lang.Override |
||||
|
public Builder toBuilder() { |
||||
|
return this == DEFAULT_INSTANCE |
||||
|
? new Builder() : new Builder().mergeFrom(this); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected Builder newBuilderForType( |
||||
|
com.google.protobuf.GeneratedMessage.BuilderParent parent) { |
||||
|
Builder builder = new Builder(parent); |
||||
|
return builder; |
||||
|
} |
||||
|
/** |
||||
|
* Protobuf type {@code PV_struct_define} |
||||
|
*/ |
||||
|
public static final class Builder extends |
||||
|
com.google.protobuf.GeneratedMessage.Builder<Builder> implements |
||||
|
// @@protoc_insertion_point(builder_implements:PV_struct_define)
|
||||
|
BspPV.PV_struct_defineOrBuilder { |
||||
|
public static final com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptor() { |
||||
|
return BspPV.internal_static_PV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internalGetFieldAccessorTable() { |
||||
|
return BspPV.internal_static_PV_struct_define_fieldAccessorTable |
||||
|
.ensureFieldAccessorsInitialized( |
||||
|
BspPV.PV_struct_define.class, BspPV.PV_struct_define.Builder.class); |
||||
|
} |
||||
|
|
||||
|
// Construct using BspPV.PV_struct_define.newBuilder()
|
||||
|
private Builder() { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private Builder( |
||||
|
com.google.protobuf.GeneratedMessage.BuilderParent parent) { |
||||
|
super(parent); |
||||
|
|
||||
|
} |
||||
|
@java.lang.Override |
||||
|
public Builder clear() { |
||||
|
super.clear(); |
||||
|
bitField0_ = 0; |
||||
|
robotTiltTargetCurrent_ = 0; |
||||
|
currentModeValue_ = 0; |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.google.protobuf.Descriptors.Descriptor |
||||
|
getDescriptorForType() { |
||||
|
return BspPV.internal_static_PV_struct_define_descriptor; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public BspPV.PV_struct_define getDefaultInstanceForType() { |
||||
|
return BspPV.PV_struct_define.getDefaultInstance(); |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public BspPV.PV_struct_define build() { |
||||
|
BspPV.PV_struct_define result = buildPartial(); |
||||
|
if (!result.isInitialized()) { |
||||
|
throw newUninitializedMessageException(result); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public BspPV.PV_struct_define buildPartial() { |
||||
|
BspPV.PV_struct_define result = new BspPV.PV_struct_define(this); |
||||
|
if (bitField0_ != 0) { buildPartial0(result); } |
||||
|
onBuilt(); |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
private void buildPartial0(BspPV.PV_struct_define result) { |
||||
|
int from_bitField0_ = bitField0_; |
||||
|
if (((from_bitField0_ & 0x00000001) != 0)) { |
||||
|
result.robotTiltTargetCurrent_ = robotTiltTargetCurrent_; |
||||
|
} |
||||
|
if (((from_bitField0_ & 0x00000002) != 0)) { |
||||
|
result.currentModeValue_ = currentModeValue_; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder mergeFrom(com.google.protobuf.Message other) { |
||||
|
if (other instanceof BspPV.PV_struct_define) { |
||||
|
return mergeFrom((BspPV.PV_struct_define)other); |
||||
|
} else { |
||||
|
super.mergeFrom(other); |
||||
|
return this; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public Builder mergeFrom(BspPV.PV_struct_define other) { |
||||
|
if (other == BspPV.PV_struct_define.getDefaultInstance()) return this; |
||||
|
if (other.getRobotTiltTargetCurrent() != 0) { |
||||
|
setRobotTiltTargetCurrent(other.getRobotTiltTargetCurrent()); |
||||
|
} |
||||
|
if (other.getCurrentModeValue() != 0) { |
||||
|
setCurrentModeValue(other.getCurrentModeValue()); |
||||
|
} |
||||
|
this.mergeUnknownFields(other.getUnknownFields()); |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public final boolean isInitialized() { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public Builder mergeFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws java.io.IOException { |
||||
|
if (extensionRegistry == null) { |
||||
|
throw new java.lang.NullPointerException(); |
||||
|
} |
||||
|
try { |
||||
|
boolean done = false; |
||||
|
while (!done) { |
||||
|
int tag = input.readTag(); |
||||
|
switch (tag) { |
||||
|
case 0: |
||||
|
done = true; |
||||
|
break; |
||||
|
case 8: { |
||||
|
robotTiltTargetCurrent_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000001; |
||||
|
break; |
||||
|
} // case 8
|
||||
|
case 16: { |
||||
|
currentModeValue_ = input.readInt32(); |
||||
|
bitField0_ |= 0x00000002; |
||||
|
break; |
||||
|
} // case 16
|
||||
|
default: { |
||||
|
if (!super.parseUnknownField(input, extensionRegistry, tag)) { |
||||
|
done = true; // was an endgroup tag
|
||||
|
} |
||||
|
break; |
||||
|
} // default:
|
||||
|
} // switch (tag)
|
||||
|
} // while (!done)
|
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.unwrapIOException(); |
||||
|
} finally { |
||||
|
onChanged(); |
||||
|
} // finally
|
||||
|
return this; |
||||
|
} |
||||
|
private int bitField0_; |
||||
|
|
||||
|
private int robotTiltTargetCurrent_ ; |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_TargetCurrent = 1;</code> |
||||
|
* @return The robotTiltTargetCurrent. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getRobotTiltTargetCurrent() { |
||||
|
return robotTiltTargetCurrent_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_TargetCurrent = 1;</code> |
||||
|
* @param value The robotTiltTargetCurrent to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setRobotTiltTargetCurrent(int value) { |
||||
|
|
||||
|
robotTiltTargetCurrent_ = value; |
||||
|
bitField0_ |= 0x00000001; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 Robot_Tilt_TargetCurrent = 1;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearRobotTiltTargetCurrent() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000001); |
||||
|
robotTiltTargetCurrent_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
private int currentModeValue_ ; |
||||
|
/** |
||||
|
* <code>int32 CurrentModeValue = 2;</code> |
||||
|
* @return The currentModeValue. |
||||
|
*/ |
||||
|
@java.lang.Override |
||||
|
public int getCurrentModeValue() { |
||||
|
return currentModeValue_; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 CurrentModeValue = 2;</code> |
||||
|
* @param value The currentModeValue to set. |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder setCurrentModeValue(int value) { |
||||
|
|
||||
|
currentModeValue_ = value; |
||||
|
bitField0_ |= 0x00000002; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
/** |
||||
|
* <code>int32 CurrentModeValue = 2;</code> |
||||
|
* @return This builder for chaining. |
||||
|
*/ |
||||
|
public Builder clearCurrentModeValue() { |
||||
|
bitField0_ = (bitField0_ & ~0x00000002); |
||||
|
currentModeValue_ = 0; |
||||
|
onChanged(); |
||||
|
return this; |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(builder_scope:PV_struct_define)
|
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(class_scope:PV_struct_define)
|
||||
|
private static final BspPV.PV_struct_define DEFAULT_INSTANCE; |
||||
|
static { |
||||
|
DEFAULT_INSTANCE = new BspPV.PV_struct_define(); |
||||
|
} |
||||
|
|
||||
|
public static BspPV.PV_struct_define getDefaultInstance() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Parser<PV_struct_define> |
||||
|
PARSER = new com.google.protobuf.AbstractParser<PV_struct_define>() { |
||||
|
@java.lang.Override |
||||
|
public PV_struct_define parsePartialFrom( |
||||
|
com.google.protobuf.CodedInputStream input, |
||||
|
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
||||
|
throws com.google.protobuf.InvalidProtocolBufferException { |
||||
|
Builder builder = newBuilder(); |
||||
|
try { |
||||
|
builder.mergeFrom(input, extensionRegistry); |
||||
|
} catch (com.google.protobuf.InvalidProtocolBufferException e) { |
||||
|
throw e.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (com.google.protobuf.UninitializedMessageException e) { |
||||
|
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); |
||||
|
} catch (java.io.IOException e) { |
||||
|
throw new com.google.protobuf.InvalidProtocolBufferException(e) |
||||
|
.setUnfinishedMessage(builder.buildPartial()); |
||||
|
} |
||||
|
return builder.buildPartial(); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
public static com.google.protobuf.Parser<PV_struct_define> parser() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public com.google.protobuf.Parser<PV_struct_define> getParserForType() { |
||||
|
return PARSER; |
||||
|
} |
||||
|
|
||||
|
@java.lang.Override |
||||
|
public BspPV.PV_struct_define getDefaultInstanceForType() { |
||||
|
return DEFAULT_INSTANCE; |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
private static final com.google.protobuf.Descriptors.Descriptor |
||||
|
internal_static_PV_struct_define_descriptor; |
||||
|
private static final |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable |
||||
|
internal_static_PV_struct_define_fieldAccessorTable; |
||||
|
|
||||
|
public static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
getDescriptor() { |
||||
|
return descriptor; |
||||
|
} |
||||
|
private static com.google.protobuf.Descriptors.FileDescriptor |
||||
|
descriptor; |
||||
|
static { |
||||
|
java.lang.String[] descriptorData = { |
||||
|
"\n\014bsp_PV.proto\"N\n\020PV_struct_define\022 \n\030Ro" + |
||||
|
"bot_Tilt_TargetCurrent\030\001 \001(\005\022\030\n\020CurrentM" + |
||||
|
"odeValue\030\002 \001(\005b\006proto3" |
||||
|
}; |
||||
|
descriptor = com.google.protobuf.Descriptors.FileDescriptor |
||||
|
.internalBuildGeneratedFileFrom(descriptorData, |
||||
|
new com.google.protobuf.Descriptors.FileDescriptor[] { |
||||
|
}); |
||||
|
internal_static_PV_struct_define_descriptor = |
||||
|
getDescriptor().getMessageTypes().get(0); |
||||
|
internal_static_PV_struct_define_fieldAccessorTable = new |
||||
|
com.google.protobuf.GeneratedMessage.FieldAccessorTable( |
||||
|
internal_static_PV_struct_define_descriptor, |
||||
|
new java.lang.String[] { "RobotTiltTargetCurrent", "CurrentModeValue", }); |
||||
|
descriptor.resolveAllFeaturesImmutable(); |
||||
|
} |
||||
|
|
||||
|
// @@protoc_insertion_point(outer_class_scope)
|
||||
|
} |
||||
@ -0,0 +1,10 @@ |
|||||
|
syntax = "proto3"; |
||||
|
message IV_struct_define{ |
||||
|
|
||||
|
// 洗舱项目 |
||||
|
int32 Robot_Move_Speed= 1; |
||||
|
int32 Robot_Swing_Speed= 2; |
||||
|
int32 Robot_Tilt_Speed= 3; |
||||
|
int32 Robot_Tilt_Current= 4; |
||||
|
|
||||
|
}; |
||||
@ -0,0 +1,6 @@ |
|||||
|
syntax = "proto3"; |
||||
|
message PV_struct_define{ |
||||
|
|
||||
|
int32 Robot_Tilt_TargetCurrent= 1; |
||||
|
int32 CurrentModeValue=2; |
||||
|
}; |
||||
Loading…
Reference in new issue