def get_upper_limit_switch(self):
     self._send_command(self.GET_ACTUAL_STATUS)
     ans = self._read_answer()
     try:
         status = bool(int(ans[0]))
     except IndexError:
         return Result(success=False)
     except ValueError:
         return Result(success=False)
     return Result(success=True, value=status)
 def is_enabled(self):
     self._send_command(self.GET_STATUS)
     ans = self._read_answer()
     try:
         status = bool(int(ans[3]))
     except IndexError:
         return Result(success=False)
     except ValueError:
         return Result(success=False)
     return Result(success=True, value=status)
Example #3
0
 def get_operating_status(self):
     success, ans = self._get_int(GET_OPERATING_STATUS)
     if not success:
         return Result(success=False)
     ret = {}
     ret["homing_running"] = bool((1 << 0) & ans)
     ret["program_running"] = bool((1 << 1) & ans)
     ret["program_stopped_delay"] = bool((1 << 2) & ans)
     ret["program_stopped_notify"] = bool((1 << 3) & ans)
     ret["current_limit_active"] = bool((1 << 4) & ans)
     ret["devication_error"] = bool((1 << 5) & ans)
     ret["overvoltage"] = bool((1 << 6) & ans)
     ret["overtemperature"] = bool((1 << 7) & ans)
     ret["status_input_1"] = bool((1 << 8) & ans)
     ret["status_input_2"] = bool((1 << 9) & ans)
     ret["status_input_3"] = bool((1 << 10) & ans)
     ret["position_attained"] = bool((1 << 16) & ans)
     ret["continuous_current_limit"] = bool((1 << 17) & ans)
     return Result(success=True, value=ret)
Example #4
0
 def get_config_status(self):
     success, ans = self._get_int(GET_CONFIG_STATUS)
     if not success:
         return Result(success=False)
     ret = {}
     ret["automatic_response"] = ((ans >> CST_AUTOMATIC_RESPONSE_BITSHIFT)
                                  & CST_AUTOMATIC_REPONSE_BITMASK)
     ret["velocity_presetting"] = ((ans >> CST_VELOCITY_PRESETTING_BITSHIFT)
                                   & CST_VELOCITY_PRESETTING_BITMASK)
     ret["mode"] = ((ans >> CST_MODE_BITSHIFT) & CST_MODE_BITMASK)
     ret["power_amplifier"] = ((ans >> CST_POWER_AMPLIFIER_BITSHIFT)
                               & CST_POWER_AMPLIFIER_BITMASK)
     ret["position_controller"] = ((ans >> CST_POSITION_CONTROLLER_BITSHIFT)
                                   & CST_POSITION_CONTROLLER_BITMASK)
     ret["analogue_direction"] = ((ans >> CST_ANALOGUE_DIRECTION_BITSHIFT)
                                  & CST_ANALOGUE_DIRECTION_BITMASK)
     ret["position_limits"] = ((ans >> CST_POSITION_LIMITS_BITSHIFT)
                               & CST_POSITION_LIMITS_BITMASK)
     ret["sin_commutation"] = ((ans >> CST_SIN_COMMUTATION_BITSHIFT)
                               & CST_SIN_COMMUTATION_BITMASK)
     return Result(success=True, value=ret)
Example #5
0
 def is_homing(self):
     success, ans = self.get_int(GET_OPERATING_STATUS)
     if not success:
         return Result(success=False)
     return Result(success=True, value=bool((1 << 0) & ans))
Example #6
0
 def is_enabled(self):
     result = self._get_int(self.CONTROL_STATUS)
     if not result.success:
         return Result(success=False)
     status = bool((1 << 10) & result.value)
     return Result(success=True, value=status)
Example #7
0
 def get_upper_limit_switch(self):
     result = self.get_operating_status()
     if not result.success:
         return Result(success=False)
     status = result.value["status_input_2"]
     return Result(success=True, value=status)