def __init__(self, prompts, newline, driver_event): """ Protocol constructor. @param prompts A BaseEnum class containing instrument prompts. @param newline The newline. @param driver_event Driver process event callback. """ NortekInstrumentProtocol.__init__(self, prompts, newline, driver_event) # create chunker for processing instrument samples. self._chunker = StringChunker(self.sieve_function)
def __init__(self, prompts, newline, driver_event): """ Protocol constructor. @param prompts A BaseEnum class containing instrument prompts. @param newline The newline. @param driver_event Driver process event callback. """ NortekInstrumentProtocol.__init__(self, prompts, newline, driver_event) # create chunker for processing instrument samples. self._chunker = StringChunker(self.sieve_function)
def _build_param_dict(self): NortekInstrumentProtocol._build_param_dict(self) self._param_dict.add_parameter( NortekParameterDictVal(Parameter.NUMBER_SAMPLES_PER_BURST, r'^.{%s}(.{2}).*' % str(452), lambda match : NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL)) self._param_dict.add_parameter( NortekParameterDictVal(Parameter.USER_3_SPARE, r'^.{%s}(.{2}).*' % str(460), lambda match : match.group(1), lambda string : string, visibility=ParameterDictVisibility.READ_ONLY, regex_flags=re.DOTALL)) self._param_dict.load_strings(RESOURCE_FILE)
def __init__(self, prompts, newline, driver_event): """ Protocol constructor. @param prompts A BaseEnum class containing instrument prompts. @param newline The newline. @param driver_event Driver process event callback. """ NortekInstrumentProtocol.__init__(self, prompts, newline, driver_event) # create chunker for processing instrument samples. self._chunker = StringChunker(self.sieve_function) self.velocity_sync_bytes = VELOCITY_DATA_SYNC_BYTES self.status_particles = [ VectorDataParticleType.CLOCK, VectorDataParticleType.HARDWARE_CONFIG, VectorDataParticleType.HEAD_CONFIG, VectorDataParticleType.USER_CONFIG, ] self.clock_particle = VectorDataParticleType.CLOCK
def __init__(self, prompts, newline, driver_event): """ Protocol constructor. @param prompts A BaseEnum class containing instrument prompts. @param newline The newline. @param driver_event Driver process event callback. """ NortekInstrumentProtocol.__init__(self, prompts, newline, driver_event) # create chunker for processing instrument samples. self._chunker = StringChunker(self.sieve_function) self.velocity_sync_bytes = VELOCITY_DATA_SYNC_BYTES self.status_particles = [ VectorDataParticleType.CLOCK, VectorDataParticleType.HARDWARE_CONFIG, VectorDataParticleType.HEAD_CONFIG, VectorDataParticleType.USER_CONFIG ] self.clock_particle = VectorDataParticleType.CLOCK
def _build_param_dict(self): """ Overwrite base classes method. Creates base class's param dictionary, then sets parameter values for those specific to this instrument. """ NortekInstrumentProtocol._build_param_dict(self) self._param_dict.add( Parameter.TRANSMIT_PULSE_LENGTH, r'^.{%s}(.{2}).*' % str(4), lambda match: NortekProtocolParameterDict.convert_word_to_int( match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Transmit Pulse Length", description="Pulse duration of the transmitted signal.", range=(1, 65535), default_value=2, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add( Parameter.BLANKING_DISTANCE, r'^.{%s}(.{2}).*' % str(6), lambda match: NortekProtocolParameterDict.convert_word_to_int( match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Blanking Distance", description="Minimum sensing range of the sensor.", range=(1, 65535), default_value=16, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.RECEIVE_LENGTH, r'^.{%s}(.{2}).*' % str(8), lambda match: NortekProtocolParameterDict. convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Receive Length", description="Length of the received pulse.", range=(1, 65535), default_value=7, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.TIME_BETWEEN_PINGS, r'^.{%s}(.{2}).*' % str(10), lambda match: NortekProtocolParameterDict. convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Time Between Pings", description="Length of time between each ping.", default_value=44, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.TIME_BETWEEN_BURST_SEQUENCES, r'^.{%s}(.{2}).*' % str(12), lambda match: NortekProtocolParameterDict. convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Time Between Burst Sequences", description="Length of time between each burst.", range=(1, 65535), default_value=0, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add( Parameter.NUMBER_PINGS, r'^.{%s}(.{2}).*' % str(14), lambda match: NortekProtocolParameterDict.convert_word_to_int( match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number Pings", description="Number of pings in each burst sequence.", range=(1, 65535), default_value=0, units=Units.HERTZ, startup_param=True, direct_access=True) self._param_dict.add(Parameter.AVG_INTERVAL, r'^.{%s}(.{2}).*' % str(16), lambda match: NortekProtocolParameterDict. convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Average Interval", description="Interval for continuous sampling.", default_value=64, range=(1, 65535), units=Units.SECOND, startup_param=True, direct_access=True) self._param_dict.add(Parameter.MEASUREMENT_INTERVAL, r'^.{%s}(.{2}).*' % str(38), lambda match: NortekProtocolParameterDict. convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Measurement Interval", description="Interval for single measurements.", units=Units.SECOND, default_value=600, range=(0, 65535), startup_param=True, direct_access=True) self._param_dict.add( Parameter.DIAGNOSTIC_INTERVAL, r'^.{%s}(.{4}).*' % str(54), lambda match: NortekProtocolParameterDict. convert_double_word_to_int(match.group(1)), NortekProtocolParameterDict.double_word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Diagnostic Interval", description='Number of seconds between diagnostics measurements.', default_value=10800, units=Units.SECOND, startup_param=True, direct_access=True) self._param_dict.add( Parameter.ADJUSTMENT_SOUND_SPEED, r'^.{%s}(.{2}).*' % str(60), lambda match: NortekProtocolParameterDict.convert_word_to_int( match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Adjustment Sound Speed", description='User input sound speed adjustment factor.', default_value=16657, units=Units.METER + '/' + Units.SECOND, startup_param=True, direct_access=True) self._param_dict.add( Parameter.NUMBER_SAMPLES_DIAGNOSTIC, r'^.{%s}(.{2}).*' % str(62), lambda match: NortekProtocolParameterDict.convert_word_to_int( match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Diagnostic Samples", description='Number of samples in diagnostics mode.', default_value=1, startup_param=True, direct_access=True) self._param_dict.add( Parameter.SW_VERSION, r'^.{%s}(.{2}).*' % str(72), lambda match: NortekProtocolParameterDict.convert_word_to_int( match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, direct_access=True, display_name="Software Version", description="Current software version installed on instrument.") self._param_dict.add(Parameter.SAMPLE_RATE, r'^.{%s}(.{2}).*' % str(454), lambda match: NortekProtocolParameterDict. convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Sample Rate", description="Number of samples per burst.", range=(1, 65535), default_value=16, startup_param=True) self._param_dict.add( Parameter.ANALOG_OUTPUT_SCALE, r'^.{%s}(.{2}).*' % str(456), lambda match: NortekProtocolParameterDict.convert_word_to_int( match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Analog Output Scale Factor", description="Scale factor used in calculating analog output.", default_value=6711, startup_param=True, direct_access=True)
def _build_param_dict(self): """ Overwrite base classes method. Creates base class's param dictionary, then sets parameter values for those specific to this instrument. """ NortekInstrumentProtocol._build_param_dict(self) self._param_dict.add(Parameter.TRANSMIT_PULSE_LENGTH, r'^.{%s}(.{2}).*' % str(4), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Transmit Pulse Length", description="Pulse duration of the transmitted signal.", default_value=2, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.BLANKING_DISTANCE, r'^.{%s}(.{2}).*' % str(6), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Blanking Distance", description="Minimum sensing range of the sensor.", default_value=16, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.RECEIVE_LENGTH, r'^.{%s}(.{2}).*' % str(8), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Receive Length", description="Length of the received pulse.", default_value=7, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.TIME_BETWEEN_PINGS, r'^.{%s}(.{2}).*' % str(10), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Time Between Pings", description="Length of time between each ping.", default_value=44, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.TIME_BETWEEN_BURST_SEQUENCES, r'^.{%s}(.{2}).*' % str(12), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Time Between Burst Sequences", description="Length of time between each burst.", default_value=0, units=Units.COUNTS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.NUMBER_PINGS, r'^.{%s}(.{2}).*' % str(14), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number Pings", description="Number of pings in each burst sequence.", default_value=0, units=Units.HERTZ, startup_param=True, direct_access=True) self._param_dict.add(Parameter.AVG_INTERVAL, r'^.{%s}(.{2}).*' % str(16), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Average Interval", description="Interval for continuous sampling.", default_value=64, units=Units.SECOND, startup_param=True, direct_access=True) self._param_dict.add(Parameter.MEASUREMENT_INTERVAL, r'^.{%s}(.{2}).*' % str(38), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Measurement Interval", description="Interval for single measurements.", units=Units.SECOND, default_value=600, startup_param=True, direct_access=True) self._param_dict.add(Parameter.DIAGNOSTIC_INTERVAL, r'^.{%s}(.{4}).*' % str(54), lambda match: NortekProtocolParameterDict.convert_double_word_to_int(match.group(1)), NortekProtocolParameterDict.double_word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Diagnostic Interval", description='Number of seconds between diagnostics measurements.', default_value=10800, units=Units.SECOND, startup_param=True, direct_access=True) self._param_dict.add(Parameter.ADJUSTMENT_SOUND_SPEED, r'^.{%s}(.{2}).*' % str(60), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Adjustment Sound Speed", description='User input sound speed adjustment factor.', default_value=16657, units=Units.METER + '/' + Units.SECOND, startup_param=True, direct_access=True) self._param_dict.add(Parameter.NUMBER_SAMPLES_DIAGNOSTIC, r'^.{%s}(.{2}).*' % str(62), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Diagnostic Samples", description='Number of samples in diagnostics mode.', default_value=1, startup_param=True, direct_access=True) self._param_dict.add(Parameter.SW_VERSION, r'^.{%s}(.{2}).*' % str(72), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, direct_access=True, display_name="Software Version", description="Current software version installed on instrument.") self._param_dict.add(Parameter.SAMPLE_RATE, r'^.{%s}(.{2}).*' % str(454), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Sample Rate", description="Number of samples per burst.", default_value=16, startup_param=True) self._param_dict.add(Parameter.ANALOG_OUTPUT_SCALE, r'^.{%s}(.{2}).*' % str(456), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Analog Output Scale Factor", description="Scale factor used in calculating analog output.", default_value=6711, startup_param=True, direct_access=True)
def _build_cmd_dict(self): NortekInstrumentProtocol._build_cmd_dict(self) self._cmd_dict.load_strings(RESOURCE_FILE)
def chunker_sieve_function(raw_data): return NortekInstrumentProtocol.chunker_sieve_function(raw_data, VECTOR_SAMPLE_STRUCTURES)
def __init__(self, prompts, newline, driver_event): NortekInstrumentProtocol.__init__(self, prompts, newline, driver_event) # create chunker for processing instrument samples. self._chunker = StringChunker(Protocol.chunker_sieve_function)
def _build_param_dict(self): """ Overwrite base classes method. Creates base class's param dictionary, then sets parameter values for those specific to this instrument. """ NortekInstrumentProtocol._build_param_dict(self) self._param_dict.add(Parameter.TRANSMIT_PULSE_LENGTH, r'^.{%s}(.{2}).*' % str(4), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Transmit Pulse Length", default_value=125, units=ParameterUnits.CENTIMETERS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.BLANKING_DISTANCE, r'^.{%s}(.{2}).*' % str(6), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Blanking Distance", default_value=49, units=ParameterUnits.CENTIMETERS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.RECEIVE_LENGTH, r'^.{%s}(.{2}).*' % str(8), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Receive Length", default_value=32, units=ParameterUnits.CENTIMETERS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.TIME_BETWEEN_PINGS, r'^.{%s}(.{2}).*' % str(10), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Time Between Pings", units=ParameterUnits.CENTIMETERS, default_value=437, startup_param=True, direct_access=True) self._param_dict.add(Parameter.TIME_BETWEEN_BURST_SEQUENCES, r'^.{%s}(.{2}).*' % str(12), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Time Between Burst Sequences", default_value=512, units=None, startup_param=True, direct_access=True) self._param_dict.add(Parameter.NUMBER_PINGS, r'^.{%s}(.{2}).*' % str(14), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number Pings", default_value=1, units=ParameterUnits.HERTZ, startup_param=True, direct_access=True) self._param_dict.add(Parameter.AVG_INTERVAL, r'^.{%s}(.{2}).*' % str(16), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Average Interval", default_value=60, units=ParameterUnits.SECONDS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.USER_NUMBER_BEAMS, r'^.{%s}(.{2}).*' % str(18), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_ONLY, display_name="User Number Beams", direct_access=True, value=3) self._param_dict.add(Parameter.TIMING_CONTROL_REGISTER, r'^.{%s}(.{2}).*' % str(20), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Timing Control Register", direct_access=True, value=130) self._param_dict.add(Parameter.POWER_CONTROL_REGISTER, r'^.{%s}(.{2}).*' % str(22), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Power Control Register", default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.A1_1_SPARE, r'^.{%s}(.{2}).*' % str(24), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="A1 1 Spare", description='Not used.') self._param_dict.add(Parameter.B0_1_SPARE, r'^.{%s}(.{2}).*' % str(26), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="B0 1 Spare", description='Not used.') self._param_dict.add(Parameter.B1_1_SPARE, r'^.{%s}(.{2}).*' % str(28), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="B1 1 Spare", description='Not used.') self._param_dict.add(Parameter.COMPASS_UPDATE_RATE, r'^.{%s}(.{2}).*' % str(30), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Compass Update Rate", default_value=1, units=ParameterUnits.HERTZ, startup_param=True, direct_access=True) self._param_dict.add(Parameter.COORDINATE_SYSTEM, r'^.{%s}(.{2}).*' % str(32), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Coordinate System", description='Coordinate System (0=ENU, 1=XYZ, 2=BEAM)', default_value=2, startup_param=True, direct_access=True) self._param_dict.add(Parameter.NUMBER_BINS, r'^.{%s}(.{2}).*' % str(34), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number Bins", default_value=1, units=ParameterUnits.METERS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.BIN_LENGTH, r'^.{%s}(.{2}).*' % str(36), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Bin Length", default_value=7, units=ParameterUnits.SECONDS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.MEASUREMENT_INTERVAL, r'^.{%s}(.{2}).*' % str(38), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.READ_WRITE, display_name="Measurement Interval", default_value=60, units=ParameterUnits.SECONDS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.DEPLOYMENT_NAME, r'^.{%s}(.{6}).*' % str(40), lambda match: NortekProtocolParameterDict.convert_bytes_to_string(match.group(1)), lambda string: string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Deployment Name", startup_param=True, direct_access=True) self._param_dict.add(Parameter.WRAP_MODE, r'^.{%s}(.{2}).*' % str(46), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Wrap Mode", description='Recorder wrap mode (0=NO WRAP, 1=WRAP WHEN FULL)', default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.CLOCK_DEPLOY, r'^.{%s}(.{6}).*' % str(48), lambda match: NortekProtocolParameterDict.convert_words_to_datetime(match.group(1)), NortekProtocolParameterDict.convert_datetime_to_words, regex_flags=re.DOTALL, type=ParameterDictType.LIST, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Clock Deploy", description='Deployment start time.', default_value=[0, 0, 0, 0, 0, 0], startup_param=True, direct_access=True) self._param_dict.add(Parameter.DIAGNOSTIC_INTERVAL, r'^.{%s}(.{4}).*' % str(54), lambda match: NortekProtocolParameterDict.convert_double_word_to_int(match.group(1)), NortekProtocolParameterDict.double_word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Diagnostic Interval", description='Number of seconds between diagnostics measurements.', default_value=11250, startup_param=True, units=ParameterUnits.SECONDS, direct_access=True) self._param_dict.add(Parameter.MODE, r'^.{%s}(.{2}).*' % str(58), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Mode", default_value=48, startup_param=True, direct_access=True) self._param_dict.add(Parameter.ADJUSTMENT_SOUND_SPEED, r'^.{%s}(.{2}).*' % str(60), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Adjustment Sound Speed", description='User input sound speed adjustment factor.', units=ParameterUnits.METERS_PER_SECOND, default_value=1525, startup_param=True, direct_access=True) self._param_dict.add(Parameter.NUMBER_SAMPLES_DIAGNOSTIC, r'^.{%s}(.{2}).*' % str(62), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number Samples Diagnostic", description='Samples in diagnostics mode.', default_value=20, startup_param=True, direct_access=True) self._param_dict.add(Parameter.NUMBER_BEAMS_CELL_DIAGNOSTIC, r'^.{%s}(.{2}).*' % str(64), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number Beams Cell Diagnostic", description='Beams/cell number to measure in diagnostics mode', default_value=1, startup_param=True, direct_access=True) self._param_dict.add(Parameter.NUMBER_PINGS_DIAGNOSTIC, r'^.{%s}(.{2}).*' % str(66), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number Pings Diagnostic", description='Pings in diagnostics/wave mode.', default_value=1, startup_param=True, direct_access=True) self._param_dict.add(Parameter.MODE_TEST, r'^.{%s}(.{2}).*' % str(68), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Mode Test", default_value=4, startup_param=True, direct_access=True) self._param_dict.add(Parameter.ANALOG_INPUT_ADDR, r'^.{%s}(.{2}).*' % str(70), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Analog Input Address", default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.SW_VERSION, r'^.{%s}(.{2}).*' % str(72), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Software Version", default_value=13902, startup_param=True, direct_access=True) self._param_dict.add(Parameter.USER_1_SPARE, r'^.{%s}(.{2}).*' % str(74), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="User 1 Spare", description='Not used.') self._param_dict.add(Parameter.VELOCITY_ADJ_TABLE, r'^.{%s}(.{180}).*' % str(76), lambda match: base64.b64encode(match.group(1)), lambda string: string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_WRITE, display_name="Velocity Adj Table", units=ParameterUnits.PARTS_PER_TRILLION, startup_param=True, direct_access=True) self._param_dict.add(Parameter.COMMENTS, r'^.{%s}(.{180}).*' % str(256), lambda match: NortekProtocolParameterDict.convert_bytes_to_string(match.group(1)), lambda string: string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Comments", startup_param=True, direct_access=True) self._param_dict.add(Parameter.WAVE_MEASUREMENT_MODE, r'^.{%s}(.{2}).*' % str(436), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Wave Measurement Mode", default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.DYN_PERCENTAGE_POSITION, r'^.{%s}(.{2}).*' % str(438), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Dyn Percentage Position", description='Percentage for wave cell positioning.', default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.WAVE_TRANSMIT_PULSE, r'^.{%s}(.{2}).*' % str(440), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Wave Transmit Pulse", default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.WAVE_BLANKING_DISTANCE, r'^.{%s}(.{2}).*' % str(442), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Fixed Wave Blanking Distance", default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.WAVE_CELL_SIZE, r'^.{%s}(.{2}).*' % str(444), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Wave Measurement Cell Size", default_value=0, units=ParameterUnits.METERS, startup_param=True, direct_access=True) self._param_dict.add(Parameter.NUMBER_DIAG_SAMPLES, r'^.{%s}(.{2}).*' % str(446), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number Diag Samples", description='Number of diagnostics/wave samples.', default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.A1_2_SPARE, r'^.{%s}(.{2}).*' % str(448), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="A1 2 Spare", description='Not used.') self._param_dict.add(Parameter.B0_2_SPARE, r'^.{%s}(.{2}).*' % str(450), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="B0 2 Spare", description='Not used.') self._param_dict.add(Parameter.NUMBER_SAMPLES_PER_BURST, r'^.{%s}(.{2}).*' % str(452), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, expiration=None, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Number of Samples per Burst", default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.USER_2_SPARE, r'^.{%s}(.{2}).*' % str(454), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="User 2 Spare", description='Not used.') self._param_dict.add(Parameter.ANALOG_OUTPUT_SCALE, r'^.{%s}(.{2}).*' % str(456), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Analog Output Scale Factor", default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.CORRELATION_THRESHOLD, r'^.{%s}(.{2}).*' % str(458), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Correlation Threshold", description='Correlation threshold for resolving ambiguities.', default_value=0, startup_param=True, direct_access=True) self._param_dict.add(Parameter.USER_3_SPARE, r'^.{%s}(.{2}).*' % str(460), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="User 3 Spare", description='Not used.') self._param_dict.add(Parameter.TRANSMIT_PULSE_LENGTH_SECOND_LAG, r'^.{%s}(.{2}).*' % str(462), lambda match: NortekProtocolParameterDict.convert_word_to_int(match.group(1)), NortekProtocolParameterDict.word_to_string, regex_flags=re.DOTALL, type=ParameterDictType.INT, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Transmit Pulse Length Second Lag", default_value=2, startup_param=True, direct_access=True) self._param_dict.add(Parameter.USER_4_SPARE, r'^.{%s}(.{30}).*' % str(464), lambda match: match.group(1).encode('hex'), lambda string: string.decode('hex'), regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.READ_ONLY, display_name="User 4 Spare", description='Not used.') self._param_dict.add(Parameter.QUAL_CONSTANTS, r'^.{%s}(.{16}).*' % str(494), lambda match: base64.b64encode(match.group(1)), lambda string: string, regex_flags=re.DOTALL, type=ParameterDictType.STRING, visibility=ParameterDictVisibility.IMMUTABLE, display_name="Qual Constants", description='Stage match filter constants.', startup_param=True, direct_access=True)