Beispiel #1
0
    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, ))
Beispiel #2
0
    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()
Beispiel #3
0
 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
Beispiel #4
0
 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