use of com.zsmartsystems.zigbee.dongle.ember.internal.ezsp.transaction.EzspTransaction in project com.zsmartsystems.zigbee by zsmartsystems.
the class EmberNcp method getChildParameters.
/**
* Returns information about the children of the local node and the parent of the local node.
*
* @return the {@link EzspGetParentChildParametersResponse}
*/
public EzspGetParentChildParametersResponse getChildParameters() {
EzspGetParentChildParametersRequest request = new EzspGetParentChildParametersRequest();
EzspTransaction transaction = ashHandler.sendEzspTransaction(new EzspSingleResponseTransaction(request, EzspGetParentChildParametersResponse.class));
EzspGetParentChildParametersResponse response = (EzspGetParentChildParametersResponse) transaction.getResponse();
lastStatus = null;
return response;
}
use of com.zsmartsystems.zigbee.dongle.ember.internal.ezsp.transaction.EzspTransaction in project com.zsmartsystems.zigbee by zsmartsystems.
the class ZigBeeDongleEzsp method setConcentrator.
private TransportConfigResult setConcentrator(ConcentratorConfig concentratorConfig) {
EzspSetConcentratorRequest concentratorRequest = new EzspSetConcentratorRequest();
concentratorRequest.setMinTime(concentratorConfig.getRefreshMinimum());
concentratorRequest.setMaxTime(concentratorConfig.getRefreshMaximum());
concentratorRequest.setMaxHops(concentratorConfig.getMaxHops());
concentratorRequest.setRouteErrorThreshold(concentratorConfig.getMaxFailures());
concentratorRequest.setDeliveryFailureThreshold(concentratorConfig.getMaxFailures());
switch(concentratorConfig.getType()) {
case DISABLED:
concentratorRequest.setEnable(false);
break;
case HIGH_RAM:
concentratorRequest.setConcentratorType(EmberConcentratorType.EMBER_HIGH_RAM_CONCENTRATOR);
concentratorRequest.setEnable(true);
break;
case LOW_RAM:
concentratorRequest.setConcentratorType(EmberConcentratorType.EMBER_LOW_RAM_CONCENTRATOR);
concentratorRequest.setEnable(true);
break;
default:
break;
}
EzspTransaction concentratorTransaction = ashHandler.sendEzspTransaction(new EzspSingleResponseTransaction(concentratorRequest, EzspSetConcentratorResponse.class));
EzspSetConcentratorResponse concentratorResponse = (EzspSetConcentratorResponse) concentratorTransaction.getResponse();
logger.debug(concentratorResponse.toString());
if (concentratorResponse.getStatus() == EzspStatus.EZSP_SUCCESS) {
return TransportConfigResult.SUCCESS;
}
return TransportConfigResult.FAILURE;
}
use of com.zsmartsystems.zigbee.dongle.ember.internal.ezsp.transaction.EzspTransaction in project com.zsmartsystems.zigbee by zsmartsystems.
the class ZigBeeDongleEzsp method initialize.
@Override
public ZigBeeInitializeResponse initialize() {
logger.debug("EZSP dongle initialize.");
zigbeeTransportReceive.setNetworkState(ZigBeeTransportState.UNINITIALISED);
if (!initialiseEzspProtocol()) {
return ZigBeeInitializeResponse.FAILED;
}
// Perform any stack configuration
EmberStackConfiguration stackConfigurer = new EmberStackConfiguration(ashHandler);
Map<EzspConfigId, Integer> configuration = stackConfigurer.getConfiguration(stackConfiguration.keySet());
for (Entry<EzspConfigId, Integer> config : configuration.entrySet()) {
logger.debug("Configuration state {} = {}", config.getKey(), config.getValue());
}
Map<EzspPolicyId, EzspDecisionId> policies = stackConfigurer.getPolicy(stackPolicies.keySet());
for (Entry<EzspPolicyId, EzspDecisionId> policy : policies.entrySet()) {
logger.debug("Policy state {} = {}", policy.getKey(), policy.getValue());
}
stackConfigurer.setConfiguration(stackConfiguration);
configuration = stackConfigurer.getConfiguration(stackConfiguration.keySet());
for (Entry<EzspConfigId, Integer> config : configuration.entrySet()) {
logger.debug("Configuration state {} = {}", config.getKey(), config.getValue());
}
stackConfigurer.setPolicy(stackPolicies);
policies = stackConfigurer.getPolicy(stackPolicies.keySet());
for (Entry<EzspPolicyId, EzspDecisionId> policy : policies.entrySet()) {
logger.debug("Policy state {} = {}", policy.getKey(), policy.getValue());
}
EmberNcp ncp = new EmberNcp(ashHandler);
ncp.getNetworkParameters();
// Add the endpoint
ncp.addEndpoint(1, 0, ZigBeeProfileType.ZIGBEE_HOME_AUTOMATION.getId(), new int[] { 0 }, new int[] { 0 });
// Now initialise the network
EzspNetworkInitRequest networkInitRequest = new EzspNetworkInitRequest();
EzspTransaction networkInitTransaction = ashHandler.sendEzspTransaction(new EzspSingleResponseTransaction(networkInitRequest, EzspNetworkInitResponse.class));
EzspNetworkInitResponse networkInitResponse = (EzspNetworkInitResponse) networkInitTransaction.getResponse();
logger.debug(networkInitResponse.toString());
networkParameters = ncp.getNetworkParameters();
ncp.getCurrentSecurityState();
zigbeeTransportReceive.setNetworkState(ZigBeeTransportState.INITIALISING);
logger.debug("EZSP dongle initialize done: Initialised {}", networkInitResponse.getStatus() == EmberStatus.EMBER_NOT_JOINED);
// Check if the network is initialised or if we're yet to join
if (networkInitResponse.getStatus() == EmberStatus.EMBER_NOT_JOINED) {
return ZigBeeInitializeResponse.NOT_JOINED;
}
return ZigBeeInitializeResponse.JOINED;
}
use of com.zsmartsystems.zigbee.dongle.ember.internal.ezsp.transaction.EzspTransaction in project com.zsmartsystems.zigbee by zsmartsystems.
the class EmberNetworkInitialisation method checkNetworkJoined.
private boolean checkNetworkJoined() {
// Check if the network is initialised
EzspNetworkStateRequest networkStateRequest = new EzspNetworkStateRequest();
EzspTransaction networkStateTransaction = ashHandler.sendEzspTransaction(new EzspSingleResponseTransaction(networkStateRequest, EzspNetworkStateResponse.class));
EzspNetworkStateResponse networkStateResponse = (EzspNetworkStateResponse) networkStateTransaction.getResponse();
logger.debug(networkStateResponse.toString());
logger.debug("EZSP networkStateResponse {}", networkStateResponse.getStatus());
return networkStateResponse.getStatus() == EmberNetworkStatus.EMBER_JOINED_NETWORK;
}
use of com.zsmartsystems.zigbee.dongle.ember.internal.ezsp.transaction.EzspTransaction in project com.zsmartsystems.zigbee by zsmartsystems.
the class EmberNetworkInitialisation method doLeaveNetwork.
private boolean doLeaveNetwork() {
EzspLeaveNetworkRequest leaveNetworkRequest = new EzspLeaveNetworkRequest();
EzspTransaction leaveNetworkTransaction = ashHandler.sendEzspTransaction(new EzspSingleResponseTransaction(leaveNetworkRequest, EzspLeaveNetworkResponse.class));
EzspLeaveNetworkResponse leaveNetworkResponse = (EzspLeaveNetworkResponse) leaveNetworkTransaction.getResponse();
logger.debug(leaveNetworkResponse.toString());
return leaveNetworkResponse.getStatus() == EmberStatus.EMBER_SUCCESS;
}
Aggregations