-
Notifications
You must be signed in to change notification settings - Fork 0
/
variables.py
75 lines (64 loc) · 2.26 KB
/
variables.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
'''This module contains any variables required for the program to run'''
# My modules
import handle_config
CAMERA_VARIABLES = [
'CAP_PROP_POS_MSEC',
'CAP_PROP_POS_FRAMES',
'CAP_PROP_POS_AVI_RATIO',
'CAP_PROP_FRAME_WIDTH',
'CAP_PROP_FRAME_HEIGHT',
'CAP_PROP_FPS',
'CAP_PROP_FOURCC',
'CAP_PROP_FRAME_COUNT',
'CAP_PROP_FORMAT',
'CAP_PROP_MODE',
'CAP_PROP_BRIGHTNESS',
'CAP_PROP_CONTRAST',
'CAP_PROP_SATURATION',
'CAP_PROP_HUE',
'CAP_PROP_GAIN',
'CAP_PROP_EXPOSURE',
'CAP_PROP_CONVERT_RGB',
'CAP_PROP_WHITE_BALANCE',
'CAP_PROP_RECTIFICATION',
]
IO_RUNNING = 256 # Output 8 set high
IO_LANE1_REQUEST = 768 # Outputs 8 and 9 set high
IO_LANE2_REQUEST = 1280 # Outputs 8 and 10 set high
IO_LANE3_REQUEST = 2304 # Outputs 8 and 11 set high
IO_LANE4_REQUEST = 4352 # Outputs 8 and 12 set high
IO_REQUEST = [IO_LANE1_REQUEST, IO_LANE2_REQUEST, IO_LANE3_REQUEST, IO_LANE4_REQUEST]
IO_LANE1_ACK = 1 # Input 0 set high
IO_LANE2_ACK = 2 # Input 1 set high
IO_LANE3_ACK = 4 # Input 2 set high
IO_LANE4_ACK = 8 # Input 3 set high
IO_ACK = [IO_LANE1_ACK, IO_LANE2_ACK, IO_LANE3_ACK, IO_LANE4_ACK]
# Changes IO array to value
def CALCULATE_IO_VALUE(VALUES):
returnVal = VALUES[:]
# reverse array
returnVal.reverse()
# turn array into string
returnVal = ''.join(map(str, returnVal))
# return binary string converted to decimal
return int(returnVal, 2)
# Changes value IO array
def CALCULATE_FROM_IO_VALUE(VALUE):
VALUE = '{0:#b}'.format(VALUE)
# reverse binary
VALUE[::-1]
# return binary string converted to decimal
print(VALUE)
def is_pass(lane, width, height):
if width < handle_config.LANE_FAIL_WIDTHS_LOW[lane] or \
width > handle_config.LANE_FAIL_WIDTHS_HIGH[lane] or \
height < handle_config.LANE_FAIL_HEIGHTS_LOW[lane] or \
height > handle_config.LANE_FAIL_HEIGHTS_HIGH[lane]:
return False
else:
return True
def dimension_calc(lane, width, height):
'''This function takes the pixel width and using the defined ratios converts to mm'''
converted_width = int(width * handle_config.WIDTH_RATIOS[lane])
converted_height = int(height * handle_config.HEIGHT_RATIOS[lane])
return '{0}mm x {1}mm'.format(converted_width, converted_height)