Пользовательский API на языке Python
В этом разделе представлен набор пользовательских функций, реализованных на языке Python.
Функции
gyroGetRaw(self, waitingTime : float = 2.0)
Возвращает список значений датчика угловой скорости(x, y, z) из телеметрии ОрбиКрафта 3D или пустой список если время ожидания сообщений было превышено.
waitingTime : float - время ожидания телеметрии (по умолчанию 2 сек)
gyroRequestRaw(self, waitingTime : float = 2.0)
Запрашивает регулярную телеметрию carrier и возвращает список значений ДУС'a (x, y, z) или пустой список если время ожидания сообщений было превышено. Получение телеметрии происходит со скоростью запросов.
waitingTime : float - время ожидания телеметрии (по умолчанию 2 сек)
gyroSetOffset(self, x : float, y : float, z : float, waitingMsgid : float = 2.0)
Устанавливает смещение нуля для ДУС. Возвращает True при успешном выполнении, иначе False если время ожидания ACK было превышено.
- x : float - смещение нуля x;
- y : float - смещение нуля y;
- z : float - смещение нуля z;
waitingTime : float - время ожидания ответа (по умолчанию 2 сек).
magGyroSetTelemetryPeriod(self, period : int, waitingTime : float = 2.0)
Устанавливает период для регулярной телеметрии магнетометра и ДУС'а. Возвращает True при успешном выполнении, иначе False если время ожидания ACK было превышено.
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
magGetRaw(self, waitingTime : float = 2.0)
Возвращает список значений магнетометра (x, y, z) из телеметрии ОрбиКрафта 3D или пустой список если время ожидания сообщений было превышено.
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
magRequestRaw(self, waitingTime : float = 2.0)
Запрашивает регулярную телеметрию carrier и возвращает список значений магнетометра (x, y, z) или пустой список если время ожидания сообщений было превышено. Получение телеметрии происходит со скоростью запросов.
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
magSetOffset(self, x : int, y : int, z : int, waitingTime : float = 2.0)
Устанавливает смещение для магнетометра. Каждое значение нужно разделить на 14 прежде чем отправлять команду. Возвращает True при успешном выполнении, иначе False если время ожидания ACK было превышено.
- x : float - смещение нуля x;
- y : float - смещение нуля y;
- z : float - смещение нуля z;
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
motorGetSpeed(self, motorAddr : str, waitingTime : float = 2.0)
Возвращает угловую скорость указанного маховика из телеметрии ОрбиКрафта 3D или None если время ожидания сообщения было превышено.
motorAddr : str - адрес маховика ('0xA', '0xB' ..)
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
motorGetTorque(self, motorAddr : str, waitingTime : float = 2.0)
Возвращает крутящий момент указанного маховика из телеметрии ОрбиКрафта 3D или None если время ожидания сообщения было превышено.
motorAddr : str - адрес маховика ('0xA', '0xB' ..)
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
motorSetSpeed(self, motorAddr : str, speed : float, waitingTime : float = 2.0)
Устанавливает угловую скорость маховика. Возвращает True при успешном выполнении, иначе False если время ожидания ACK было превышено.
motorAddr : str - адрес маховика ('0xA', '0xB' ..)
speed : float - скорость маховика в об/мин
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
motorSetTorque(self, motorAddr : str, torque : float, time : int, waitingTime : float = 2.0)
Устанавливает вращающий момент для выбранного маховика. Возвращает True при успешном выполнении, иначе False если время ожидания ACK было превышено.
motorAddr : str - адрес маховика ('0xA', '0xB' ..)
torque : float - вращающий момент
time : int - время приложения момента
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
motorSetTelemetryPeriod(self, motorAddr : str, period : int, waitingTime : float = 2.0)
Устанавливает период телеметрии для указанного маховика. Возвращает True при успешном выполнении, иначе False если время ожидания ACK было превышено.
motorAddr : str - адрес маховика ('0xA', '0xB' ..)
period : int - период телеметрии в мс
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
motorSetPeriodAll(self, period : int, waitingTime : float = 2.0)
Устанавливает период телеметрии для маховиков с адресами 0xA, 0xB и 0xC. Возвращает True при успешном выполнении, иначе False если время ожидания ACK сообщений было превышено.
period : int - период телеметрии в мс (50..5000)
waitingTime : float - время ожидания сообщения для каждого маховика (default 2 sec)
sunSensorGetRaw(self, sensorAddr : str, waitingTime : float = 2.0)
Возвращает список из 3 компонентов (x, y, z) вектора указывающего на солнце от выбранного солнечного датчика или пустой список если время ожидания сообщений превышено. Чтобы получить нормализованный компонент вектора нужно x_norm = x / sqrt(x^2 + y^2 + z^2).
sensorAddr : str - адрес солнечного датчика ('0x10', '0x11', ..)
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
sunSensorGetDeltaPhi(self, sensorAddr : str, waitingTime : float = 2.0)
Возвращает список с Дельта и Фи углами от выбранного солнечного датчика из телеметрии ОрбиКрафта 3D или пустой список если время ожидания телеметрии было превышено или данные от датчика пришли с флагом не валидности. Дельта - угол между нормалью к солнечному датчику и вектором направленным на солнце. Фи - угол поворота вокруг нормали к солнечному датчику.
sensorAddr : str - адрес солнечного датчика ('0x10', '0x11', ..)
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
sunSensorsSetTelemetryPeriod(self, sensorAddr : str, period : int, waitingTime : float = 2.0)
Устанавливает период телеметрии для указанного солнечного датчика. Возвращает True при успешном выполнении, иначе False если время ожидания ACK сообщений было превышено.
sensorAddr : str - адрес датчика ('0x10', …)
period : int - период в мс
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
sunSensorsSetPeriodAll(self, period : int, waitingTime : float = 2.0)
Устанавливает период телеметрии для всех солнечных датчиков. Возвращает True при успешном выполнении, иначе False если время ожидания ACK сообщений было превышено.
period : int - период в мс
waitingTime : float - время ожидания ответа (по умолчанию 2 сек)
cameraTakePhoto(self, angle : int)
Сделать фото на raspberry camera. Возвращает True при успешном выполнении, иначе False.
angle : int - Поворот камеры (0, 90, 180, 270), град
receiveMsg(self, msgid : str, addrFrom : str, waitingTime=2.0)
Ожидает сообщение. В случае принятия сообщения за время waitingTime возвращает принятое сообщение, иначе None.
msgid : str - id ожидаемого сообщения
addrFrom : str - адрес устройства отправителя(ждущего ответа) в формате '0xF'
waitingTime : float - время ожидания сообщения
receiveMsgs(self, waitingMsgids, addrFrom : str, waitingTime=2.0)
Ожидает сообщения. В случае принятия сообщений за время waitingTime возвращает список принятых сообщений в порядке списка waitingMsgids, иначе пустой список.
waitingMsgids - список ожидаемых сообщений в формате hex ('0xB10')
addrFrom : str - адрес устройства отправителя(ждущего ответа) в формате hex('0xF')
waitingTime : float - время ожидания сообщения
sendMsgAndWaitAnswer(self, msgidToSend: str, addrFrom: str , addrTo: str, length: int, data, waitingMsgid: str, waitingTime=2.0)
Отправить сообщение и ожидать одно сообщение в ответ. В случае принятия сообщений за время waitingTime возвращает сообщение c waitingMsgid, иначе None.
msgidToSend : str - id сообщения для отправки
addrFrom : str - адрес отправителя в формате hex ('0xF')
addrTo : str - адрес получателя в формате hex ('0xA')
length : int - длина сообщения пакета данных в байтах
data - пакет данных (bytearray)
waitingMsgid : str - id ожидаемого сообщения
waitingTime : float - время ожидания сообщения
sendMsgAndWaitAnswers(self, msgidToSend: str, addrFrom: str , addrTo: str, length: int, data, waitingMsgids, waitingTime=2.0)
Отправить сообщение и ожидать одно сообщение в ответ. В случае принятия сообщений за время waitingTime возвращает сообщение c waitingMsgid, иначе пустой список.
msgidToSend : str - id сообщения для отправки
addrFrom : str - адрес отправителя в формате hex ('0xF')
addrTo : str - адрес получателя в формате hex ('0xA')
length : int - длина сообщения пакета данных в байтах
data - пакет данных (bytearray)
waitingMsgid - список ожидаемых сообщений
waitingTime : float - время ожидания сообщения
pushThumbsToTerra2(self, num: int)
Запускает передачу всех thumbs с ОрбиКрафт 3D на Terra Ground Control. Возвращает True при успешном выполнении, иначе False.
num : int - номер thumb с которого начинается передача
pushPhotoToTerra2(self, num: int)
Запускает передачу фото с ОрбиКрафт 3D на Terra Ground Control. Возвращает True при успешном выполнении, иначе False.
num : int - номер фото