com.slamtec.slamware.log.customer包
ResultCode
枚举
表示CustomerLog相关接口调用返回值的枚举类。
Unknown
未知情况
Ok
成功
Failed
失败(不指明失败的具体原因)
ServiceNotFound
服务没有找到
ServiceStopping
服务正在停止
CommandNotFound
命令未找到(例如旧的固件不支持后来新增的命令时,会返回此值)。
ServerStatus
类
表示设备端的 CustomerLog 服务的状态数据。
方法
ServerStatus()
默认构造函数。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
ServerStatus serverStatus = new ServerStatus();
方法
getServiceUuid()
获取服务的UUID字符串。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 String
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
String serviceUuid = serverStatus.getServiceUuid();
方法
setServiceUuid(String serviceUuid)
设置服务的UUID字符串。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
serviceUuid | String | 服务的UUID字符串 | - |
注意事项
无
示例代码
serverStatus.setServiceUuid(serviceUuid);
方法
getLatestSeqNum()
获取最后一条产生的CustomerLog的序列号。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 long
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
long latestSeqNum = serverStatus.getLatestSeqNum();
方法
setLatestSeqNum(long latestSeqNum)
设置最后一条产生的CustomerLog的序列号。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
latestSeqNum | long | 最后一条产生的CustomerLog的序列号 | - |
注意事项
无
示例代码
serverStatus.setLatestSeqNum(123456);
方法
getSeqNumRange()
获取Log的序列号的范围。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 SeqNumRange
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无。
示例代码
SeqNumRange seqNumRange = serverStatus.getSeqNumRange();
方法
setSeqNumRange(SeqNumRange seqNumRange)
设置Log的序列号的范围。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
seqNumRange | SeqNumRange | Log的序列号的范围 | - |
注意事项
无。
示例代码
serverStatus.setSeqNumRange(seqNumRange);
ReadResult
类
读取CustomerLog的结果数据。
方法
ReadResult()
默认构造函数。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
ReadResult res = new ReadResult();
方法
getServerStatus()
获取服务状态数据。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 ServerStatus
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
ServerStatus serverStatus = res.getServerStatus();
方法
setServerStatus(ServerStatus serverStatus)
设置服务状态数据。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
serverStatus | ServerStatus | 服务状态数据 | - |
注意事项
无
示例代码
res.setServerStatus(serverStatus);
方法
getSeqNumRange()
获取Log的序列号的范围。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 SeqNumRange
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无。
示例代码
SeqNumRange seqNumRange = res.getSeqNumRange();
方法
setSeqNumRange(SeqNumRange seqNumRange)
设置Log的序列号的范围。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
seqNumRange | SeqNumRange | Log的序列号的范围 | - |
注意事项
无。
示例代码
res.setSeqNumRange(seqNumRange);
方法
getLogs()
获取Log数据。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 java.util.ArrayList<LogData>
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
java.util.ArrayList<LogData> logs = res.getLogs();
方法
setLogs(java.util.ArrayList<LogData> logs)
设置Log数据。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
logs | java.util.ArrayList<LogData> | Log数据 | - |
注意事项
无
示例代码
res.setLogs(logs);
CustomerLogReceiverLastRecvStatus
类
表示CustomerLogReceiver最后接收状态的数据,可以用于尝试断开连接后从上次的状态开始接收Log数据。
方法
CustomerLogReceiverLastRecvStatus()
默认构造函数。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
CustomerLogReceiverLastRecvStatus lastRecvStatus = new CustomerLogReceiverLastRecvStatus();
方法
getServiceUuid()
获取服务的UUID字符串。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 String
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
String serviceUuid = lastRecvStatus.getServiceUuid();
方法
setServiceUuid(String serviceUuid)
设置服务的UUID字符串。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
serviceUuid | String | 服务的UUID字符串 | - |
注意事项
无
示例代码
lastRecvStatus.setServiceUuid(serviceUuid);
方法
getLastReceivedSeqNum()
获取最后一条收到的Log的序列号。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 long
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
long lastReceivedSeqNum = lastRecvStatus.getLastReceivedSeqNum();
方法
setLastReceivedSeqNum(long lastReceivedSeqNum)
设置最后一条收到的Log的序列号。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
latestSeqNum | long | 最后一条收到的Log的序列号 | - |
注意事项
无
示例代码
lastRecvStatus.setLastReceivedSeqNum(lastReceivedSeqNum);
CustomerLogReceiverInitArg
类
用于初始化CustomerLogReceiver的数据。
方法
CustomerLogReceiverInitArg()
默认构造函数。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
CustomerLogReceiverInitArg initArg = new CustomerLogReceiverInitArg();
方法
getLastRecvStatus()
获取最后一次的接收状态数据。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 CustomerLogReceiverLastRecvStatus
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
CustomerLogReceiverLastRecvStatus lastRecvStatus = initArg.getLastRecvStatus();
方法
setLastRecvStatus(CustomerLogReceiverLastRecvStatus lastRecvStatus)
设置最后一次的接收状态数据。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
lastRecvStatus | CustomerLogReceiverLastRecvStatus | 最后一次的接收状态数据 | - |
注意事项
无
示例代码
initArg.setLastRecvStatus(lastRecvStatus);
ICustomerLogReceiver
接口
用于接收 CustomerLog 的接口,可通过 AbstractSlamwarePlatform 对象来创建支持该接口的实例。
方法
isInitialized()
是否已经初始化。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 boolean,true表示已经初始化成功了。
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
boolean isInitialized = customerLogReceiver.isInitialized();
方法
getLastRecvStatus()
获取最后一次的接收状态。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 CustomerLogReceiverLastRecvStatus
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无
示例代码
CustomerLogReceiverLastRecvStatus lastRecvStatus = customerLogReceiver.getLastRecvStatus();
方法
init(CustomerLogReceiverInitArg initArg)
尝试初始化。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 ResultCode
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
initArg | CustomerLogReceiverInitArg | 初始化参数数据 | - |
注意事项
一个对象只能被初始化一次。 默认情况下 initArg 可以传 null,表示使用默认参数,从设备端现存的第一条Log开始接收。 如果要尝试从上次断开的地方开始继续接收Log,可以参考 recvLogs() 接口的示例代码。
示例代码
CustomerLogReceiverInitArg initArg = null; // null means use the default arguments on the robot.
ResultCode resCode = customerLogReceiver.init(initArg);
if (ResultCode.Ok == resCode)
; // succeed to initialize
else
; // failed
方法
queryServerStatus()
获取设备端CustomerLog服务的状态数据。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 StdPair<ResultCode, ServerStatus>
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无。
示例代码
StdPair<ResultCode, ServerStatus> tPairStatus = customerLogReceiver.queryServerStatus();
if (ResultCode.Ok == tPairStatus.getFirst())
; // succeed to get the server status
else
; // failed
方法
recvLogs(int maxCntToRead)
接收Log数据。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 StdPair<ResultCode, ReadResult>
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
maxCntToRead | int | 最多读取Log的条数 | - |
注意事项
如果 maxCntToRead 小于等于0,则最多读取设备端设定的默认条数的Log。 其它注意事项可参考示例代码中的注释。
示例代码
{
private void testCustomerLogReceiver_() {
try {
// connect to the robot.
String ip = "10.0.2.2";
int port = 1445;
Log.i("MyCorePlatform", "start to connect.");
com.slamtec.slamware.AbstractSlamwarePlatform corePltfm = com.slamtec.slamware.discovery.DeviceManager.connect(ip, port);
if (null == corePltfm)
{
Log.e("MyCorePlatform", "Failed to connect.");
return;
}
Log.i("MyCorePlatform", "Connected");
// Create Customer Log Receiver for receiving logs;
// If the connection is lost, the old log receiver will not work, a new one should be created.
com.slamtec.slamware.log.customer.ICustomerLogReceiver logReceiver = corePltfm.createCustomerLogReceiver();
if (null == logReceiver)
{
Log.e("MyLogReceiver", "Failed to create.");
return;
}
Log.i("MyLogReceiver", "Created");
com.slamtec.slamware.log.customer.CustomerLogReceiverInitArg initArg = null;
// if you want to resume the last receive status, load the saved status data like the following codes:
/*
{
initArg = new com.slamtec.slamware.log.customer.CustomerLogReceiverInitArg();
initArg.setLastRecvStatus(lastRecvStatus); // lastRecvStatus is the last receive status data you saved before
}
*/
com.slamtec.slamware.log.customer.ResultCode resCode = logReceiver.init(initArg);
if (com.slamtec.slamware.log.customer.ResultCode.Ok != resCode)
{
Log.e("MyLogReceiver", "Failed to init, resCode: " + resCode.name());
return;
}
boolean isWorking = true;
while (isWorking)
{
// some other operations of your application
int maxCntToRead = 0; // set to zero to use the default value of the robot.
com.slamtec.slamware.utils.StdPair<com.slamtec.slamware.log.customer.ResultCode, com.slamtec.slamware.log.customer.ReadResult> pairRes
= logReceiver.recvLogs(maxCntToRead);
if (com.slamtec.slamware.log.customer.ResultCode.Ok == pairRes.getFirst())
{
showMyLogsResult_(pairRes.getSecond());
}
else
{
Log.e("MyLogs", ("ResultCode: " + pairRes.getFirst().name()));
}
// some other operations of your application
Thread.sleep(100);
}
// you may save it for the next time to continue to receive logs if you want.
/*
{
com.slamtec.slamware.log.customer.CustomerLogReceiverLastRecvStatus lastRecvStatus = logReceiver.getLastRecvStatus();
// now you can save lastRecvStatus somewhere for the next time
}
*/
}
catch (Exception e) {
Log.e("MyException", e.toString());
}
}
private void showMyLogsResult_(com.slamtec.slamware.log.customer.ReadResult tRes) {
java.util.ArrayList<com.slamtec.slamware.log.LogData> logsList = tRes.getLogs();
int iLogsCnt = (null != logsList ? logsList.size() : 0);
Log.i("MyLogs", ("LogsCnt: " + iLogsCnt));
if (iLogsCnt < 1)
return;
for (int i = 0; i < iLogsCnt; ++i)
{
Log.i("MyLogs", ("logs[" + i + "]"));
com.slamtec.slamware.log.LogData logDat = logsList.get(i);
if (null == logDat)
{
// it should not be null here, there may be some problems.
Log.e("MyLogs", "null log data.");
continue;
}
boolean bIsJsonLog = logDat.getIsJsonLog();
if (bIsJsonLog)
{
// if it is json Log, you can parse the string of log to a JSON object.
// ALL customer logs are json log.
}
String strMsg = ("LogSource: " + logDat.getLogSource() + "\n");
strMsg += ("LogLevel: " + logDat.getLogLevel().name() + "\n");
strMsg += ("IsJsonLog: " + bIsJsonLog + "\n");
strMsg += ("StringOfLog: " + logDat.getStringOfLog() + "\n");
Log.i("MyLogs", strMsg);
}
}
}
方法
setNextReadStartSeqNum(long startSeqNum)
设置下一次开始接收的序列号。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
startSeqNum | long | 下一次开始接收的序列号 | - |
注意事项
无。
示例代码
customerLogReceiver.setNextReadStartSeqNum(123);
方法
resetNextReadStartSeqNum()
取消设置下一次开始接收的序列号。
Stability: 3 - Stable
Added in v2.5.0
返回值
返回类型为 void
参数说明
参数名称 | 参数类型 | 描述 | 备注 |
---|---|---|---|
无 | - | - | - |
注意事项
无。
示例代码
customerLogReceiver.resetNextReadStartSeqNum();