/** * */ package org.goko.controller.g2core.configuration; import java.math.BigDecimal; import org.apache.commons.lang3.StringUtils; import org.goko.controller.g2core.controller.G2Core; import org.goko.controller.tinyg.commons.configuration.AbstractTinyGConfiguration; import org.goko.controller.tinyg.commons.configuration.TinyGGroupSettings; /** * @author Psyko * @date 8 janv. 2017 */ public class G2CoreConfiguration extends AbstractTinyGConfiguration<G2CoreConfiguration>{ /** * Constructor */ public G2CoreConfiguration() { this(true); } /** * Constructor with parameterized group or setting initialization */ protected G2CoreConfiguration(boolean init) { super(); if(init){ initialize(); } } /** (inheritDoc) * @see org.goko.controller.tinyg.commons.configuration.AbstractTinyGConfiguration#newInstance() */ @Override protected G2CoreConfiguration newInstance() { return new G2CoreConfiguration(false); } /** * Initialization of the configuration */ protected void initialize(){ /* * System group */ TinyGGroupSettings systemGroup = new TinyGGroupSettings(G2Core.Configuration.Groups.SYSTEM); systemGroup.addSettingReadOnly(G2Core.Configuration.System.FIRMWARE_VERSION , BigDecimal.ZERO); systemGroup.addSettingReadOnly(G2Core.Configuration.System.FIRMWARE_BUILD , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.FIRMWARE_BUILD_STRING , StringUtils.EMPTY); systemGroup.addSetting(G2Core.Configuration.System.FIRMWARE_BUILD_CONFIG , StringUtils.EMPTY); systemGroup.addSetting(G2Core.Configuration.System.HARDWARE_PLATFORM , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.HARDWARE_VERSION , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.BOARD_ID , StringUtils.EMPTY); systemGroup.addSetting(G2Core.Configuration.System.JUNCTION_INTEGRATION_TIME , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.CHORDAL_TOLERANCE , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.MOTOR_DISABLE_TIMEOUT , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.JSON_MODE , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.JSON_MODE_VERBOSITY , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.TEXT_MODE_VERBOSITY , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.QUEUE_REPORT_VERBOSITY , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.STATUS_REPORT_VERBOSITY , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.STATUS_REPORT_INTERVAL , BigDecimal.ZERO); //systemGroup.addSetting(G2Core.Configuration.System.FLOW_CONTROL , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.DEFAULT_PLANE_SELECTION , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.DEFAULT_UNITS_MODE , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.DEFAULT_COORDINATE_SYSTEM , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.DEFAULT_PATH_CONTROL , BigDecimal.ZERO); systemGroup.addSetting(G2Core.Configuration.System.DEFAULT_DISTANCE_MODE , BigDecimal.ZERO); addGroup(systemGroup); /* * Axis groups */ addGroup( new G2CoreLinearAxisSettings(G2Core.Configuration.Groups.X_AXIS) ); addGroup( new G2CoreLinearAxisSettings(G2Core.Configuration.Groups.Y_AXIS) ); addGroup( new G2CoreLinearAxisSettings(G2Core.Configuration.Groups.Z_AXIS) ); addGroup( new G2CoreRotationalAxisSettings(G2Core.Configuration.Groups.A_AXIS) ); addGroup( new G2CoreRotationalAxisSettings(G2Core.Configuration.Groups.B_AXIS) ); addGroup( new G2CoreRotationalAxisSettings(G2Core.Configuration.Groups.C_AXIS) ); /* * Motor groups */ addGroup( new G2CoreMotorSettings(G2Core.Configuration.Groups.MOTOR_1)); addGroup( new G2CoreMotorSettings(G2Core.Configuration.Groups.MOTOR_2)); addGroup( new G2CoreMotorSettings(G2Core.Configuration.Groups.MOTOR_3)); addGroup( new G2CoreMotorSettings(G2Core.Configuration.Groups.MOTOR_4)); /* * PWM Channel */ addGroup( new G2CorePWMChannelSettings(G2Core.Configuration.Groups.PWM_CHANNEL_1)); } /** (inheritDoc) * @see org.goko.controller.tinyg.commons.configuration.AbstractTinyGConfiguration#getDefaultGroup() */ @Override protected String getDefaultGroup() { return G2Core.Configuration.Groups.SYSTEM; } }