Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move static EZSP version to non-static property in Zigbee Dongle EZSP #1359

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

import com.zsmartsystems.zigbee.ZigBeeNetworkManager;
import com.zsmartsystems.zigbee.dongle.ember.EmberNcp;
import com.zsmartsystems.zigbee.dongle.ember.ezsp.EzspFrame;
import com.zsmartsystems.zigbee.dongle.ember.ezsp.command.EzspVersionResponse;

/**
Expand Down Expand Up @@ -47,7 +46,7 @@ public void process(ZigBeeNetworkManager networkManager, String[] args, PrintStr

EzspVersionResponse version = ncp.getVersion();
out.println("Ember NCP version " + getVersionString(version.getStackVersion()) + ", EZSP version "
+ EzspFrame.getEzspVersion());
+ version.getProtocolVersion());
}

private String getVersionString(int value) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,9 @@ private void createCommandClass(String className, Command command, List<Paramete
out.println(" /**");
out.println(" * Response and Handler constructor");
out.println(" */");
out.println(" public " + className + "(int[] inputBuffer) {");
out.println(" public " + className + "(int ezspVersion, int[] inputBuffer) {");
out.println(" // Super creates deserializer and reads header fields");
out.println(" super(inputBuffer);");
out.println(" super(ezspVersion, inputBuffer);");
out.println();
out.println(" // Deserialize the fields");
Map<String, String> autoSizers = new HashMap<String, String>();
Expand Down Expand Up @@ -211,9 +211,9 @@ private void createCommandClass(String className, Command command, List<Paramete
if (className.endsWith("Request")) {
out.println();
out.println(" @Override");
out.println(" public int[] serialize() {");
out.println(" public int[] serialize(int ezspVersion) {");
out.println(" // Serialize the header");
out.println(" serializeHeader(serializer);");
out.println(" serializeHeader(ezspVersion, serializer);");
out.println();
out.println(" // Serialize the fields");
for (Parameter parameter : parameters) {
Expand Down Expand Up @@ -969,16 +969,6 @@ private void createEmberFrame(Protocol protocol) throws FileNotFoundException, U
out.println(" private final static Logger logger = LoggerFactory.getLogger(EzspFrame.class);");
out.println();
out.println(" /**");
out.println(" * The minimum supported version of EZSP");
out.println(" */");
out.println(" private static final int EZSP_MIN_VERSION = 4;");
out.println();
out.println(" /**");
out.println(" * The maximum supported version of EZSP");
out.println(" */");
out.println(" private static final int EZSP_MAX_VERSION = 8;");
out.println();
out.println(" /**");
out.println(" * The network ID bit shift");
out.println(" */");
out.println(" protected static final int EZSP_NETWORK_ID_SHIFT = 5;");
Expand All @@ -989,11 +979,6 @@ private void createEmberFrame(Protocol protocol) throws FileNotFoundException, U
out.println(" protected static final int EZSP_NETWORK_ID_MASK = 0x60;");
out.println();
out.println(" /**");
out.println(" * The current version of EZSP being used");
out.println(" */");
out.println(" protected static int ezspVersion = EZSP_MIN_VERSION;");
out.println();
out.println(" /**");
out.println(" * Legacy frame ID for EZSP 5+");
out.println(" */");
out.println(" protected static final int EZSP_LEGACY_FRAME_ID = 0xFF;");
Expand Down Expand Up @@ -1092,7 +1077,7 @@ private void createEmberFrame(Protocol protocol) throws FileNotFoundException, U
out.println(" * @param data the int[] containing the EZSP data from which to generate the frame");
out.println(" * @return the {@link EzspFrameResponse} or null if the response can't be created.");
out.println(" */");
out.println(" public static EzspFrameResponse createHandler(int[] data) {");
out.println(" public static EzspFrameResponse createHandler(int ezspVersion, int[] data) {");
out.println(" int frameId;");
out.println();
out.println(" try {");
Expand All @@ -1117,8 +1102,8 @@ private void createEmberFrame(Protocol protocol) throws FileNotFoundException, U
out.println();
out.println(" Constructor<?> ctor;");
out.println(" try {");
out.println(" ctor = ezspClass.getConstructor(int[].class);");
out.println(" EzspFrameResponse ezspFrame = (EzspFrameResponse) ctor.newInstance(data);");
out.println(" ctor = ezspClass.getConstructor(int.class, int[].class);");
out.println(" EzspFrameResponse ezspFrame = (EzspFrameResponse) ctor.newInstance(ezspVersion, data);");
out.println(" return ezspFrame;");
out.println(
" } catch (SecurityException | NoSuchMethodException | IllegalArgumentException | InstantiationException");
Expand All @@ -1136,33 +1121,6 @@ private void createEmberFrame(Protocol protocol) throws FileNotFoundException, U
out.println(" }");
out.println();

out.println(" /**");
out.println(" * Set the EZSP version to use");
out.println(" *");
out.println(" * @param ezspVersion the EZSP protocol version");
out.println(" * @return true if the version is supported");
out.println(" */");
out.println(" public static boolean setEzspVersion(int ezspVersion) {");
out.println(" if (ezspVersion <= EZSP_MAX_VERSION && ezspVersion >= EZSP_MIN_VERSION) {");
out.println(" EzspFrame.ezspVersion = ezspVersion;");
out.println(" return true;");
out.println(" }");
out.println();
out.println(" return false;");
out.println(" }");
out.println();

out.println(" /**");
out.println(
" * Gets the current version of EZSP that is in use. This will default to the minimum supported version on startup");
out.println(" *");
out.println(" * @return the current version of EZSP");
out.println(" */");
out.println(" public static int getEzspVersion() {");
out.println(" return EzspFrame.ezspVersion;");
out.println(" }");
out.println();

out.println(" private static String frameToString(int[] inputBuffer) {");
out.println(" StringBuilder result = new StringBuilder();");
out.println(" for (int data : inputBuffer) {");
Expand Down
Loading