@ -54,6 +54,7 @@ import org.thingsboard.server.gen.transport.TransportProtos.AttributeUpdateNotif
import org.thingsboard.server.gen.transport.TransportProtos.SessionEvent ;
import org.thingsboard.server.gen.transport.TransportProtos.SessionInfoProto ;
import org.thingsboard.server.queue.util.TbLwM2mTransportComponent ;
import org.thingsboard.server.transport.lwm2m.config.LwM2MTransportServerConfig ;
import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClient ;
import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClientContext ;
import org.thingsboard.server.transport.lwm2m.server.client.LwM2mClientProfile ;
@ -111,44 +112,43 @@ import static org.thingsboard.server.transport.lwm2m.server.LwM2mTransportHandle
@Slf4j
@Service
@TbLwM2mTransportComponent
public class LwM2mTransportServiceImpl implements LwM2mTransportService {
public class DefaultLwM2MTransportMsgHandler implements LwM2mTransportMsgHandler {
private ExecutorService executorRegistered ;
private ExecutorService executorUpdateRegistered ;
private ExecutorService executorUnRegistered ;
private LwM2mValueConverterImpl converter ;
private FirmwareDataCache firmwareDataCache ;
private final TransportService transportService ;
public final LwM2mTransportContextServer lwM2mTransportContextServer ;
private final LwM2mTransportContext context ;
private final LwM2MTransportServerConfig config ;
private final FirmwareDataCache firmwareDataCache ;
private final LwM2mTransportServerHelper helper ;
private final LwM2mClientContext lwM2mClientContext ;
private final LeshanServer leshanServer ;
private final LwM2mTransportRequest lwM2mTransportRequest ;
public LwM2mTransportServiceImpl ( TransportService transportService , LwM2mTransportContextServer lwM2mTransportContextServer ,
LwM2mClientContext lwM2mClientContext , LeshanServer leshanServer ,
@Lazy LwM2mTransportRequest lwM2mTransportRequest , FirmwareDataCache firmwareDataCache ) {
public DefaultLwM2MTransportMsgHandler ( TransportService transportService , LwM2MTransportServerConfig config , LwM2mTransportServerHelper helper ,
LwM2mClientContext lwM2mClientContext ,
@Lazy LwM2mTransportRequest lwM2mTransportRequest ,
FirmwareDataCache firmwareDataCache ,
LwM2mTransportContext context ) {
this . transportService = transportService ;
this . lwM2mTransportContextServer = lwM2mTransportContextServer ;
this . config = config ;
this . helper = helper ;
this . lwM2mClientContext = lwM2mClientContext ;
this . leshanServer = leshanServer ;
this . lwM2mTransportRequest = lwM2mTransportRequest ;
this . firmwareDataCache = firmwareDataCache ;
this . context = context ;
}
@PostConstruct
public void init ( ) {
this . lwM2mTransportContextServer . getScheduler ( ) . scheduleAtFixedRate ( this : : checkInactivityAndReportActivity , new Random ( ) . nextInt ( ( int ) lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getSessionReportTimeout ( ) ) , lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getSessionReportTimeout ( ) , TimeUnit . MILLISECONDS ) ;
this . executorRegistered = Executors . newFixedThreadPool ( this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getRegisteredPoolSize ( ) ,
this . context . getScheduler ( ) . scheduleAtFixedRate ( this : : checkInactivityAndReportActivity , new Random ( ) . nextInt ( ( int ) c onfig. getSessionReportTimeout ( ) ) , c onfig. getSessionReportTimeout ( ) , TimeUnit . MILLISECONDS ) ;
this . executorRegistered = Executors . newFixedThreadPool ( this . c onfig. getRegisteredPoolSize ( ) ,
new NamedThreadFactory ( String . format ( "LwM2M %s channel registered" , SERVICE_CHANNEL ) ) ) ;
this . executorUpdateRegistered = Executors . newFixedThreadPool ( this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getUpdateRegisteredPoolSize ( ) ,
this . executorUpdateRegistered = Executors . newFixedThreadPool ( this . c onfig. getUpdateRegisteredPoolSize ( ) ,
new NamedThreadFactory ( String . format ( "LwM2M %s channel update registered" , SERVICE_CHANNEL ) ) ) ;
this . executorUnRegistered = Executors . newFixedThreadPool ( this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getUnRegisteredPoolSize ( ) ,
this . executorUnRegistered = Executors . newFixedThreadPool ( this . c onfig. getUnRegisteredPoolSize ( ) ,
new NamedThreadFactory ( String . format ( "LwM2M %s channel un registered" , SERVICE_CHANNEL ) ) ) ;
this . converter = LwM2mValueConverterImpl . getInstance ( ) ;
}
@ -278,10 +278,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
@Override
public void setCancelObservations ( Registration registration ) {
if ( registration ! = null ) {
Set < Observation > observations = leshanServer . getObservationService ( ) . getObservations ( registration ) ;
Set < Observation > observations = context . getServer ( ) . getObservationService ( ) . getObservations ( registration ) ;
observations . forEach ( observation - > lwM2mTransportRequest . sendAllRequest ( registration ,
convertPathFromObjectIdToIdVer ( observation . getPath ( ) . toString ( ) , registration ) , OBSERVE_CANCEL ,
null , null , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ) ;
null , null , this . c onfig. getTimeout ( ) , null ) ) ;
}
}
@ -333,13 +333,13 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
msg . getSharedUpdatedList ( ) . forEach ( tsKvProto - > {
String pathName = tsKvProto . getKv ( ) . getKey ( ) ;
String pathIdVer = this . getPresentPathIntoProfile ( sessionInfo , pathName ) ;
Object valueNew = this . lwM2mTrans portContextServ er . getValueFromKvProto ( tsKvProto . getKv ( ) ) ;
Object valueNew = this . he lper. getValueFromKvProto ( tsKvProto . getKv ( ) ) ;
//TODO: react on change of the firmware name.
if ( FirmwareUtil . getAttributeKey ( FirmwareType . FIRMWARE , FirmwareKey . VERSION ) . equals ( pathName ) & & ! valueNew . equals ( lwM2MClient . getFrUpdate ( ) . getCurrentFwVersion ( ) ) ) {
this . getInfoFirmwareUpdate ( lwM2MClient ) ;
}
if ( pathIdVer ! = null ) {
ResourceModel resourceModel = lwM2MClient . getResourceModel ( pathIdVer , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( )
ResourceModel resourceModel = lwM2MClient . getResourceModel ( pathIdVer , this . c onfig
. getModelProvider ( ) ) ;
if ( resourceModel ! = null & & resourceModel . operations . isWritable ( ) ) {
this . updateResourcesValueToClient ( lwM2MClient , this . getResourceValueFormatKv ( lwM2MClient , pathIdVer ) , valueNew , pathIdVer ) ;
@ -360,7 +360,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
} else if ( msg . getSharedDeletedCount ( ) > 0 ) {
msg . getSharedUpdatedList ( ) . forEach ( tsKvProto - > {
String pathName = tsKvProto . getKv ( ) . getKey ( ) ;
Object valueNew = this . lwM2mTrans portContextServ er . getValueFromKvProto ( tsKvProto . getKv ( ) ) ;
Object valueNew = this . he lper. getValueFromKvProto ( tsKvProto . getKv ( ) ) ;
if ( FirmwareUtil . getAttributeKey ( FirmwareType . FIRMWARE , FirmwareKey . VERSION ) . equals ( pathName ) & & ! valueNew . equals ( lwM2MClient . getFrUpdate ( ) . getCurrentFwVersion ( ) ) ) {
lwM2MClient . getFrUpdate ( ) . setCurrentFwVersion ( ( String ) valueNew ) ;
}
@ -404,7 +404,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
@Override
public void onResourceUpdate ( Optional < TransportProtos . ResourceUpdateMsg > resourceUpdateMsgOpt ) {
String idVer = resourceUpdateMsgOpt . get ( ) . getResourceKey ( ) ;
lwM2mClientContext . getLwM2mClients ( ) . values ( ) . stream ( ) . forEach ( e - > e . updateResourceModel ( idVer , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getModelProvider ( ) ) ) ;
lwM2mClientContext . getLwM2mClients ( ) . values ( ) . stream ( ) . forEach ( e - > e . updateResourceModel ( idVer , this . c onfig. getModelProvider ( ) ) ) ;
}
/ * *
@ -413,7 +413,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
@Override
public void onResourceDelete ( Optional < TransportProtos . ResourceDeleteMsg > resourceDeleteMsgOpt ) {
String pathIdVer = resourceDeleteMsgOpt . get ( ) . getResourceKey ( ) ;
lwM2mClientContext . getLwM2mClients ( ) . values ( ) . stream ( ) . forEach ( e - > e . deleteResources ( pathIdVer , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getModelProvider ( ) ) ) ;
lwM2mClientContext . getLwM2mClients ( ) . values ( ) . stream ( ) . forEach ( e - > e . deleteResources ( pathIdVer , this . c onfig. getModelProvider ( ) ) ) ;
}
@Override
@ -429,7 +429,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
} else {
lwM2mTransportRequest . sendAllRequest ( registration , lwm2mClientRpcRequest . getTargetIdVer ( ) , lwm2mClientRpcRequest . getTypeOper ( ) , lwm2mClientRpcRequest . getContentFormatName ( ) ,
lwm2mClientRpcRequest . getValue ( ) = = null ? lwm2mClientRpcRequest . getParams ( ) : lwm2mClientRpcRequest . getValue ( ) ,
this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , lwm2mClientRpcRequest ) ;
this . c onfig. getTimeout ( ) , lwm2mClientRpcRequest ) ;
}
} catch ( Exception e ) {
if ( lwm2mClientRpcRequest = = null ) {
@ -546,7 +546,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
@Override
public void doTrigger ( Registration registration , String path ) {
lwM2mTransportRequest . sendAllRequest ( registration , path , EXECUTE ,
ContentFormat . TLV . getName ( ) , null , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
ContentFormat . TLV . getName ( ) , null , this . c onfig. getTimeout ( ) , null ) ;
}
/ * *
@ -579,7 +579,8 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
*
* @param registration -
* /
protected void onAwakeDev ( Registration registration ) {
@Override
public void onAwakeDev ( Registration registration ) {
log . info ( "[{}] [{}] Received endpoint Awake version event" , registration . getId ( ) , registration . getEndpoint ( ) ) ;
this . sendLogsToThingsboard ( LOG_LW2M_INFO + ": Client is awake!" , registration . getId ( ) ) ;
//TODO: associate endpointId with device information.
@ -610,13 +611,14 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
* @param logMsg - text msg
* @param registrationId - Id of Registration LwM2M Client
* /
@Override
public void sendLogsToThingsboard ( String logMsg , String registrationId ) {
SessionInfoProto sessionInfo = this . getValidateSessionInfo ( registrationId ) ;
if ( logMsg ! = null & & sessionInfo ! = null ) {
if ( logMsg . length ( ) > 1024 ) {
logMsg = logMsg . substring ( 0 , 1024 ) ;
}
this . lwM2mTrans portContextServ er . sendParametersOnThingsboardTelemetry ( this . lwM2mTrans portContextServ er . getKvLogyToThingsboard ( logMsg ) , sessionInfo ) ;
this . he lper. sendParametersOnThingsboardTelemetry ( this . he lper. getKvLogyToThingsboard ( logMsg ) , sessionInfo ) ;
}
}
@ -640,7 +642,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
// #2
lwM2MClient . getPendingReadRequests ( ) . addAll ( clientObjects ) ;
clientObjects . forEach ( path - > lwM2mTransportRequest . sendAllRequest ( registration , path , READ , ContentFormat . TLV . getName ( ) ,
null , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ) ;
null , this . c onfig. getTimeout ( ) , null ) ) ;
}
// #1
this . initReadAttrTelemetryObserveToClient ( registration , lwM2MClient , READ , clientObjects ) ;
@ -689,7 +691,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
* /
private void updateResourcesValue ( Registration registration , LwM2mResource lwM2mResource , String path ) {
LwM2mClient lwM2MClient = lwM2mClientContext . getLwM2mClientWithReg ( registration , null ) ;
if ( lwM2MClient . saveResourceValue ( path , lwM2mResource , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( )
if ( lwM2MClient . saveResourceValue ( path , lwM2mResource , this . c onfig
. getModelProvider ( ) ) ) {
if ( FR_PATH_RESOURCE_VER_ID . equals ( convertPathFromIdVerToObjectId ( path ) ) & &
lwM2MClient . getFrUpdate ( ) . getCurrentFwVersion ( ) ! = null
@ -728,10 +730,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
SessionInfoProto sessionInfo = this . getValidateSessionInfo ( registration ) ;
if ( results ! = null & & sessionInfo ! = null ) {
if ( results . getResultAttributes ( ) . size ( ) > 0 ) {
this . lwM2mTrans portContextServ er . sendParametersOnThingsboardAttribute ( results . getResultAttributes ( ) , sessionInfo ) ;
this . he lper. sendParametersOnThingsboardAttribute ( results . getResultAttributes ( ) , sessionInfo ) ;
}
if ( results . getResultTelemetries ( ) . size ( ) > 0 ) {
this . lwM2mTrans portContextServ er . sendParametersOnThingsboardTelemetry ( results . getResultTelemetries ( ) , sessionInfo ) ;
this . he lper. sendParametersOnThingsboardTelemetry ( results . getResultTelemetries ( ) , sessionInfo ) ;
}
}
} catch ( Exception e ) {
@ -780,7 +782,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
ConcurrentHashMap < String , Object > finalParams = params ;
pathSend . forEach ( target - > {
lwM2mTransportRequest . sendAllRequest ( registration , target , typeOper , ContentFormat . TLV . getName ( ) ,
finalParams ! = null ? finalParams . get ( target ) : null , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
finalParams ! = null ? finalParams . get ( target ) : null , this . c onfig. getTimeout ( ) , null ) ;
} ) ;
if ( OBSERVE . equals ( typeOper ) ) {
lwM2MClient . initReadValue ( this , null ) ;
@ -865,7 +867,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
LwM2mResource resourceValue = lwM2MClient ! = null ? getResourceValueFromLwM2MClient ( lwM2MClient , pathIdVer ) : null ;
if ( resourceValue ! = null ) {
ResourceModel . Type currentType = resourceValue . getType ( ) ;
ResourceModel . Type expectedType = this . lwM2mTrans portContextServ er . getResourceModelTypeEqualsKvProtoValueType ( currentType , pathIdVer ) ;
ResourceModel . Type expectedType = this . he lper. getResourceModelTypeEqualsKvProtoValueType ( currentType , pathIdVer ) ;
Object valueKvProto = null ;
if ( resourceValue . isMultiInstances ( ) ) {
valueKvProto = new JsonObject ( ) ;
@ -882,7 +884,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
valueKvProto = this . converter . convertValue ( resourceValue . getValue ( ) , currentType , expectedType ,
new LwM2mPath ( convertPathFromIdVerToObjectId ( pathIdVer ) ) ) ;
}
return valueKvProto ! = null ? this . lwM2mTrans portContextServ er . getKvAttrTelemetryToThingsboard ( currentType , resourceName , valueKvProto , resourceValue . isMultiInstances ( ) ) : null ;
return valueKvProto ! = null ? this . he lper. getKvAttrTelemetryToThingsboard ( currentType , resourceName , valueKvProto , resourceValue . isMultiInstances ( ) ) : null ;
}
} catch ( Exception e ) {
log . error ( "Failed to add parameters." , e ) ;
@ -901,7 +903,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
private Object getResourceValueFormatKv ( LwM2mClient lwM2MClient , String pathIdVer ) {
LwM2mResource resourceValue = this . getResourceValueFromLwM2MClient ( lwM2MClient , pathIdVer ) ;
ResourceModel . Type currentType = resourceValue . getType ( ) ;
ResourceModel . Type expectedType = this . lwM2mTrans portContextServ er . getResourceModelTypeEqualsKvProtoValueType ( currentType , pathIdVer ) ;
ResourceModel . Type expectedType = this . he lper. getResourceModelTypeEqualsKvProtoValueType ( currentType , pathIdVer ) ;
return this . converter . convertValue ( resourceValue . getValue ( ) , currentType , expectedType ,
new LwM2mPath ( convertPathFromIdVerToObjectId ( pathIdVer ) ) ) ;
}
@ -1094,10 +1096,10 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
if ( pathIds . isResource ( ) ) {
if ( READ . equals ( typeOper ) ) {
lwM2mTransportRequest . sendAllRequest ( registration , target , typeOper ,
ContentFormat . TLV . getName ( ) , null , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
ContentFormat . TLV . getName ( ) , null , this . c onfig. getTimeout ( ) , null ) ;
} else if ( OBSERVE . equals ( typeOper ) ) {
lwM2mTransportRequest . sendAllRequest ( registration , target , typeOper ,
null , null , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
null , null , this . c onfig. getTimeout ( ) , null ) ;
}
}
} ) ;
@ -1153,7 +1155,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
if ( ! pathSend . isEmpty ( ) ) {
ConcurrentHashMap < String , Object > finalParams = lwm2mAttributesNew ;
pathSend . forEach ( target - > lwM2mTransportRequest . sendAllRequest ( registration , target , WRITE_ATTRIBUTES , ContentFormat . TLV . getName ( ) ,
finalParams . get ( target ) , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ) ;
finalParams . get ( target ) , this . c onfig. getTimeout ( ) , null ) ) ;
}
} ) ;
}
@ -1170,7 +1172,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
params . clear ( ) ;
params . put ( OBJECT_VERSION , "" ) ;
lwM2mTransportRequest . sendAllRequest ( registration , target , WRITE_ATTRIBUTES , ContentFormat . TLV . getName ( ) ,
params , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
params , this . c onfig. getTimeout ( ) , null ) ;
} ) ;
}
} ) ;
@ -1183,7 +1185,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
paramAnallyzer . forEach ( pathIdVer - > {
if ( this . getResourceValueFromLwM2MClient ( lwM2MClient , pathIdVer ) ! = null ) {
lwM2mTransportRequest . sendAllRequest ( registration , pathIdVer , OBSERVE_CANCEL , null ,
null , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
null , this . c onfig. getTimeout ( ) , null ) ;
}
}
) ;
@ -1193,7 +1195,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
if ( valueNew ! = null & & ( valueOld = = null | | ! valueNew . toString ( ) . equals ( valueOld . toString ( ) ) ) ) {
lwM2mTransportRequest . sendAllRequest ( lwM2MClient . getRegistration ( ) , path , WRITE_REPLACE ,
ContentFormat . TLV . getName ( ) , valueNew ,
this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
this . c onfig. getTimeout ( ) , null ) ;
} else {
log . error ( "Failed update resource [{}] [{}]" , path , valueNew ) ;
String logMsg = String . format ( "%s: Failed update resource path - %s value - %s. Value is not changed or bad" ,
@ -1271,7 +1273,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
// #2.1
lwM2MClient . getDelayedRequests ( ) . forEach ( ( pathIdVer , tsKvProto ) - > {
this . updateResourcesValueToClient ( lwM2MClient , this . getResourceValueFormatKv ( lwM2MClient , pathIdVer ) ,
this . lwM2mTrans portContextServ er . getValueFromKvProto ( tsKvProto . getKv ( ) ) , pathIdVer ) ;
this . he lper. getValueFromKvProto ( tsKvProto . getKv ( ) ) , pathIdVer ) ;
} ) ;
}
@ -1288,7 +1290,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
return null ;
} else {
return SessionInfoProto . newBuilder ( )
. setNodeId ( this . lwM2mTransportContextServer . getNodeId ( ) )
. setNodeId ( this . context . getNodeId ( ) )
. setSessionIdMSB ( lwM2MClient . getSessionId ( ) . getMostSignificantBits ( ) )
. setSessionIdLSB ( lwM2MClient . getSessionId ( ) . getLeastSignificantBits ( ) )
. setDeviceIdMSB ( msg . getDeviceInfo ( ) . getDeviceIdMSB ( ) )
@ -1358,7 +1360,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
if ( keyNamesMap . values ( ) . size ( ) > 0 ) {
try {
//#1.2
TransportProtos . GetAttributeRequestMsg getAttributeMsg = lwM2mTrans portContextServ er . getAdaptor ( ) . convertToGetAttributes ( null , keyNamesMap . values ( ) ) ;
TransportProtos . GetAttributeRequestMsg getAttributeMsg = he lper. getAdaptor ( ) . convertToGetAttributes ( null , keyNamesMap . values ( ) ) ;
transportService . process ( sessionInfo , getAttributeMsg , getAckCallback ( lwM2MClient , getAttributeMsg . getRequestId ( ) , DEVICE_ATTRIBUTES_REQUEST ) ) ;
} catch ( AdaptorException e ) {
log . warn ( "Failed to decode get attributes request" , e ) ;
@ -1406,7 +1408,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
public void readRequestToClientFirmwareVer ( Registration registration ) {
String pathIdVer = convertPathFromObjectIdToIdVer ( FR_PATH_RESOURCE_VER_ID , registration ) ;
lwM2mTransportRequest . sendAllRequest ( registration , pathIdVer , READ , ContentFormat . TLV . getName ( ) ,
null , lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
null , c onfig. getTimeout ( ) , null ) ;
}
/ * *
@ -1422,7 +1424,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
String verSupportedObject = lwM2MClient . getRegistration ( ) . getSupportedObject ( ) . get ( objectId ) ;
String targetIdVer = LWM2M_SEPARATOR_PATH + objectId + LWM2M_SEPARATOR_KEY + verSupportedObject + LWM2M_SEPARATOR_PATH + 0 + LWM2M_SEPARATOR_PATH + 0 ;
lwM2mTransportRequest . sendAllRequest ( lwM2MClient . getRegistration ( ) , targetIdVer , WRITE_REPLACE , ContentFormat . OPAQUE . getName ( ) ,
firmwareChunk , lwM2mTransportContextServer . getLwM2MTransportServerC onfig( ) . getTimeout ( ) , null ) ;
firmwareChunk , c onfig. getTimeout ( ) , null ) ;
log . warn ( "updateFirmwareClient [{}] [{}]" , lwM2MClient . getFrUpdate ( ) . getCurrentFwVersion ( ) , lwM2MClient . getFrUpdate ( ) . getClientFwVersion ( ) ) ;
}
}
@ -1444,7 +1446,7 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
}
private boolean validateResourceInModel ( LwM2mClient lwM2mClient , String pathIdVer , boolean isWritableNotOptional ) {
ResourceModel resourceModel = lwM2mClient . getResourceModel ( pathIdVer , this . lwM2mTransportContextServer . getLwM2MTransportServerC onfig( )
ResourceModel resourceModel = lwM2mClient . getResourceModel ( pathIdVer , this . c onfig
. getModelProvider ( ) ) ;
Integer objectId = new LwM2mPath ( convertPathFromIdVerToObjectId ( pathIdVer ) ) . getObjectId ( ) ;
String objectVer = validateObjectVerFromKey ( pathIdVer ) ;
@ -1453,9 +1455,4 @@ public class LwM2mTransportServiceImpl implements LwM2mTransportService {
objectId ! = null & & objectVer ! = null & & objectVer . equals ( lwM2mClient . getRegistration ( ) . getSupportedVersion ( objectId ) ) ) ;
}
@Override
public String getName ( ) {
return "LWM2M" ;
}
}