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

Перевод этой страницы:

Инструменты сайта


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

Для чего нужен ОрбиКрафт

Подсистемы конструктора

Инструкции по работе с ОрбиКрафт

Уроки

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

Знакомство с Arduino

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

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

Новости

libschsat

Описание библиотек функций на языке C

Описанные ниже функции используются для взаимодействия с подсистемами при написании программ для конструктора спутника ОрбиКрафт на языке C.

Для устройств, чей номер не указан на корпусе, по умолчанию используется номер 1.
Стандартные коды, возвращаемые функциями библиотеки
  #define LSS_OK 0 
  #define LSS_ERROR 1 
  #define LSS_BREAK 2

Система энергопитания (СЭП)

  float battery_get_charge(void);

Возвращает текущий заряд виртуальной СЭП (мА*Ч)

  float battery_get_discharging_current(void); 

Возвращает текущий ток разряда СЭП (мА)

Магнитометр

  int magnetometer_get_state(uint16_t num);

Возвращает текущее состояние магнитометра (включен/выключен)

  int magnetometer_request_raw(uint16_t num,int16_t *pRAW_dataX,int16_t *pRAW_dataY,int16_t *pRAW_dataZ); 

Возвращает LSS_OK и записывает текущие показания магнитометра с номером num в переменные pRAW_dataX - pRAW_dataZ
В случае ошибок на шине возвращает LSS_ERROR
В случае отсутствия питания на магнитометре возвращает LSS_BREAK ​

Возвращаемое значение содержит:​ - 1100 едениц RAW на Гаусс по осям X и Y, 980 едениц RAW на Гаусс по оси Z
  int magnetometer_request_reset(uint16_t num); 

Перезагружает магнитометр номер num

  int magnetometer_turn_off(uint16_t num);

Выключает магнитометр номер num

  int magnetometer_turn_on(uint16_t num);
Включает магнитометр номер **num**

Датчик угловых скоростей (ДУС)

  int hyro_get_state(uint16_t num);

Возвращает текущее состояние ДУС (включен/выключен)

  int hyro_request_raw(uint16_t num,int16_t *pRAW_dataX,int16_t *pRAW_dataY,int16_t *pRAW_dataZ); 

Возвращает LSS_OK и записывает текущие показания ДУС с номером num в переменные pRAW_dataX - pRAW_dataZ
В случае ошибок на шине возвращает LSS_ERROR
В случае отсутствия питания на ДУС возвращает LSS_BREAK ​

Угловая скорость,​ определяемая датчиком,​ равняется 0.00875 градусам/​секунду на одну единицу RAW
  int hyro_request_reset(uint16_t num);

Перезагружает ДУС номер num

  int hyro_turn_off(uint16_t num);

Выключает ДУС номер num

  int hyro_turn_on(uint16_t num);

Включает ДУС номер num

Солнечный датчик

  int sun_sensor_get_state(uint16_t num);

Возвращает текущее состояние солнечного датчика номер num (включен/выключен)

  int sun_sensor_request_maxraw(uint16_t num, uint16_t *pMAXRAW_data1, uint16_t *pMAXRAW_data2); 

Возвращает LSS_OK и записывает текущие максимумы показаний сенсоров солнечного датчика с номером num в переменные pMAXRAW_data1 и pMAXRAW_data2. Максимум - максимальное показание которое когда-либо детектировал сенсор с момента перезагрузки
В случае ошибок на шине возвращает LSS_ERROR
В случае отсутствия питания на солнечном датчике возвращает LSS_BREAK

  int sun_sensor_request_raw(uint16_t num, uint16_t *pRAW_data1, uint16_t *pRAW_data2); 

Возвращает LSS_OK и записывает текущие показания сенсоров солнечного датчика с номером num в переменные pRAW_data1 и pRAW_data2.
В случае ошибок на шине возвращает LSS_ERROR
В случае отсутствия питания на солнечном датчике возвращает LSS_BREAK

  int sun_sensor_request_reset(uint16_t num);

Перезагружает солнечный датчик номер num

 int sun_sensor_set_calibrate(uint16_t num,uint8_t mode);

Не используется

 int sun_sensor_set_minvalue(uint16_t num,uint16_t value); 

Не используется

  int sun_sensor_turn_off(uint16_t num);

Выключает солнечный датчик номер num

  int sun_sensor_turn_on(uint16_t num);

Включает солнечный датчик номер num

Двигатель-маховик

  int motor_get_state(uint16_t num);

Возвращает текущее состояние маховика номер num (включен/выключен)

  int motor_request_reset(uint16_t num);

Перезагружает маховик номер num

  int motor_request_speed(uint16_t num,int16_t *pRPM);

Возвращает LSS_OK и записывает текущую скорость маховика с номером num в переменную pRPM
В случае ошибок на шине возвращает LSS_ERROR
В случае отсутствия питания на маховике возвращает LSS_BREAK

  int motor_set_speed(uint16_t num,int16_t RPM,int16_t *confirm);

Возвращает LSS_OK и записывает заданную скорость для маховика с номером num в переменную confirm, задает эту скорость маховику
В случае ошибок на шине возвращает LSS_ERROR
В случае отсутствия питания на маховике возвращает LSS_BREAK

  int motor_turn_off(uint16_t num);

Выключает маховик с номером num (не рекомендуется краткосрочное выключение и включение!)

  int motor_turn_on(uint16_t num);

Включает маховик с номером num

Камера ДЗЗ

  int camera_get_state(void); 

Возвращает текущее состояние камеры (включена/выключена)

  int camera_turn_off(void);

Выключает камеру

  int camera_turn_on(void);

Включает камеру

  int camera_take_photo(uint16_t num);

Делает фотографию с помощью камеры в ячейку с номером num

ВЧ радиоканал

  int transmitter_get_state(uint16_t num);

Возвращает текущее состояние ВЧ передатчика (включен/выключен)

  int transmitter_transmit_photo(uint16_t num, uint16_t nPhoto);

Передает фотографию из ячейки камеры номер nPhoto с помощью ВЧ передатчика номер num на ВЧ приемник (на землю)

  int transmitter_request_reset(uint16_t num);

Перезагружает ВЧ передатчик номер num

  int transmitter_turn_off(uint16_t num);

Выключает ВЧ передатчик номер num

  int transmitter_turn_on(uint16_t num);

Включает ВЧ передатчик номер num

УКВ радиоканал

  int transceiver_get_state(uint16_t num);

Возвращает текущее состояние передатчика телеметрии номер num (включен/выключен)

 int transceiver_request_buff(uint16_t num,uint8_t *data);

Не используется

  int transceiver_request_reset(uint16_t num);

Перезагружает передатчик телеметрии номер num

  int transceiver_send(uint16_t tx_num,uint16_t rx_num,const uint8_t *data,uint16_t len);

Посылает пакет данных с данными data длинны len от передатчика телеметрии номер tx_num в адрес приемника телеметрии номер rx_num (на землю)

  int transceiver_turn_off(uint16_t num);

Выключает передатчик телеметрии номер num для снижения энергопотребления

  int transceiver_turn_on(uint16_t num);

Включает передатчик телеметрии номер num

Общие функции

 void dump_buffer(uint8_t *buf,size_t len);

Не используется

  void mSleep(int msec);

Пауза в программе на msec миллисекунд

  void Sleep(int sec);

Пауза в программе на sec секунд

  int bus_setup(void);

Подготавливает все устройства на шине к приему информации. По умолчанию устройства после включения или перезагрузки могут начать обмен только после завершения хотя бы одной посылке на шине (для любого устройства) данная функция просто посылает пустое сообщение адресованное всем.

libschsat.txt · Последние изменения: 2020/08/17 14:05 — golikov

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