def _build_config(self): # Build config commands for oid in self._oids: oid.build_config() self._add_custom() self._config_cmds.insert( 0, "allocate_oids count=%d" % (len(self._oids), )) # Resolve pin names mcu = self.serial.msgparser.get_constant('MCU') pnames = pins.get_pin_map(mcu, self._pin_map) updated_cmds = [] for cmd in self._config_cmds: try: updated_cmds.append( pins.update_command(cmd, self._mcu_freq, pnames)) except: raise self._config_error("Unable to translate pin name: %s" % (cmd, )) self._config_cmds = updated_cmds # Calculate config CRC self._config_crc = zlib.crc32('\n'.join( self._config_cmds)) & 0xffffffff self.add_config_cmd("finalize_config crc=%d" % (self._config_crc, ))
def build_config(self): # Build config commands self._add_custom() self._config_cmds.insert(0, "allocate_oids count=%d" % ( self._num_oids,)) # Resolve pin names mcu = self.serial.msgparser.get_constant('MCU') pin_map = self._config.get('pin_map', None) if pin_map is None: pnames = pins.mcu_to_pins(mcu) else: pnames = pins.map_pins(pin_map, mcu) updated_cmds = [] for cmd in self._config_cmds: try: updated_cmds.append(pins.update_command(cmd, pnames)) except: raise self._config.error("Unable to translate pin name: %s" % ( cmd,)) self._config_cmds = updated_cmds # Calculate config CRC self._config_crc = zlib.crc32('\n'.join(self._config_cmds)) & 0xffffffff self.add_config_cmd("finalize_config crc=%d" % (self._config_crc,)) self._send_config()
def translate(self, line, eventtime): evalparts = re_eval.split(line) if len(evalparts) > 1: self.update_evals(eventtime) try: for i in range(1, len(evalparts), 2): evalparts[i] = str(eval(evalparts[i], self.eval_globals)) except: print "Unable to evaluate: ", line return None line = ''.join(evalparts) print "Eval:", line if self.pins is None and self.ser.msgparser.config: self.pins = pins.mcu_to_pins(self.ser.msgparser.config['MCU']) if self.pins is not None: try: line = pins.update_command(line, self.pins).strip() except: print "Unable to map pin: ", line return None if line: parts = line.split() if parts[0] in self.local_commands: self.local_commands[parts[0]](parts) return None try: msg = self.ser.msgparser.create_command(line) except msgproto.error, e: print "Error:", e return None
def translate(self, line, eventtime): evalparts = re_eval.split(line) if len(evalparts) > 1: self.update_evals(eventtime) try: for i in range(1, len(evalparts), 2): e = eval(evalparts[i], dict(self.eval_globals)) if type(e) == type(0.): e = int(e) evalparts[i] = str(e) except: self.output("Unable to evaluate: %s" % (line, )) return None line = ''.join(evalparts) self.output("Eval: %s" % (line, )) if self.pins is not None: try: line = pins.update_command(line, self.pins).strip() except: self.output("Unable to map pin: %s" % (line, )) return None if line: parts = line.split() if parts[0] in self.local_commands: self.local_commands[parts[0]](parts) return None try: msg = self.ser.msgparser.create_command(line) except msgproto.error as e: self.output("Error: %s" % (str(e), )) return None return msg