api_1 [ОрбиКрафт 3D]

Инструменты пользователя


Боковая панель

Назначение ОрбиКрафт 3D

Сборка ОрбиКрафт 3D

Интерфейсы конструктора ОрбиКрафт 3D

Работа с ОрбиКрафт 3D по УКВ

Работа с ОрбиКрафт 3D по Wi-Fi

Работа с ОрбиКрафт 3D через WEB-интерфейс

Полезная нагрузка на базе Arduino

ОрбиКрафт 3D (трехосный) на стенде полунатурного моделирования

Среда разработки

РЭ Houston Control Center

Лабораторная оснастка

Обратная связь

api_1

Пользовательский API на языке Python

В этом разделе представлен набор пользовательских функций, реализованных в библиотеке libschsat.h

Функции

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 - номер фото

api_1.txt · Последние изменения: 2022/11/22 17:10 — ekaterina.manucharova

Инструменты страницы