コード例 #1
0
 def printStats(self):    
     LogPrinter ( "Mean time between calls: ", "{:.2f}".format( self.intervalMean/1000 ), 
         " ms. (Should be ~0.2 ms)" )
     LogPrinter ( "Standard deviation of time between calls in percent: ", 
         "{:.2f}".format( 100* sqrt( (self.intervalMeanSq/self.callCount - 
         self.intervalMean*self.intervalMean / (self.callCount * self.callCount ) ) ) / self.intervalMean ),
         " %. (Should be ~1%)" )
コード例 #2
0
ファイル: myMain.py プロジェクト: ArmyAntSEC/RHex
    def commandParser(self, command: str):
        """Parses a single input command. Should return immediately"""
        commandTokens = str.split(command)
        #LogPrinter ( commandTokens )

        if (commandTokens[0] in self.commands):
            arguments = [float(i) for i in commandTokens[1:]]
            #LogPrinter( arguments )
            self.commands[commandTokens[0]](arguments)
        else:
            LogPrinter("Unknown command: ", command)
            LogPrinter("Supported commands:")
            for key in self.commands.keys():
                LogPrinter("- ", key)
コード例 #3
0
ファイル: myMain.py プロジェクト: ArmyAntSEC/RHex
    def run(self):
        LogPrinter("Running loop")
        reader = NonBlockingRead(self.commandParser)

        while True:
            reader()
            self.taskScheduler.run()
コード例 #4
0
ファイル: myMain.py プロジェクト: ArmyAntSEC/RHex
    def cmdMoveAtConstantSpeed(self, args):
        LogPrinter("Moving at constant speed")
        speed = 2000
        Kp = 0.0003
        Ki = 0
        if (len(args) >= 3):
            speed = args[0]
            Kp = args[1]
            Ki = args[2]

        self.homingEncoder1.forceHomed()  # Force homing.
        self.controller1.setParams(Kp, Ki)
        self.controller1.setPoint(speed)
        self.controller1.enable()

        LogPrinter("Speed setpoint: ", speed)

        def stopFun():
            self.controller1.disable()
            self.driver1.setMotorPWM(0)
            LogPrinter("Done miving at constant speed")

        self.taskScheduler.addTask(
            IFutureTask(int(1e6), stopFun, self.taskScheduler))
コード例 #5
0
ファイル: myMain.py プロジェクト: ArmyAntSEC/RHex
    def cmdSimpleMove(self, args):
        LogPrinter("Doing a simple move")
        self.homingEncoder1.forceHomed()  # Force homing.
        self.homingEncoder1.verbose = True
        power = 0.25
        if (len(args) > 0):
            power = args[0]
        self.driver1.setMotorPWM(power)

        def stopFun():
            self.driver1.setMotorPWM(0)
            LogPrinter("Done with simple move")
            LogPrinter("Speed: ", self.homingEncoder1.speed_cps)
            self.homingEncoder1.verbose = False

        self.taskScheduler.addTask(
            IFutureTask(int(5e6), stopFun, self.taskScheduler))
コード例 #6
0
 def run( self ):
     LogPrinter ( "IRecurringTask needs to be inherited and the run() shall be overridden." )
         
コード例 #7
0
ファイル: myMain.py プロジェクト: ArmyAntSEC/RHex
 def cmdInfo(self, args):
     LogPrinter("This is the info")
コード例 #8
0
ファイル: myMain.py プロジェクト: ArmyAntSEC/RHex
 def run(self):
     LogPrinter("Beacon!")
コード例 #9
0
ファイル: myMain.py プロジェクト: ArmyAntSEC/RHex
 def stopFun():
     self.controller1.disable()
     self.driver1.setMotorPWM(0)
     LogPrinter("Done miving at constant speed")
コード例 #10
0
ファイル: myMain.py プロジェクト: ArmyAntSEC/RHex
 def stopFun():
     self.driver1.setMotorPWM(0)
     LogPrinter("Done with simple move")
     LogPrinter("Speed: ", self.homingEncoder1.speed_cps)
     self.homingEncoder1.verbose = False