コード例 #1
0
class PulseGeneratorStepperMotor(LoggedStepperMotor):
    def __init__(self,
                 step_channel,
                 counter_channel,
                 direction_channel,
                 log_file=None,
                 enable_channel=None,
                 step_rate=500.0,
                 backlash=0,
                 tasks=None):
        self.step_task = COTask()
        self.step_task.createChannel(step_channel)
        self.setStepRate(step_rate)
        LoggedStepperMotor.__init__(
            self,
            counter_channel,
            direction_channel,
            log_file,
            enable_channel=enable_channel,
            backlash=0,
            tasks=((tasks if tasks is not None else []) + [self.step_task]))

    def _generateSteps(self, steps, callback):
        self.step_task.generatePulses(steps, callback)

    # set pulse rate in Hz
    def setStepRate(self, rate):
        self.step_task.configureTiming(0.5 / rate, 0.5 / rate)

    def getStepRate(self):
        highTime, lowTime = self.step_task.getTimingConfiguration()
        period = highTime + lowTime
        rate = 1.0 / period
        return rate
コード例 #2
0
class PulseGeneratorStepperMotor(LoggedStepperMotor):
    def __init__(
            self,
            step_channel,
            counter_channel,
            direction_channel,
            log_file=None,
            enable_channel=None,
            step_rate=500.0,
            backlash=0,
            tasks=None
    ):
        self.step_task = COTask()
        self.step_task.createChannel(step_channel)
        self.setStepRate(step_rate)
        LoggedStepperMotor.__init__(
            self,
            counter_channel,
            direction_channel,
            log_file,
            enable_channel=enable_channel,
            backlash=0,
            tasks=((tasks if tasks is not None else []) + [self.step_task])
        )


    def _generateSteps(self,steps,callback):
        self.step_task.generatePulses(steps,callback)

    # set pulse rate in Hz
    def setStepRate(self,rate):
        self.step_task.configureTiming(0.5 / rate,0.5 / rate)

    def getStepRate(self):
        highTime, lowTime = self.step_task.getTimingConfiguration()
        period = highTime + lowTime
        rate = 1.0 / period
        return rate