01234567890123456789012345678901234567890123456789012345678901234567890123456789
98598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043 11781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218 | <----SKIPPED LINES----> """Converts a number of seconds to a three-character time representation (i.e.: 23M). Converts seconds to a three character representation containing at most two digits, potentially with a decimal point, and one character indicating time unit (S, M, H, or D). Args: s: Number of seconds. Returns: 2-tuple of string as described and string map indicating decimal position """ m = s / messageboard.SECONDS_IN_MINUTE h = s / messageboard.SECONDS_IN_HOUR d = s / messageboard.SECONDS_IN_DAY no_decimals = '000' decimal_after_first_character = '100' partial_decimal_mask = no_decimals if s < 10: numeric_string = '%sS' % FloatToAlphanumericStr(s, 1, 3, sign=False) partial_decimal_mask = decimal_after_first_character elif s < messageboard.SECONDS_IN_MINUTE: numeric_string = '%2dS' % round(s) elif m < 10: numeric_string = '%sM' % FloatToAlphanumericStr(m, 1, 3, sign=False) partial_decimal_mask = decimal_after_first_character elif m < messageboard.MINUTES_IN_HOUR: numeric_string = '%2dM' % round(m) elif h < 10: numeric_string = '%sH' % FloatToAlphanumericStr(h, 1, 3, sign=False) partial_decimal_mask = decimal_after_first_character elif h < messageboard.HOURS_IN_DAY: numeric_string = '%2dH' % round(h) elif d < 10: numeric_string = '%sD' % FloatToAlphanumericStr(d, 1, 3, sign=False) partial_decimal_mask = decimal_after_first_character else: numeric_string = '%2dD' % round(d) return numeric_string, partial_decimal_mask def SimulateCommand(potential_commands, counter, fraction_command=0.01, randomized=False): """Simulates the remote generating a command for remote-free testing. A command from the list of potential_commands is generated periodically, roughly fraction_command percent of the time. - not randomized: a command is returned every time (counter / fraction_command) rolls over to a new integer. The command returned is the next one in the list of potential commands. For instance, if fraction_command = 0.01, when counter=100, the first command in potential_commands is returned; when counter=200, the second command is returned, and so on. At the end of the list, we rotate back to the first command. - randomized: fraction_command percent of the time, a randomly selected command is sent. <----SKIPPED LINES----> ('setting_delay', 'H'), # 2 bytes ('line1', '9s'), # 9 bytes; 8 character plus terminator ('line2', '9s'), # 9 bytes; 8 character plus terminator ('line1_dec_mask', 'H'), # 2 bytes ('line2_dec_mask', 'H'), # 2 bytes ) #pylint: enable = bad-whitespace read_keys, unused_read_format_tuple, read_format_string = SplitFormat(read_config) write_keys, write_format_tuple, write_format_string = SplitFormat(write_config) values_d = {} low_batt = False to_parent_q.put(('pin', (messageboard.GPIO_ERROR_BATTERY_CHARGE, low_batt))) link = Serial( *REMOTE_CONNECTION, read_timeout=7, error_pin=messageboard.GPIO_ERROR_ARDUINO_REMOTE_CONNECTION, to_parent_q=to_parent_q, read_format=read_format_string, write_format=write_format_string, name='Remote') link.Open() display_mode = 2 #TODO: remove after switch integration flight, json_desc_dict, configuration, additional_attr = InitialMessageValues( to_arduino_q) next_read = 0 next_write = 0 while not shutdown.value: if not to_arduino_q.empty(): to_arduino_message = to_arduino_q.get(block=False) flight, json_desc_dict, configuration, additional_attr = to_arduino_message if 'test_remote' in configuration: messageboard.RemoveSetting(configuration, 'test_remote') def TestDisplayMode(m): SendRemoteMessage( flight, json_desc_dict, configuration, additional_attr, m, write_keys, write_format_tuple, link) time.sleep(1) <----SKIPPED LINES----> |
01234567890123456789012345678901234567890123456789012345678901234567890123456789
98598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043 11781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218 | <----SKIPPED LINES----> """Converts a number of seconds to a three-character time representation (i.e.: 23M). Converts seconds to a three character representation containing at most two digits, potentially with a decimal point, and one character indicating time unit (S, M, H, or D). Args: s: Number of seconds. Returns: 2-tuple of string as described and string map indicating decimal position """ m = s / messageboard.SECONDS_IN_MINUTE h = s / messageboard.SECONDS_IN_HOUR d = s / messageboard.SECONDS_IN_DAY no_decimals = '000' decimal_after_first_character = '100' partial_decimal_mask = no_decimals if round(s, 1) < 10: numeric_string = '%sS' % FloatToAlphanumericStr(s, 1, 3, sign=False) partial_decimal_mask = decimal_after_first_character elif s < messageboard.SECONDS_IN_MINUTE: numeric_string = '%2dS' % round(s) elif round(m, 1) < 10: numeric_string = '%sM' % FloatToAlphanumericStr(m, 1, 3, sign=False) partial_decimal_mask = decimal_after_first_character elif m < messageboard.MINUTES_IN_HOUR: numeric_string = '%2dM' % round(m) elif round(h, 1) < 10: numeric_string = '%sH' % FloatToAlphanumericStr(h, 1, 3, sign=False) partial_decimal_mask = decimal_after_first_character elif h < messageboard.HOURS_IN_DAY: numeric_string = '%2dH' % round(h) elif round(d, 1) < 10: numeric_string = '%sD' % FloatToAlphanumericStr(d, 1, 3, sign=False) partial_decimal_mask = decimal_after_first_character else: numeric_string = '%2dD' % round(d) return numeric_string, partial_decimal_mask def SimulateCommand(potential_commands, counter, fraction_command=0.01, randomized=False): """Simulates the remote generating a command for remote-free testing. A command from the list of potential_commands is generated periodically, roughly fraction_command percent of the time. - not randomized: a command is returned every time (counter / fraction_command) rolls over to a new integer. The command returned is the next one in the list of potential commands. For instance, if fraction_command = 0.01, when counter=100, the first command in potential_commands is returned; when counter=200, the second command is returned, and so on. At the end of the list, we rotate back to the first command. - randomized: fraction_command percent of the time, a randomly selected command is sent. <----SKIPPED LINES----> ('setting_delay', 'H'), # 2 bytes ('line1', '9s'), # 9 bytes; 8 character plus terminator ('line2', '9s'), # 9 bytes; 8 character plus terminator ('line1_dec_mask', 'H'), # 2 bytes ('line2_dec_mask', 'H'), # 2 bytes ) #pylint: enable = bad-whitespace read_keys, unused_read_format_tuple, read_format_string = SplitFormat(read_config) write_keys, write_format_tuple, write_format_string = SplitFormat(write_config) values_d = {} low_batt = False to_parent_q.put(('pin', (messageboard.GPIO_ERROR_BATTERY_CHARGE, low_batt))) link = Serial( *REMOTE_CONNECTION, read_timeout=7, error_pin=messageboard.GPIO_ERROR_ARDUINO_REMOTE_CONNECTION, to_parent_q=to_parent_q, read_format=read_format_string, write_format=write_format_string, name='Remote') link.Open() display_mode = DISP_LAST_FLIGHT_NUMB_ORIG_DEST # initial state flight, json_desc_dict, configuration, additional_attr = InitialMessageValues( to_arduino_q) next_read = 0 next_write = 0 while not shutdown.value: if not to_arduino_q.empty(): to_arduino_message = to_arduino_q.get(block=False) flight, json_desc_dict, configuration, additional_attr = to_arduino_message if 'test_remote' in configuration: messageboard.RemoveSetting(configuration, 'test_remote') def TestDisplayMode(m): SendRemoteMessage( flight, json_desc_dict, configuration, additional_attr, m, write_keys, write_format_tuple, link) time.sleep(1) <----SKIPPED LINES----> |