У меня есть код, который я использую для доступа к некоторым камерам, измеряющим высоту фигур. У меня есть сценарий, который почти работает, он выполняет все, что я хочу до тех пор, пока я не измерил все и не хочу вырваться из циклов измерения и изменения высоты на go обратно на изменение частоты l oop - тогда я хочу измените частоту и продолжите измерение.
Этот код теперь настолько уродлив, что я не знаю, с чего начать с точки зрения его упрощения.
Токовый выход: код, проходящий измерения l oop (для m в n_list :), но когда он заканчивается, он продолжает возвращаться в то время, как l oop для измерения высоты (в то время как высота <= 2500 :) </p>
Желаемый результат: я хочу выйти из цикла измерения и изменения высоты на go обратно к изменению частоты l oop - тогда я хочу изменить частоту и продолжить измерения снова.
n = 9
for testFrequency in frequency_list:
print('FOR LOOP : testFrequency in frequency_list')
freq_setter(testFrequency, frequency_tolerance)
time.sleep(2)#DEBUG TO VISUALLY CHECK THAT THE FREQUENCY IS CHANGING
for i in list([1]):
print('FOR LOOP : for i in list([1])')
#for i in list(range(1,2)):
height = 100
n_list = list(range(n))
while height <= 2500:
print(' WHILE LOOP : while height <= 2500')
for m in n_list: # n is set to 9
print('FOR LOOP : for m in n_list:','m is :',m)
shape_measured = False
while shape_measured is False:
print('WHILE LOOP : shape_measured is False:')
#print('++DEBUG++ m:', m, 'of n_list, i.e. shape :',m+1, '\n')
if blob is not None and roi.Top < blob.Y and blob.Y < roi.Top+roi.Height/2:
#print('===== shape is in upper part of ROI =====', '\n')
heights_in_upper_roi.append(Height)
shape_positions_upper_roi.append(blob.Y)
if blob != None:
shape_heights_full_roi.append(height)
shape_positions_full_roi.append(blob.Y)
height +=1
if blob is None and len(heights_in_upper_roi)>=2:
print('************************ wooh', '\n'*3)
height_saved = height
jump_height = heights_in_upper_roi[-2]
measure_shapes(jump_height)
total_of_measured_shapes.append(m)
current_measured_shape = total_of_measured_shapes[-1]
if current_measured_shape == n_list[-1]:
print('/////////// LAST shape X X X X X X X X X X X X X X X LAST shape')
#print('\n', '+++DEBUG+++ current_measured_shape :', current_measured_shape,'\n')
#print('\n', '+++DEBUG+++ while.height LOOP total_of_measured_shapes : ', total_of_measured_shapes, '\n')
height = height_saved + 5 # move the shape back below the ROI so that we start looking for the next shape
#total_of_measured_shapes = []
print('\n'*2,'total_of_measured_shapes', total_of_measured_shapes,'\n'*2)
heights_in_upper_roi = [] ; shape_positions_upper_roi = [] ; shape_heights_full_roi = [] ;shape_positions_full_roi = [] ; shape_positions_full_roi = []
shape_measured = True
print('status of shape_measured :',shape_measured)
#break
continue
else:
height += 5
#break
shapeWatch.Stop()
Кто-нибудь знает, как я добираюсь до вернуться к точке, где я могу перейти к следующей частоте в списке частот?