Example #1
0
 def _qualifyDriver(self, driver):
     """ 
     return tuple of qualifying speed and trouble message if any
     """ 
     speedRatingTotal = 0
     troubleQualifying = False
     
     for i in range(self.track.qualifyLaps):
         roll = rollDice()
         
         speedRating = self.driverQualifyMap[driver.number][roll]
         if( speedRating == Qualify.TROUBLE):
             troubleQualifying = True
             break
         
         speedRatingTotal += speedRating
         # TODO:
         # Output the results per lap
     
     if troubleQualifying:
         roll = rollDice(sides=10)
         trouble = Qualify.getQualifyTroubleDetail(roll)
         
         return 0.0, trouble
     else:                    
         roll = rollDice()
         speed = Qualify.getAverageSpeed( roll, speedRatingTotal, self.track.type )
         return speed, None        
Example #2
0
 def _initDrivers(self, drivers):
     self.drivers = drivers
     
     for d in drivers:
         trackRating = d.getTrackRating( self.track.type )
         #Load the qualifying speeds
         self.driverQualifyMap[d.number] = Qualify.getQualifySpeedChart(trackRating)
         #Load the speed ratings for this race
         self.__initializeSpeedChart(d)            
Example #3
0
#!/usr/bin/env python

'''
 ' A farmware for a custom tool for Farmbot
'''

import os, sys, json, Qualify
from random import randint
from farmware_tools import device, app, get_config_value
from Coordinate import Coordinate

PIN_LIGHTS = 7
PKG = 'Test Bed'

input_errors = []
integer = Qualify.integer(PKG, 'integer')

tools = app.get_toolslots()
device.log(json.dumps(tools))

tool = Qualify.get_tool(4469)
device.log(json.dumps(tool))

plants = app.get_plants()
device.log(json.dumps(plants))

device.write_pin(PIN_LIGHTS, 0, 0)
Example #4
0
#!/usr/bin/env python
'''
 ' A plant watering Farmware
'''

import os, sys, json, Qualify
from random import randint
from farmware_tools import device, app, get_config_value
from Coordinate import Coordinate

PIN_LIGHTS = 7
PKG = 'Water Plants'

PLANT_TYPES = Qualify.get_csv(PKG, 'plant_types')
TRANSLATE_HMEIGHT = Qualify.integer(PKG, 'translate_height')
WATER_HEIGHT = Qualify.integer(PKG, 'water_height')

tool_water_retrieve_sequence_id = Qualify.sequence(PKG, 'tool_water_retrieve')
tool_water_return_sequence_id = Qualify.sequence(PKG, 'tool_water_return')

if len(Qualify.errors):
    for err in Qualify.errors:
        device.log(err, 'error', ['toast'])
    sys.exit()
else:
    device.log('No config errors detected')

device.log('PLANT TYPES: {}'.format(json.dumps(PLANT_TYPES)))
all_plants = app.get_plants()
target_plants = []
for plant in all_plants:
Example #5
0
    types = ['weed', 'safe-remove weed'
             ] if WEED_TYPE == 'both' else [WEED_TYPE]
    device.log('Weed Type(s): {}'.format(json.dumps(types)))
    wp = []
    for point in points:
        if point['name'].lower() in types:
            wp.append(point)
    return wp


PIN_LIGHTS = 7
PIN_WATER = 8
PIN_ZAPPER = 10
PKG = 'Weed Zapper'

X_START = Qualify.integer(PKG, 'x_start')
Y_START = Qualify.integer(PKG, 'y_start')
X_MAX = Qualify.integer(PKG, 'x_max')
Y_MAX = Qualify.integer(PKG, 'y_max')
ZAP_HEIGHT = Qualify.integer(PKG, 'zap_height')
ZAP_SPEED = Qualify.integer(PKG, 'zap_speed')
ZAP_TIMEOUT = Qualify.integer(PKG, 'zap_timeout')
Z_TRANSLATE = Qualify.integer(PKG, 'z_translate')
X_MOVE = Qualify.integer(PKG, 'x_move')
Y_MOVE = Qualify.integer(PKG, 'y_move')
AREA_SIZE = Qualify.integer(PKG, 'area_size')
LASER_OFFSET_X = Qualify.integer(PKG, 'offset_x')
LASER_OFFSET_Y = Qualify.integer(PKG, 'offset_y')

WEED_TYPE = get_config_value(PKG, 'weed_type', str).lower()
if WEED_TYPE not in ['weed', 'safe-remove', 'both']:
Example #6
0
        device.execute(water_tool_retrieve_sequence_id)
        device.execute(water_sequence_id)
        device.execute(water_tool_return_sequence_id)


Debug.debug_flag = True
PIN_LIGHTS = 7
PIN_SENSOR = 59
PIN_WATER = 8
PKG = 'Water Routine'

device.log('INIT: {}'.format(PKG))
Debug.log('BEGIN FARMWARE: {}'.format(PKG))

input_errors = []
PLANT_TYPES = Qualify.get_csv(PKG, 'plant_types')
Debug.log('PLANT TYPES: {}'.format(PLANT_TYPES))
SENSOR_Z_DEPTH = Qualify.integer(PKG, 'sensor_z_depth')
Z_TRANSLATE = Qualify.integer(PKG, 'z_translate')
OFFSET_X = Qualify.integer(PKG, 'offset_x')
OFFSET_Y = Qualify.integer(PKG, 'offset_y')
THRESHOLD = Qualify.integer(PKG, 'threshold')
NUM_SITES = Qualify.integer(PKG, 'num_sites')
NUM_SAMPLES = Qualify.integer(PKG, 'num_samples')

moisture_tool_retrieve_sequence_id = Qualify.sequence(
    PKG, 'tool_moisture_retrieve')
moisture_tool_return_sequence_id = Qualify.sequence(PKG,
                                                    'tool_moisture_return')
water_tool_retrieve_sequence_id = Qualify.sequence(PKG, 'tool_water_retrieve')
water_tool_return_sequence_id = Qualify.sequence(PKG, 'tool_water_return')