dccharacter писал(а): но мне интуитивно не нравится написание сценариев для роботов
Под СЦЕНАРИЕМ (можно и по-другому назвать), я понимаю кусок кода программы наиболее высокого уровня абстракции, который непосредственно описывает поведение робота в той или иной ситуации.
В частном случае, если пользователь робота не является его разработчиком, но хочет иметь возможность управлять поведением робота, сценарий может находиться во внешнем файле.
В любом случае, сценарий интерпретируется программой и переводится в последовательности более низкоуровневых комманд.
Вот пример сценария одной из простых миссий Ванессы, запускающейся по расписанию (на VB6, но это не принципиально):
- Код: Выделить всё • Развернуть
Private Function MeetMe() As Boolean ' Задание "Встреть меня", запускается по рабочим дням в 13:00
MeetMe = False
Voice (1) 'Настроить голос
If MODO = MODO_INIT Then
If InitRobot <> 1 Then Exit Function 'инициализация робота, если не выполнена ранее
End If
Call SPK(65, 2000, 0, 10) 'Фраза "Приступаю к выполнению задания."
If GoMapPos(DoorPos, 2) <> 1 Then Exit Function 'Проехать по маршруту (карта) и встать напротив входной двери
Call MovDetect 'Включить датчик движения
Do While Not MovDetectionFlag 'Бесконечный цикл ожидания движения
If BateryCryticalFlag Then Exit Do 'В случае низкого заряда батареи - вернуться на базу.
DoEvents
Loop
If Not BateryCryticalFlag Then
Call SPK(64, 2000, 0, 10) 'Фраза "Добро пожаловать!"
Call Time_speak 'Дождаться конца фразы
Delay (2000)
If GoMapPos(TVPos, 0) <> 1 Then Exit Function 'Проехать по маршруту (карта) и встать напротив телевизора
Delay (2000)
Call NEC(4, 8) ' Включить телевизор
Delay (1000)
End If
If Not GoHome Then Exit Function 'вернуться на базу
MeetMe = True
End Function
Вид достаточно наглядный. Хотя присутствует один спорный момент: явный бесконечный цикл ожидания срабатывания датчика движения. Оф кос, можно было бы разбить сценарий на 2 части: до датчика и после датчика. И запускать вторую часть по событию движения. Но описание миссии потеряет свою целостность. Так вот, я тут собственно и пытался спросить: как правильно то? Кто каким стилем пользуется и кому как больше нравится? Тем более, что история с Ванессой была уже очень давно, а я так все и пишу по старинке. Может надо, как правильно научится.