Example #1
0
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']:
    device.log('Weed type invalid. Must be WEED, SAFE-REMOVE or BOTH', 'error')
    sys.exit()

weeder_tool_retrieve_sequence_id = Qualify.sequence(PKG, 'tool_weed_retrieve')
weeder_tool_return_sequence_id = Qualify.sequence(PKG, 'tool_weed_return')

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

device.write_pin(PIN_LIGHTS, 1, 0)

points = app.get_points()
if len(points):
    device.log('Deleting existing points...')
    del_all_points()
Example #2
0
 ' 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:
    plant_name = ''.join(plant['name'].split()).lower()
    if plant_name in PLANT_TYPES:
Example #3
0
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')
water_sequence_id = Qualify.sequence(PKG, 'water_sequence')

moisture_readings = []

if len(input_errors):
    for err in input_errors:
        device.log(err, 'warn')
    device.log('Fatal config errors occured, farmware exiting.', 'warn')
    sys.exit()
else:
    device.log('No config errors were detected.', 'success')