Commit cdfc3702 authored by p x's avatar p x
Browse files

删除16jinzhi 几西裤

parent 99964718
package com.sixteen.parse.normal;
import com.sixteen.parse.annotates.Order;
public class Position2DDto {
//经度
@Order(1)
private double longitude;
//纬度
@Order(2)
private double latitude;
public double getLongitude() {
return longitude;
}
public double getLatitude() {
return latitude;
}
}
package com.sixteen.parse.normal
class PositionDto {
//经度
var longitude = 0.0
//纬度
var latitude = 0.0
//高程 单位米
var elevation = 0.0
}
package com.sixteen.parse.selfdefine_810.dto;
import com.sixteen.parse.normal.PositionDto;
/**
* 下行自定义功能信息(CLOUD2VEH_TEST)数据结构应符合表 71 的要求。
*/
public class SelfDefineDetailDto {
//RV远车id 用于让地图变红
private String rvVehicleId;
//预警类型
private short type;
//GNSS时间戳
private long timestampGNSS;
//主车经纬度
private PositionDto location;
//主车速度
private double speed;
//主车航向角
private double heading;
//RV远车经纬度
private PositionDto rvLocation;
//RV远车速度
private double rvSpeed;
//RV方向
private double rvHeading;
//预警级别
private short level;
//预警距离
private float distance;
public PositionDto getLocation() {
return location;
}
public String getRvVehicleId() {
return rvVehicleId;
}
public void setRvVehicleId(String rvVehicleId) {
this.rvVehicleId = rvVehicleId;
}
public double getRvSpeed() {
return rvSpeed;
}
public double getRvHeading() {
return rvHeading;
}
public short getType() {
return type;
}
}
package com.sixteen.parse.selfdefine_810.dto;
public class SelfDefineMessageBodyDto {
//车辆编号
private String vehicleId;
//消息标识
private long seq;
//数据长度
private int dataLen;
//数据内容
private SelfDefineDetailDto data;
public int getDataLen() {
return dataLen;
}
}
package com.sixteen.parse.selfdefine_810.vo;
import com.sixteen.parse.annotates.FieldDef;
import com.sixteen.parse.annotates.OffsetDef;
import com.sixteen.parse.annotates.Order;
import com.sixteen.parse.normal.Position;
/**
* @author huangml
*/
public class SelfDefineDetail {
@Order(1)
@FieldDef(type = "BYTE", isArray = true, length = 36)
private String rvVehicleId;
//预警类型
@Order(2)
private short type;
//GNSS时间戳
@Order(3)
@FieldDef(type = "TIMESTAMP", isArray = false, length = 8)
private long timestampGNSS;
//主车经纬度
@Order(4)
private Position location;
//主车速度 0.01 m/s
@Order(5)
@OffsetDef(value = 0.036)
private int speed;
//主车航向角
@Order(6)
@OffsetDef(value=0.0001,minValidLength=7)
private long heading;
//RV远车经纬度
@Order(7)
private Position rvLocation;
//RV远车速度 单位:0.01 m/s
@Order(8)
@OffsetDef(value = 0.036)
private int rvSpeed;
//RV方向
@Order(9)
@OffsetDef(value=0.0001,minValidLength=7)
private long rvHeading;
//预警级别
@Order(10)
private short level;
//预警距离 ,自车与远车的距离,单位:cm
@Order(11)
@OffsetDef(value=0.01)
private int distance;
}
package com.sixteen.parse.selfdefine_810.vo;
import com.sixteen.parse.annotates.Order;
import com.sixteen.parse.normal.MessageHeadInfo;
/**
* 自定义功能信息 8.10
* @author huangml
*/
public class SelfDefineMessage {
//报文头
@Order(1)
private MessageHeadInfo messageHeadInfo;
@Order(2)
private SelfDefineMessageBody selfDefineMessageBody;
public SelfDefineMessageBody getSelfDefineMessageBody() {
return selfDefineMessageBody;
}
}
package com.sixteen.parse.selfdefine_810.vo;
import com.sixteen.parse.annotates.FieldDef;
import com.sixteen.parse.annotates.Order;
/***8.10.4 数据结构及定义**/
public class SelfDefineMessageBody {
//车辆编号 和感知车ptcid 对应
@Order(1)
@FieldDef(type = "BYTE", isArray = true, length = 8)
private String vehicleId;
//消息标识
@Order(2)
@FieldDef(type = "BYTE", isArray = true, length = 8)
private long seq;
//数据长度
@Order(3)
private int dataLen;
//数据内容
@Order(4)
private SelfDefineDetail data;
public SelfDefineDetail getData() {
return data;
}
}
package com.sixteen.parse.vehcloud_state_82.dto;
import com.sixteen.parse.annotates.NumFlag;
import com.sixteen.parse.annotates.Order;
import com.sixteen.parse.annotates.RefNumFlag;
import java.util.List;
/**
* 车辆自动驾驶信息
* @author huangml
*
*/
public class AutomaticDriveInfoDto {
//执行云端控制命令编号
@Order(1)
private long cloudMessageId;
//自动驾驶需求加速度
@Order(2)
private int accelCmd;
//自动驾驶需求扭矩
@Order(3)
private long torqueCmd;
//自动驾驶需求速度
@Order(4)
private int velocityCmd;
//规划-位置点轨 迹数量
@Order(5)
@NumFlag
private int planningLocNum;
//规划-位置点轨 迹列表
@Order(6)
@RefNumFlag(value="planningLocNum")
private List<TracePointDto> planningLocs;
//决策-换道
@Order(7)
private short decisionLaneChange;
//加减速
@Order(8)
private short decisionAccel;
//决策-转向
@Order(9)
private short decisionTurnSignal;
//决策-车辆状态
@Order(10)
private short decisionVehicleStatus;
//感知目标个数
@Order(11)
@NumFlag
private short detectionLen;
//感知目标数据
@RefNumFlag(value="detectionLen")
@Order(12)
private List<TrajectoryInfoDto> detectionData;
//自动驾驶系统故障
@Order(13)
private int autoDrivingSysFault;
//电子手刹状态
@Order(14)
private short epbFlag;
//自定义字段长度
@Order(15)
private short userdefinedDataLength;
//自定义字段内容
@Order(16)
private byte[] userdefinedData;
}
package com.sixteen.parse.vehcloud_state_82.dto;
import com.sixteen.parse.annotates.Order;
//轨迹点
public class TracePointDto {
//期望经度
@Order(1)
private double expLongitude;
//期望纬度
@Order(2)
private double expLatitude;
//期望速度
@Order(3)
private float expSpeed;
//期望加速度
@Order(4)
private float expAcceleration;
//期望航向角
@Order(5)
private double expHeading;
}
package com.sixteen.parse.vehcloud_state_82.dto;
import com.sixteen.parse.annotates.Order;
import com.sixteen.parse.normal.Position2DDto;
/**
*
* @author huangml
*
*/
public class TrajectoryInfoDto {
//位置
@Order(1)
private Position2DDto position ;
//位置精度等级
@Order(2)
private short posConfidence;
//速度
@Order(3)
private int speed;
//速度精度等级
@Order(4)
private short speedConfidence;
//航向角
@Order(5)
private long heading;
//航向精度等级
@Order(6)
private short headConfidence;
}
package com.sixteen.parse.vehcloud_state_82.dto;
public class VehicleBodyDto {
private VehicleInfoDto vehicleInfo;
private VehicleStatusInfoDto vehicleStatusInfo;
private AutomaticDriveInfoDto automaticDriveInfo;
public VehicleInfoDto getVehicleInfo() {
return vehicleInfo;
}
public VehicleStatusInfoDto getVehicleStatusInfo() {
return vehicleStatusInfo;
}
public AutomaticDriveInfoDto getAutomaticDriveInfo() {
return automaticDriveInfo;
}
}
package com.sixteen.parse.vehcloud_state_82.dto;
import com.sixteen.parse.annotates.FieldDef;
import com.sixteen.parse.annotates.NumFlag;
import com.sixteen.parse.annotates.Order;
import com.sixteen.parse.annotates.RefNumFlag;
import com.sixteen.parse.normal.Position2DDto;
import com.sixteen.parse.normal.PositionDto;
import java.util.List;
/**
* 车辆基础信息
* @author huangml
*
*/
public class VehicleInfoDto {
//车辆编号
@Order(1)
@FieldDef(type="BYTE",isArray=true,length=8)
private String vehicleId;
//消息编号
@Order(2)
@FieldDef(type="BYTE",isArray=true,length=8)
private long messageId;
//GNSS 时间戳
@Order(3)
@FieldDef(type="TIMESTAMP",isArray=false,length=8)
private long timestampGNSS;
//GNSS 速度
@Order(4)
private float velocityGNSS;
//位置
@Order(5)
private PositionDto position;
//航向角
@Order(6)
private double heading;
//档位
@Order(7)
private short tapPos ;
//方向盘转角
@Order(8)
private double steeringAngle;
//当前车速
@Order(9)
private float velocity;
//纵向加速度
@Order(10)
private float accelerationLon;
//横向加速度
@Order(11)
private float accelerationLat;
//垂向加速度
@Order(12)
private float accelerationVer;
//横摆角速度
@Order(13)
private float yawRate;
//油门开度
@Order(14)
private float accelPos;
//发动机输出转速
@Order(15)
private float engineSpeed;
//发动机扭矩
@Order(16)
private double engineTorque;
//制动踏板开关
@Order(17)
private short brakeFlag;
//制动踏板开度
@Order(18)
private float brakePos;
//制动主缸压力
@Order(19)
private float brakePressure;
//油耗
@Order(20)
private float fuelConsumption;
//车辆驾驶模式
@Order(21)
private short driveMode;
//目的地位置
@Order(22)
private Position2DDto destLocation;
//途经点数量
@Order(23)
@NumFlag
private short passPointsNum;
//途经点
@Order(24)
@RefNumFlag(value="passPointsNum")
private List<Position2DDto> passPoints;
public String getVehicleId() {
return vehicleId;
}
public short getTapPos() {
return tapPos;
}
public float getVelocity() {
return velocity;
}
public short getDriveMode() {
return driveMode;
}
public double getHeading() {
return heading;
}
public PositionDto getPosition() {
return position;
}
}
package com.sixteen.parse.vehcloud_state_82.dto;
import com.sixteen.parse.annotates.NumFlag;
import com.sixteen.parse.annotates.Order;
import java.util.List;
/**
* 车辆辅助驾驶信息及状态信息
* @author huangml
*
*/
public class VehicleStatusInfoDto {
@Order(1)
//ABS 状态
private short absFlag;
//TCS 状态
@Order(2)
private short tcsFlag;
//ESP 状态
@Order(3)
private short espFlag;
//LKA 状态
@Order(4)
private short lkaFlag;
//ACC 工作模式
@Order(5)
private short accMode;
//FCW 状态
@Order(6)
private short fcwFlag;
//LDW 状态
@Order(7)
private short ldwFlag;
//AEB 状态
@Order(8)
private short aebFlag;
//LCA 状态
@Order(9)
private short lcaFlag;
//DMS 状态
@Order(10)
private short dmsFlag;
//里程
@Order(11)
private double mileage;
//sweeping状态
@Order(12)
private short sweepingFlag;
//watering状态
@Order(13)
private short wateringFlag;
// 车辆运行状态数据 2-车辆辅助驾驶系统信息及其他状态信息数据结构(续)
//油量 对应车辆油量表读数,单位:0.1 L,
@Order(14)
private float fuelGauge;
//电池剩余电量 0.01%,
@Order(15)
private float soc;
//电池温度 [0..200],单位:摄氏度(℃),
//数据偏移量 100,表示-100℃~100℃ ,0xFF 表示缺省
@Order(16)
private short temperature;
//预计续航里程 单位:千米(km),
@Order(17)
private double endurance;
//车辆故障状态
@Order(18)
private int vehFault;
//电机转速
@Order(19)
private int motorspeed;
//电机转矩
@Order(20)
private double motortorque;
//运行模式 车辆运行模式,1:纯电驱动模式;2:混合驱动 模式;3:行车充电模式;4:能量回收模式;5:停车充电模式;6: 能量混合回充模式;
@Order(21)
private short vehMode;
//充电状态 1:未充电;2:充电准备;3:正在充电;4:充电故障;5:充电结束; 0xFF 表示缺省
@Order(22)
private short chargeState;
//动力电池实时电压
@Order(23)
private int battVol;
//动力电池实时电流
@Order(24)
private int battCur;
//喇叭状态
@Order(25)
private short hornState;
//车轮数
@Order(26)
@NumFlag
private short wheelNum;
//轮速 表示车轮线速度,单位:0.01 m/s,
//数据偏移量 200,表示-200.00 m/s~200.00 m/s,
@Order(27)
private List<Integer> wheelVelocity;
//胎压
@Order(28)
private List<Integer> tirePressure;
//车灯状态 BIT2 = 左转灯 BIT3 = 右转灯
@Order(30)
private int lights;
//车门状态
@Order(31)
private int doors;
//自定义字段长度
@Order(32)
@NumFlag
private short userdefinedDataLength;
//自定义字段内容
@Order(33)
private String userdefinedData;
public float getSoc() {
return soc;
}
public int getLights() {
return lights;
}
}
package com.sixteen.parse.vehcloud_state_82.vo;
import com.sixteen.parse.annotates.FieldDef;
import com.sixteen.parse.annotates.NumFlag;
import com.sixteen.parse.annotates.OffsetDef;
import com.sixteen.parse.annotates.Order;
import com.sixteen.parse.annotates.RefNumFlag;
import com.sixteen.parse.normal.Position;
import com.sixteen.parse.normal.Position2D;
import java.util.List;
/**
* 车辆基础信息
*
* @author huangml
*/
public class VehicleInfo {
//车辆编号
@Order(1)
@FieldDef(type = "BYTE", isArray = true, length = 8)
private String vehicleId;
//消息编号
@Order(2)
@FieldDef(type = "BYTE", isArray = true, length = 8)
private long messageId;
//GNSS 时间戳
@Order(3)
@FieldDef(type = "TIMESTAMP", isArray = false, length = 8)
private long timestampGNSS;
//GNSS 速度 单位:0.01 m/s
@Order(4)
@OffsetDef(value = 0.036, type = 2)
private int velocityGNSS;
//位置
@Order(5)
private Position position;
//航向角
/****[0..3600000],正北方向顺时针旋转至与车辆当前运动方向重合所转 过的角度,单位为 1e-4 ° , 不可缺省,0xFFFFFFFF 表示异常**/
@Order(6)
@OffsetDef(value=0.0001,minValidLength=7)
private long heading;
/**
* 档位 枚举类型:[0..50],0:数据失效;1-20:表示手动档车辆前进档对 应档位,1 表示 1 档,2 表示 2 档,以此类推;21-30:表示手动挡车 辆倒档对应档位,
* 21 表示 R1 档,22 表示 R2 档,以此类推;31:D 档 (前进档);32:R 档(倒档);33:P 档(驻车档);34:N 档(空 档);
* 35:S 档(运动模式);36:L 档(低速档);37:H 档;38; HL 档;39-50:预留,不可缺省,0xFF 表示异常
*/
@Order(7)
private short tapPos;
//方向盘转角 单位为 1e-4 °
@Order(8)
@OffsetDef(value = 0.0001)
private long steeringAngle;
/**[0..20000],CAN 总线数据中的行驶速度,单位:0.01m/s,0xFFFF 表 示缺省***/
@Order(9)
@OffsetDef(value = 0.036, type = 2)
private int velocity;
//纵向加速度 单位:0.01m/s
@Order(10)
@OffsetDef(value = 0.036, type = 2)
private int accelerationLon;
//横向加速度 单位:0.01m/s
@Order(11)
@OffsetDef(value = 0.036, type = 2)
private int accelerationLat;
//垂向加速度 单位:0.01m/s
@Order(12)
@OffsetDef(value = 0.036, type = 2)
private int accelerationVer;
//横摆角速度 单位:0.01m/s
@Order(13)
@OffsetDef(value = 0.036, type = 2)
private int yawRate;
//油门开度 单位:0.1%
@Order(14)
private int accelPos;
//发动机输出转速 单位:r/min
@Order(15)
private int engineSpeed;
//发动机扭矩 单位:0.01Nm
@Order(16)
private long engineTorque;
//制动踏板开关
@Order(17)
private short brakeFlag;
//制动踏板开度 单位:0.1%
@Order(18)
private int brakePos;
//制动主缸压力 单位 0.01MPa
@Order(19)
private int brakePressure;
//油耗 单位 0.01L/100km
@Order(20)
private int fuelConsumption;
//车辆驾驶模式
@Order(21)
private short driveMode;
//车辆当前驾驶任务的终点位置
@Order(22)
private Position2D destLocation;
//途经点数量
@Order(23)
@NumFlag
private short passPointsNum;
//途经点
@Order(24)
@RefNumFlag(value = "passPointsNum")
private List<Position2D> passPoints;
}
package com.sixteen.parse.vehcloud_state_82.vo;
import com.sixteen.parse.annotates.Order;
import com.sixteen.parse.normal.MessageHeadInfo;
/**
*8.2 车辆运行状态
*/
public class VehicleMessage {
//报文头
@Order(1)
private MessageHeadInfo messageHeadInfo;
//报文体
@Order(2)
private VehicleMessageBody vehicleMessageBody;
public MessageHeadInfo getMessageHeadInfo() {
return messageHeadInfo;
}
public void setMessageHeadInfo(MessageHeadInfo messageHeadInfo) {
this.messageHeadInfo = messageHeadInfo;
}
public VehicleMessageBody getVehicleMessageBody() {
return vehicleMessageBody;
}
public void setVehicleMessageBody(VehicleMessageBody vehicleMessageBody) {
this.vehicleMessageBody = vehicleMessageBody;
}
}
package com.sixteen.parse.vehcloud_state_82.vo;
import com.sixteen.parse.annotates.Order;
/**车辆运行状态报文体
* 8.2
* **/
public class VehicleMessageBody {
//车辆基础信息
@Order(1)
private VehicleInfo vehicleInfo;
/****车辆辅助驾驶信息及状态信息*/
@Order(2)
private VehicleStatusInfo vehicleStatusInfo;
// //车辆自动驾驶信息
// @Order(3)
// private AutomaticDriveInfo automaticDriveInfo;
public void setVehicleInfo(VehicleInfo vehicleInfo) {
this.vehicleInfo = vehicleInfo;
}
public void setVehicleStatusInfo(VehicleStatusInfo vehicleStatusInfo) {
this.vehicleStatusInfo = vehicleStatusInfo;
}
}
package com.sixteen.parse.vehcloud_state_82.vo;
import com.sixteen.parse.annotates.FieldDef;
import com.sixteen.parse.annotates.NumFlag;
import com.sixteen.parse.annotates.OffsetDef;
import com.sixteen.parse.annotates.Order;
import com.sixteen.parse.annotates.RefNumFlag;
import java.util.List;
/**
* 车辆辅助驾驶信息及状态信息
* @author huangml
* 车辆运行状态数据 2-车辆辅助驾驶系统信息及其他状态信息数据结构(续)
*/
public class VehicleStatusInfo {
@Order(1)
//ABS 状态
private short absFlag;
//TCS 状态
@Order(2)
private short tcsFlag;
//ESP 状态
@Order(3)
private short espFlag;
//LKA 状态
@Order(4)
private short lkaFlag;
//ACC 工作模式
@Order(5)
private short accMode;
//FCW 状态
@Order(6)
private short fcwFlag;
//LDW 状态
@Order(7)
private short ldwFlag;
//AEB 状态
@Order(8)
private short aebFlag;
//LCA 状态
@Order(9)
private short lcaFlag;
//DMS 状态
@Order(10)
private short dmsFlag;
//里程单位:0.1km,
@Order(11)
@OffsetDef(value = 0.1)
private long mileage;
//sweeping状态
@Order(12)
private short sweepingFlag;
//watering状态
@Order(13)
private short wateringFlag;
//油量 对应车辆油量表读数,单位:0.1 L,
@Order(14)
@OffsetDef(value = 0.1)
private int fuelGauge;
//电池剩余电量 0.01%,
@Order(15)
@OffsetDef(value = 0.01)
private int soc;
//电池温度 [0..200],单位:摄氏度(℃),
//数据偏移量 100,表示-100℃~100℃ ,0xFF 表示缺省
@Order(16)
private short temperature;
//预计续航里程 单位:千米(km),
@Order(17)
private long endurance;
//车辆故障状态
@Order(18)
private int vehFault;
//电机转速
@Order(19)
private int motorspeed;
//电机转矩
@Order(20)
private long motortorque;
//运行模式 车辆运行模式,1:纯电驱动模式;2:混合驱动 模式;3:行车充电模式;4:能量回收模式;5:停车充电模式;6: 能量混合回充模式;
@Order(21)
private short vehMode;
//充电状态 1:未充电;2:充电准备;3:正在充电;4:充电故障;5:充电结束; 0xFF 表示缺省
@Order(22)
private short chargeState;
//动力电池实时电压
@Order(23)
private int battVol;
//动力电池实时电流
@Order(24)
private int battCur;
//喇叭状态
@Order(25)
private short hornState;
//车轮数
@Order(26)
@NumFlag
private short wheelNum;
//轮速 表示车轮线速度,单位:0.01 m/s,
//数据偏移量 200,表示-200.00 m/s~200.00 m/s,
@Order(27)
@RefNumFlag(value="wheelNum")
private List<Integer> wheelVelocity;
//胎压
@Order(28)
@RefNumFlag(value="wheelNum")
private List<Integer> tirePressure;
//车灯状态 BIT2 = 左转灯 BIT3 = 右转灯
@Order(30)
private int lights;
//车门状态
@Order(31)
private int doors;
//自定义字段长度
@Order(32)
@NumFlag
private short userdefinedDataLength;
//自定义字段内容
@Order(33)
@RefNumFlag(value="userdefinedDataLength")
@FieldDef(type="BYTE",isAutoLength=true)
private String userdefinedData;
}
package com.sixteen.parse
import androidx.annotation.NonNull
import com.sixteen.parse.annotates.Order
import com.sixteen.parse.cloud2veh_advice_85.vo.VehAdviceInfo
import com.sixteen.parse.cloud2veh_advice_85.vo.VehAdviceMessage
import io.netty.buffer.ByteBuf
import org.junit.Assert.assertEquals
import org.junit.Test
import java.util.concurrent.ConcurrentHashMap
import kotlin.reflect.KClass
import kotlin.reflect.KMutableProperty
import kotlin.reflect.KMutableProperty1
import kotlin.reflect.KProperty1
import kotlin.reflect.full.declaredMemberProperties
import kotlin.reflect.full.findAnnotation
import kotlin.reflect.jvm.isAccessible
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
//测试解析16进制数据
@Test
fun testParse() {
//8.5
var vehAdviceMessage = VehAdviceMessage()
parse(null, vehAdviceMessage)
}
//属性排序缓存
private var cacheSortMap = ConcurrentHashMap<KClass<*>, List<KProperty1<*, *>>>()
fun parse(data: ByteBuf?, obj: Any) {
var clz = obj::class
val fields = clz.declaredMemberProperties
var orderedProps: List<KProperty1<*, *>>
if (cacheSortMap.containsKey(clz)) {
orderedProps = cacheSortMap.get(clz) ?: listOf()
} else {
orderedProps = fields.sortedBy { prop ->
// 无注解的属性排最后(或抛异常)
val ord = prop.findAnnotation<Order>()
ord?.value ?: Int.MAX_VALUE
}
cacheSortMap.put(clz, orderedProps)
}
orderedProps.forEach { field ->
// 仅处理可变属性(var)
if (field is KMutableProperty<*>) {
// field.setter.call(obj, "123")
// var ss=field as KMutableProperty1<obj, Short>
// ss.set(any, "123")
when (field.returnType.classifier) {
String::class -> {
val strField = field as KMutableProperty1<Any, String>
println("------field = ${strField.get(obj)}")
// field.setter.call("strstr")
strField.set(obj, "str")
}
Short::class -> {
val shortField = field as KMutableProperty1<Any, Short>
shortField.set(obj, 111.toShort())
}
Int::class -> {
val intField = field as KMutableProperty1<Any, Int>
intField.set(obj, 123)
}
Long::class -> {
val longField = field as KMutableProperty1<Any, Long>
}
List::class -> {
val longField = field as KMutableProperty1<Any, List<*>>
}
Array::class -> {
val longField = 0
}
is KClass<*> -> {
val longField = 0
}
}
when (field.returnType.toString()) {
"T?", "T" -> {
val objField = field as KMutableProperty1<Any, *>
}
}
}
// println("--------名称:${field.name} | 类型:${field.returnType.classifier}}")
}
}
}
\ No newline at end of file
package com.sixteen.parse;
import org.junit.Test;
public class TestSer {
@Test
public void clsToHex() {
try {
byte[] bytes = VehicleMessageHexSerializer.take8_2Bytes((short) 10, 119.987987, 30.123456, 6.3, 99.5f,"aabbccdd");
// System.out.println("----------bytes = " + bytes);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment