/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package tgfx.system; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javafx.beans.binding.NumberBinding; import javafx.beans.property.SimpleDoubleProperty; import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.StringProperty; import tgfx.tinyg.MnemonicManager; import org.json.JSONObject; import tgfx.tinyg.TinygDriver; import org.apache.log4j.Logger; import org.json.JSONException; import tgfx.hardwarePlatforms.HardwarePlatform; import tgfx.tinyg.responseCommand; /** * * @author ril3y */ public final class Machine { //TG Specific //Machine EEPROM Values //binding public SimpleDoubleProperty longestTravelAxisValue = new SimpleDoubleProperty(); public SimpleIntegerProperty xjoggingIncrement = new SimpleIntegerProperty(); public SimpleIntegerProperty yjoggingIncrement = new SimpleIntegerProperty(); public SimpleIntegerProperty zjoggingIncrement = new SimpleIntegerProperty(); public SimpleIntegerProperty ajoggingIncrement = new SimpleIntegerProperty(); public SimpleStringProperty m_state = new SimpleStringProperty(); public SimpleStringProperty m_mode = new SimpleStringProperty(); public SimpleDoubleProperty firmwareBuild = new SimpleDoubleProperty(); public StringProperty firmwareVersion = new SimpleStringProperty(); public HardwarePlatform hardwarePlatform = new HardwarePlatform(); public StringProperty hardwareId = new SimpleStringProperty("na"); public StringProperty hardwareVersion = new SimpleStringProperty("na"); public SimpleDoubleProperty velocity = new SimpleDoubleProperty(); private StringProperty gcodeUnitMode = new SimpleStringProperty("mm"); public SimpleDoubleProperty gcodeUnitDivision = new SimpleDoubleProperty(1); // private SimpleStringProperty gcodeDistanceMode = new SimpleStringProperty(); private int switchType = 0; //0=normally closed 1 = normally open private int status_report_interval; // public Gcode_unit_modes gcode_startup_units; public Gcode_select_plane gcode_select_plane; public Gcode_coord_system gcode_select_coord_system; public Gcode_path_control gcode_path_control; public Gcode_distance_mode gcode_distance_mode = Gcode_distance_mode.ABSOLUTE; private boolean enable_acceleration; private float junction_acceleration; private float min_line_segment; static final Logger logger = Logger.getLogger(TinygDriver.class); private float min_arc_segment; private double min_segment_time; private boolean enable_CR_on_TX; private boolean enable_echo; private boolean enable_xon_xoff; private boolean enable_hashcode; //Misc public SimpleIntegerProperty lineNumber = new SimpleIntegerProperty(0); private String last_message = ""; // public static motion_modes motion_mode = new SimpleIntegerProperty(); public static motion_modes motion_mode; private final List<Motor> motors = new ArrayList<>(); private final List<Axis> axis = new ArrayList<>(); private List<GcodeCoordinateSystem> gcodeCoordinateSystems = new ArrayList<>(); private final Axis x = new Axis(Axis.AXIS.X, Axis.AXIS_TYPE.LINEAR, Axis.AXIS_MODES.STANDARD); private final Axis y = new Axis(Axis.AXIS.Y, Axis.AXIS_TYPE.LINEAR, Axis.AXIS_MODES.STANDARD); private final Axis z = new Axis(Axis.AXIS.Z, Axis.AXIS_TYPE.LINEAR, Axis.AXIS_MODES.STANDARD); private final Axis a = new Axis(Axis.AXIS.A, Axis.AXIS_TYPE.ROTATIONAL, Axis.AXIS_MODES.STANDARD); private final Axis b = new Axis(Axis.AXIS.B, Axis.AXIS_TYPE.ROTATIONAL, Axis.AXIS_MODES.STANDARD); private final Axis c = new Axis(Axis.AXIS.C, Axis.AXIS_TYPE.ROTATIONAL, Axis.AXIS_MODES.STANDARD); private final Motor Motor1 = new Motor(1); private final Motor Motor2 = new Motor(2); private final Motor Motor3 = new Motor(3); private final Motor Motor4 = new Motor(4); public GcodeCoordinateManager gcm = new GcodeCoordinateManager(); public static enum motion_modes { // [momo] motion_mode - 0=traverse, 1=straight feed, 2=cw arc, 3=ccw arc traverse, feed, cw_arc, ccw_arc, cancel } public static enum coordinate_systems { g54, g55, g56, g57, g58, g59 } public void setSwitchType(int swType) { this.switchType = swType; } public int getSwitchType() { return (switchType); } public String getSwitchTypeAsString() { if (switchType == 0) { return ("Normally Open"); } else { return ("Normally Closed"); } } public Gcode_select_plane getGcode_select_plane() { return gcode_select_plane; } public Gcode_distance_mode getGcode_distance_mode() { return gcode_distance_mode; } public void setGcodeDistanceMode(String gdm) { setGcodeDistanceMode(Integer.valueOf(gdm)); } public void setGcodeDistanceMode(int gdm) { switch (gdm) { case 0: this.gcode_distance_mode = Gcode_distance_mode.ABSOLUTE; break; case 1: this.gcode_distance_mode = Gcode_distance_mode.INCREMENTAL; } } public void setGcodeSelectPlane(String gsp) { setGcodeSelectPlane(Integer.valueOf(gsp)); } public String getLast_message() { return last_message; } public void setLast_message(String last_message) { this.last_message = last_message; } public void setGcodeSelectPlane(int gsp) { switch (gsp) { case 0: this.gcode_select_plane = Gcode_select_plane.XY; case 1: this.gcode_select_plane = Gcode_select_plane.XZ; case 2: this.gcode_select_plane = Gcode_select_plane.YZ; } } public void setGcode_select_plane(Gcode_select_plane gcode_select_plane) { this.gcode_select_plane = gcode_select_plane; } private SimpleStringProperty coordinateSystem = new SimpleStringProperty(); public StringProperty getHardwareId() { return hardwareId; } public void setHardwareId(String hwIdString) { hardwareId.set(hwIdString); } public StringProperty getHardwareVersion() { return hardwareVersion; } public void setHardwareVersion(String hardwareVersion) { if(Integer.valueOf(hardwareVersion) == 8 && hardwarePlatform.getHardwarePlatformVersion() == -1){ //We do this beacause early builds of TinyG did not have a $hp value so we assume it is an v8 tinyg TinygDriver.getInstance().hardwarePlatformManager.setHardwarePlatformByVersionNumber(8); }else if(Integer.valueOf(hardwareVersion) == 7 && hardwarePlatform.getHardwarePlatformVersion() == -1) { //-1 means we have not set it yet TinygDriver.getInstance().hardwarePlatformManager.setHardwarePlatformByVersionNumber(7); } this.hardwareVersion.set(hardwareVersion); } public static enum machine_states { reset, cycle, stop, end, run, hold, homing, probe, jog } public static machine_states machine_state; public static enum Gcode_unit_modes { //gun inches, //G20 mm //G21 }; public static enum Gcode_select_plane { //$gpl XY, //G17 XZ, //G18 YZ //G19 } public static enum Gcode_distance_mode { //$gdi ABSOLUTE, //G90 INCREMENTAL //G91 } public Gcode_path_control getGcode_path_control() { return gcode_path_control; } public void setGcodePathControl(String gpc) { setGcodePathControl(Integer.valueOf(gpc)); } public void setGcodePathControl(int gpc) { switch (gpc) { case 0: this.gcode_path_control = Gcode_path_control.G61; break; case 1: this.gcode_path_control = Gcode_path_control.G61POINT1; break; case 2: this.gcode_path_control = Gcode_path_control.G64; break; } } public static enum Gcode_path_control { //gpl G61, G61POINT1, G64 } public static enum Gcode_coord_system { //gco G54, G55, G56, G57, G58, G59 } private enum selection_plane { G17, G18, G19 }; public boolean isEnable_CR_on_TX() { return enable_CR_on_TX; } public void setEnable_CR_on_TX(boolean enable_CR_on_TX) { this.enable_CR_on_TX = enable_CR_on_TX; } public boolean isEnable_hashcode() { return enable_hashcode; } public void setEnable_hashcode(boolean enable_hashcode) { this.enable_hashcode = enable_hashcode; } public float getJunction_acceleration() { return junction_acceleration; } public void setJunction_acceleration(float junction_acceleration) { this.junction_acceleration = junction_acceleration; } public List<Motor> getMotors() { return (this.motors); } public int getNumberOfMotors() { //return how many numbers are in the system return (this.getMotors().size()); } private String machineName; public String getMachineName() { return machineName; } public void setGcodeUnits(int unitMode) { if (unitMode == 0) { gcodeUnitMode.setValue("inches"); gcodeUnitDivision.set(25.4); //mm to inches conversion } else if (unitMode == 1) { gcodeUnitMode.setValue("mm"); gcodeUnitDivision.set(1.0); } } public StringProperty getGcodeUnitMode() { return gcodeUnitMode; } public int getGcodeUnitModeAsInt() { if (gcodeUnitMode.get().equals(Gcode_unit_modes.mm.toString())) { return (1); } else { return (0); } } public void setGcodeUnits(String gcu) { int _tmpgcu = Integer.valueOf(gcu); switch (_tmpgcu) { case (0): gcodeUnitMode.set(Gcode_unit_modes.inches.toString()); break; case (1): gcodeUnitMode.set(Gcode_unit_modes.mm.toString()); break; } } public SimpleStringProperty getMotionMode() { return (m_mode); } public void setMotionMode(int mode) { if (mode == 0) { m_mode.set(motion_modes.traverse.toString()); } else if (mode == 1) { m_mode.set(motion_modes.feed.toString()); } else if (mode == 2) { m_mode.set(motion_modes.cw_arc.toString()); } else if (mode == 3) { m_mode.set(motion_modes.ccw_arc.toString()); } else { m_mode.set(motion_modes.cancel.toString()); } } // public int getStatus_report_interval() { return status_report_interval; } public void setStatus_report_interval(int status_report_interval) { this.status_report_interval = status_report_interval; } public void setMachineName(String machineName) { this.machineName = machineName; } public boolean isEnable_acceleration() { return enable_acceleration; } public void setEnable_acceleration(boolean enable_acceleration) { this.enable_acceleration = enable_acceleration; } public boolean isEnable_echo() { return enable_echo; } public void setEnable_echo(boolean enable_echo) { this.enable_echo = enable_echo; } public boolean isEnable_xon_xoff() { return enable_xon_xoff; } public void setEnable_xon_xoff(boolean enable_xon_xoff) { this.enable_xon_xoff = enable_xon_xoff; } public double getFirmwareBuild() { return firmwareBuild.getValue(); } public void setFirmwareBuild(double firmware_build) throws IOException, JSONException { this.firmwareBuild.set(firmware_build); TinygDriver.getInstance().notifyBuildChanged(); } public StringProperty getFirmwareVersion() { return firmwareVersion; } public void setFirmwareVersion(String fv) { this.firmwareVersion.setValue(fv); } public int getLineNumber() { return lineNumber.get(); } public SimpleIntegerProperty getLineNumberSimple() { return lineNumber; } public void setLineNumber(int lineNumber) { this.lineNumber.set(lineNumber); } public SimpleStringProperty getMachineState() { return this.m_state; } // public void setCoordinateSystem(String cord) { // setCoordinate_mode(Integer.valueOf(cord)); // // } public SimpleStringProperty getCoordinateSystem() { return (this.coordinateSystem); } // public void setCoordinate_mode(double m) { // int c = (int) (m); //Convert this to a int // setCoordinate_mode(c); // } // public int getCoordinateSystemOrd() { // coordinate_systems[] cs = coordinate_systems.values(); // return 1; // } // // public void setCoordinate_mode(int c) { // switch (c) { // case 1: // coordinateSystem.set(coordinate_systems.g54.toString()); // break; // case 2: // coordinateSystem.set(coordinate_systems.g55.toString()); // break; // case 3: // coordinateSystem.set(coordinate_systems.g56.toString()); // break; // case 4: // coordinateSystem.set(coordinate_systems.g57.toString()); // break; // case 5: // coordinateSystem.set(coordinate_systems.g58.toString()); // break; // case 6: // coordinateSystem.set(coordinate_systems.g59.toString()); // break; // default: // coordinateSystem.set(coordinate_systems.g54.toString()); // break; // } // } public void setMachineState(int state) { switch (state) { case 1: m_state.set(machine_states.reset.toString()); break; case 2: m_state.set(machine_states.cycle.toString()); break; case 3: m_state.set(machine_states.stop.toString()); break; case 4: m_state.set(machine_states.end.toString()); break; case 5: m_state.set(machine_states.run.toString()); break; case 6: m_state.set(machine_states.hold.toString()); break; case 7: m_state.set(machine_states.homing.toString()); break; case 8: m_state.set(machine_states.probe.toString()); break; case 9: m_state.set(machine_states.jog.toString()); break; } } public float getMin_arc_segment() { return min_arc_segment; } public void setMin_arc_segment(float min_arc_segment) { this.min_arc_segment = min_arc_segment; } public float getMin_line_segment() { return min_line_segment; } public void setMin_line_segment(float min_line_segment) { this.min_line_segment = min_line_segment; } public double getMin_segment_time() { return min_segment_time; } public void setMin_segment_time(double min_segment_time) { this.min_segment_time = min_segment_time; } public Double getVelocity() { return (velocity.get()); } public void setVelocity(double vel) { velocity.set(vel); } public static Machine getInstance() { return MachineHolder.INSTANCE; } private static class MachineHolder { private static final Machine INSTANCE = new Machine(); } public Machine() { motors.add(Motor1); motors.add(Motor2); motors.add(Motor3); motors.add(Motor4); axis.add(x); axis.add(y); axis.add(z); axis.add(a); axis.add(b); axis.add(c); setMotionMode(0); xjoggingIncrement.bind(getAxisByName("X").getTravelMaxSimple()); yjoggingIncrement.bind(getAxisByName("Y").getTravelMaxSimple()); zjoggingIncrement.bind(getAxisByName("Z").getTravelMaxSimple()); } public double getJoggingIncrementByAxis(String _axisName) { return getAxisByName(_axisName).getTravelMaxSimple().get(); } public GcodeCoordinateSystem getCoordinateSystemByName(String name) { for (GcodeCoordinateSystem _tmpGCS : gcodeCoordinateSystems) { if (_tmpGCS.getCoordinate().equals(name)) { return (_tmpGCS); } } return null; } public GcodeCoordinateSystem getCoordinateSystemByNumberMnemonic(int number) { for (GcodeCoordinateSystem _tmpGCS : gcodeCoordinateSystems) { if (_tmpGCS.getCoordinateNumberMnemonic() == number) { logger.info("Returned " + _tmpGCS.getCoordinate() + " coord system"); return (_tmpGCS); } } return null; } public GcodeCoordinateSystem getCoordinateSystemByTgNumber(int number) { for (GcodeCoordinateSystem _tmpGCS : gcodeCoordinateSystems) { if (_tmpGCS.getCoordinateNumberByTgFormat() == number) { logger.info("Returned " + _tmpGCS.getCoordinate() + " coord system"); return (_tmpGCS); } } return null; } public List<Axis> getAllAxis() { return axis; } public List getAllLinearAxis() { List _allAxis = getAllAxis(); List _retAxisList = new ArrayList(); Axis _ax; for (int i = 0; i < _allAxis.size(); i++) { Axis a = (Axis) _allAxis.get(i); if (a.getAxisType().equals(Axis.AXIS_TYPE.LINEAR)) { _retAxisList.add(a); } } return _retAxisList; } public Axis getAxisByName(char c) { return (getAxisByName(String.valueOf(c))); } public Axis getAxisByName(String name) { for (Axis tmpAxis : axis) { if (tmpAxis.getAxis_name().equals(name.toUpperCase())) { return (tmpAxis); } } return null; } public Motor getMotorByNumber(String m) { //Little stub method to allow calling getMotorByNumber with String arg. return getMotorByNumber(Integer.valueOf(m)); } public Motor getMotorByNumber(int i) { for (Motor m : motors) { if (m.getId_number() == i) { return (m); } } return null; } public int getMotorAxis(Motor m) { return m.getId_number(); } public void setMotorAxis(int motorNumber, int x) { Motor m = getMotorByNumber(motorNumber); m.setMapToAxis(x); } public void applyJsonStatusReport(responseCommand rc) { switch (rc.getSettingKey()) { case (MnemonicManager.MNEMONIC_STATUS_REPORT_LINE): TinygDriver.getInstance().machine.setLineNumber(Integer.valueOf(rc.getSettingValue())); setLineNumber(Integer.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_MOTION_MODE): TinygDriver.getInstance().machine.setMotionMode(Integer.valueOf(rc.getSettingValue())); break; //Machine Position Cases case (MnemonicManager.MNEMONIC_STATUS_REPORT_MACHINEPOSX): TinygDriver.getInstance().machine.getAxisByName(rc.getSettingKey().charAt(3)).setMachinePosition(Double.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_MACHINEPOSY): TinygDriver.getInstance().machine.getAxisByName(rc.getSettingKey().charAt(3)).setMachinePosition(Double.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_MACHINEPOSZ): TinygDriver.getInstance().machine.getAxisByName(rc.getSettingKey().charAt(3)).setMachinePosition(Double.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_MACHINEPOSA): TinygDriver.getInstance().machine.getAxisByName(rc.getSettingKey().charAt(3)).setMachinePosition(Double.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_WORKOFFSETX): TinygDriver.getInstance().machine.getAxisByName(rc.getSettingKey().charAt(3)).setOffset(Double.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_WORKOFFSETY): TinygDriver.getInstance().machine.getAxisByName(rc.getSettingKey().charAt(3)).setOffset(Double.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_WORKOFFSETZ): TinygDriver.getInstance().machine.getAxisByName(rc.getSettingKey().charAt(3)).setOffset(Double.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_WORKOFFSETA): TinygDriver.getInstance().machine.getAxisByName(rc.getSettingKey().charAt(3)).setOffset(Double.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_TINYG_DISTANCE_MODE): TinygDriver.getInstance().machine.setGcodeDistanceMode(rc.getSettingValue()); break; /* * INSERT HOMED HERE */ case (MnemonicManager.MNEMONIC_STATUS_REPORT_STAT): TinygDriver.getInstance().machine.setMachineState(Integer.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_UNIT): TinygDriver.getInstance().machine.setGcodeUnits(Integer.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_COORDNIATE_MODE): TinygDriver.getInstance().machine.gcm.setCurrentGcodeCoordinateSystem(Integer.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_STATUS_REPORT_VELOCITY): TinygDriver.getInstance().machine.setVelocity(Double.valueOf(rc.getSettingValue())); break; } } //This is the main method to parser a JSON sys object public void applyJsonSystemSetting(JSONObject js, String parent) throws IOException { logger.info("Applying JSON Object to System Group"); Iterator ii = js.keySet().iterator(); try { while (ii.hasNext()) { String _key = ii.next().toString(); String _val = js.get(_key).toString(); final responseCommand rc = new responseCommand(parent, _key, _val); switch (_key) { case (MnemonicManager.MNEMONIC_SYSTEM_BAUDRATE): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_HARDWARD_PLATFORM): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); TinygDriver.getInstance().hardwarePlatformManager.setHardwarePlatformByVersionNumber(Integer.valueOf(rc.getSettingValue())); break; case (MnemonicManager.MNEMONIC_SYSTEM_HARDWARE_VERSION): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); if(Integer.valueOf(rc.getSettingValue()) == 8 ){ //We do this because there is no $hp in TinyG v8 in builds sub 380.08 TinygDriver.getInstance().hardwarePlatformManager.setHardwarePlatformByVersionNumber(Integer.valueOf(rc.getSettingValue())); } TinygDriver.getInstance().machine.setHardwareVersion(rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_ENABLE_ECHO): TinygDriver.getInstance().machine.setEnable_echo(Boolean.valueOf(rc.getSettingValue())); logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_ENABLE_JSON_MODE): //TinygDriver.getInstance().m(Float.valueOf(rc.getSettingValue())); logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_ENABLE_XON): TinygDriver.getInstance().machine.setEnable_xon_xoff(Boolean.valueOf(rc.getSettingValue())); logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_FIRMWARE_BUILD): TinygDriver.getInstance().machine.setFirmwareBuild(Double.valueOf(rc.getSettingValue())); logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_FIRMWARE_VERSION): TinygDriver.getInstance().machine.setFirmwareVersion(rc.getSettingValue()); logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_DEFAULT_GCODE_COORDINATE_SYSTEM): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_DEFAULT_GCODE_DISTANCE_MODE): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); TinygDriver.getInstance().machine.setGcodeDistanceMode(rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_DEFAULT_GCODE_PATH_CONTROL): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); TinygDriver.getInstance().machine.setGcodePathControl(rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_DEFAULT_GCODE_PLANE): //TinygDriver.getInstance().m.setGcodeSelectPlane(Float.valueOf(rc.getSettingValue())); logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); TinygDriver.getInstance().machine.setGcodeSelectPlane(rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_JSON_VOBERSITY): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_JUNCTION_ACCELERATION): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_MIN_ARC_SEGMENT): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_MIN_LINE_SEGMENT): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_MIN_TIME_SEGMENT): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_QUEUE_REPORTS): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_STATUS_REPORT_INTERVAL): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_SWITCH_TYPE): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); TinygDriver.getInstance().machine.setSwitchType(Integer.valueOf(rc.getSettingValue())); String[] message = new String[2]; message[0] = "MACHINE_UPDATE"; message[1] = null; TinygDriver.getInstance().resParse.set_Changed(); TinygDriver.getInstance().resParse.notifyObservers(message); break; case (MnemonicManager.MNEMONIC_SYSTEM_TEXT_VOBERSITY): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); break; case (MnemonicManager.MNEMONIC_SYSTEM_TINYG_ID_VERSION): logger.info("[APPLIED:" + rc.getSettingParent() + " " + rc.getSettingKey() + ":" + rc.getSettingValue()); this.setHardwareId(rc.getSettingValue()); break; } } } catch (JSONException | NumberFormatException ex) { logger.error("Error in ApplyJsonSystemSetting in Machine:SYS group"); } } }