Слайд 2Расположение надписей
label0 = M5TextBox(10, 29, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label1 = M5TextBox(10,
![Расположение надписей label0 = M5TextBox(10, 29, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0) label1 =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-1.jpg)
63, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(10, 100, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(10, 147, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label4 = M5TextBox(10, 190, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
setScreenColor(0x222222)
Слайд 3Расстояние между аэропортом и самолетом
def calculate_distance(point1, point2):
return ( )
![Расстояние между аэропортом и самолетом def calculate_distance(point1, point2): return ( )](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-2.jpg)
Слайд 4Расстояние между аэропортом и самолетом
def calculate_distance(point1, point2):
return ((point1[0] - point2[0])**2 +
(point1[1]
![Расстояние между аэропортом и самолетом def calculate_distance(point1, point2): return ((point1[0] - point2[0])**2 + (point1[1] - point2[1])**2)**0.5)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-3.jpg)
- point2[1])**2)**0.5)
Слайд 5Функция публикации сообщения самолету
def notify_plane(plane_number):
message = "{} {} {} {}".format(plane_number, airport_index,
airports[airport_index][0],
![Функция публикации сообщения самолету def notify_plane(plane_number): message = "{} {} {} {}".format(plane_number,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-4.jpg)
airports[airport_index][1])
m5mqtt.publish('ligarobotov/lvl14/09/plane', message)
Слайд 6Функция обработки сообщения от самолета
def plane_message_recieve(topic_data):
label0.setText(topic_data)
plane_message = topic_data.split(' ')
if len(plane_message)
![Функция обработки сообщения от самолета def plane_message_recieve(topic_data): label0.setText(topic_data) plane_message = topic_data.split(' ')](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-5.jpg)
!= 3:
return 0
Слайд 7Функция публикации сообщения самолету
if len(plane_message) != 3:
return 0
plane_number = int(
![Функция публикации сообщения самолету if len(plane_message) != 3: return 0 plane_number =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-6.jpg)
)
plane_x = float( )
plane_y = float( )
plane_coordinates = (plane_x, plane_y)
Слайд 8Функция публикации сообщения самолету
if len(plane_message) != 3:
return 0
plane_number = int(plane_message[0])
![Функция публикации сообщения самолету if len(plane_message) != 3: return 0 plane_number =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-7.jpg)
plane_x = float(plane_message[1])
plane_y = float(plane_message[2])
plane_coordinates = (plane_x, plane_y)
Слайд 9Формирование списка с номером аэропорта и дистанцией до самолета
plane_coordinates = (plane_x, plane_y)
distances
![Формирование списка с номером аэропорта и дистанцией до самолета plane_coordinates = (plane_x,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-8.jpg)
= []
for i in range(len(airports)):
distance = (i, calculate_distance( )
distances.append(distance)
Слайд 10Формирование списка с номером аэропорта и дистанцией до самолета
plane_coordinates = (plane_x, plane_y)
distances
![Формирование списка с номером аэропорта и дистанцией до самолета plane_coordinates = (plane_x,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-9.jpg)
= []
for i in range(len(airports)):
distance = (i, calculate_distance(plane_coordinates,
airports[i]))
distances.append(distance)
Слайд 11Сортировка списка координат
def sort_by_distance(x):
return x[1]
distances.sort(key=sort_by_distance)
label3.setText(str(distances))
if == airport_index:
notify_plane(plane_number)
![Сортировка списка координат def sort_by_distance(x): return x[1] distances.sort(key=sort_by_distance) label3.setText(str(distances)) if == airport_index: notify_plane(plane_number)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-10.jpg)
Слайд 12Сортировка списка координат
def sort_by_distance(x):
return x[1]
distances.sort(key=sort_by_distance)
label3.setText(str(distances))
if distances[0][0] == airport_index:
notify_plane(plane_number)
![Сортировка списка координат def sort_by_distance(x): return x[1] distances.sort(key=sort_by_distance) label3.setText(str(distances)) if distances[0][0] == airport_index: notify_plane(plane_number)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/860914/slide-11.jpg)