in services/read-gauge.py [0:0]
def handler(event, context):
try:
print("event:",event)
image_key = event["s3ObjectKey"]
bucket_name = event["s3BucketName"]
image_url = event["s3ObjectUrl"]
min_angle = event["min_angle"]
max_angle = event["max_angle"]
min_value = event["min_value"]
max_value = event["max_value"]
units = event["units"]
img_path = './'
file_type = 'jpg'
timeStamp = int(time.time())
img = get_image(image_url,bucket_name,image_key)
x, y, r = calibrate_gauge(img,img_path, image_key,file_type)
if( x == 0 or y == 0 or r == 0 ):
return {
'gaugeReading' : 0,
'timeStamp' : timeStamp,
'errorCode': 500,
'errorMessage': 'Bad image quality, try to take a clearer picture and ensure you have proper lightin'
}
val = get_current_value(img, min_angle, max_angle, min_value, max_value, x, y, r, img_path, image_key, file_type)
print ("Current reading: %s %s" %(val, units))
return{
'gaugeReading' : val,
'timeStamp' : timeStamp,
'errorCode': 200,
'errorMessage': ''
}
except Exception as e:
logger.error('Error: {}'.format(e))
return {
'gaugeReading' : 0,
'timeStamp' : timeStamp,
'errorCode': 500,
'errorMessage': e
}