@Override public IDeviceStateChange addDeviceStateChange(String assignmentToken, IDeviceStateChangeCreateRequest request) throws SiteWhereException { return delegate.addDeviceStateChange(assignmentToken, request); }
@Override public void onDeviceStateChangeCreateRequest(String hardwareId, String originator, IDeviceStateChangeCreateRequest request) throws SiteWhereException { IDeviceAssignment assignment = getCurrentAssignment(hardwareId); IDeviceStateChange state = getDeviceEventManagement().addDeviceStateChange(assignment.getToken(), request); handleLinkResponseToInvocation(originator, state.getId(), assignment); }
/** * Create state change to be associated with a device assignment. * * @param input * @param token * @return * @throws SiteWhereException */ @RequestMapping(value = "/{token}/statechanges", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "Create an state change event for a device assignment") @Secured({ SiteWhereRoles.REST }) public DeviceStateChange createStateChange(@RequestBody DeviceStateChangeCreateRequest input, @ApiParam(value = "Assignment token", required = true) @PathVariable String token, HttpServletRequest servletRequest) throws SiteWhereException { Tracer.start(TracerCategory.RestApiCall, "createStateChange", LOGGER); try { IDeviceStateChange result = SiteWhere.getServer().getDeviceEventManagement(getTenant(servletRequest)) .addDeviceStateChange(token, input); return DeviceStateChange.copy(result); } finally { Tracer.stop(LOGGER); } }
@Override public IDeviceAssignment updateDeviceAssignmentMetadata(String token, IMetadataProvider metadata) throws SiteWhereException { IDeviceAssignment updated = super.updateDeviceAssignmentMetadata(token, metadata); DeviceStateChangeCreateRequest state = new DeviceStateChangeCreateRequest(StateChangeCategory.Assignment, StateChangeType.Assignment_Updated, null, null); SiteWhere.getServer().getDeviceEventManagement(getTenant()).addDeviceStateChange(updated.getToken(), state); return updated; }
@Override public IDeviceAssignment createDeviceAssignment(IDeviceAssignmentCreateRequest request) throws SiteWhereException { IDeviceAssignment created = super.createDeviceAssignment(request); DeviceStateChangeCreateRequest state = new DeviceStateChangeCreateRequest(StateChangeCategory.Assignment, StateChangeType.Assignment_Created, null, null); SiteWhere.getServer().getDeviceEventManagement(getTenant()).addDeviceStateChange(created.getToken(), state); return created; }
@Override public IDeviceAssignment endDeviceAssignment(String token) throws SiteWhereException { IDeviceAssignment updated = super.endDeviceAssignment(token); DeviceStateChangeCreateRequest state = new DeviceStateChangeCreateRequest(StateChangeCategory.Assignment, StateChangeType.Assignment_Released, null, null); SiteWhere.getServer().getDeviceEventManagement(getTenant()).addDeviceStateChange(updated.getToken(), state); return updated; }