package com.walker.tcp;
/**
* 协议解析器定义
* @author 时克英
* @date 2018-11-23
*
*/
public interface ProtocolResolver
ProtocolResolverPostProcessor
* @return
*/
boolean isRequireFeatureResolve();
/**
* 获得一个心跳响应对象
* @return
*/
Response> getHeartBeatResponse();
/**
* 返回认证信息,通常第一次连接平台后,终端会发送认证请求。该方法返回认证后的用户信息,如:用户编号、设备编号等。
* @param request
* @return
*/
String getAuthenticateInfo(Request> request) throws AuthenticateException;
/**
* 是否支持未注册设备连接服务,如果允许(true)那么系统中未定义的设备也可以获得认证并提交数据。
* @return
*/
boolean isPermitNotRegisterConnect();
public static final String ERR_PROTOCOL_SIZE = "不符合报文长度";
public static final String ERR_PROTOCOL_FEATURE = "不符合报文特征";
public static final String ERR_NOFOUND = "系统未配置任何ProtocolResolver对象,无法解析报文";
public static final String ERR_NO_FEATURE = "报文解析需要前缀特征,但该解析器未定义特征。";
/**
* 仅仅依靠报文特征来获得一个完整报文,如果是返回true
* 有些设备发送的数据,为了简单不会使用长报文,而且不需要处理报文合并问题,一次一个短报文,
* 这样就只需要根据特征区分设备信息,而且通常数据长度也在报文中,例如:充电桩。
* @return
* @author 时克英
* @date 2020-08-21
*/
boolean isOnlyMatchFeature();
}