создание библиотеки
- Войдите на сайт для отправки комментариев
Вс, 18/12/2016 - 17:48
Здраствуйте, начал работу с ардуино недавно, попросил я чтоб мне скинули одну библиотечку.
Скинули мне её в вот таком виде
#ifndef FS1000A_h
#define FS1000A_h
#include <VirtualWire.h>
//////////////////////////////////////////////////////////////////////////////////////
//
// ФУНКЦИИ ПЕРЕДАТЧИКА
//
///////////////////////////////////////////////////
//
// Инициализация передатчика
//
inline static void FS1000A_Init(const int8_t pin) {
pinMode(pin, OUTPUT);
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_set_tx_pin(pin);
}
///////////////////////////////////////////////////
//
// Ждать завершения передачи сообщения
//
inline static void FS1000A_WaitForTransmission(void) {
vw_wait_tx();
}
///////////////////////////////////////////////////
//
// Отправить сообщение из буфера buf длиной len
// если waitForTransmission - true, то дождаться завершения отправки
// иначе вернуться сразу же.
//
inline static void FS1000A_Send(const void * buf, const byte len, const bool waitForTransmission = true) {
vw_send((byte *)buf, (byte)len);
if (waitForTransmission) FS1000A_WaitForTransmission();
}
///////////////////////////////////////////////////
//
// Отправить строку s без завершающего 0
// если waitForTransmission - true, то дождаться завершения отправки
// иначе вернуться сразу же.
//
inline static void FS1000A_Send(const char * s, const bool waitForTransmission = true) {
FS1000A_Send((const byte *) s, strlen(s), waitForTransmission);
}
///////////////////////////////////////////////////
//
// Возвращает true если идёт передача
//
inline bool FS1000A_InProgress(void) {
return vx_tx_active();
}
//////////////////////////////////////////////////////////////////////////////////////
//
// ФУНКЦИИ ПРИЁМНИКА
//
///////////////////////////////////////////////////
//
// Инициализация приёмника
//
inline static void XY_MK_5V_Init(const int8_t pin) {
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_set_rx_pin(pin);
}
///////////////////////////////////////////////////
//
// Включаем "слушание" эфира
//
inline static void XY_MK_5V_Start(void) {
vw_rx_start();
}
///////////////////////////////////////////////////
//
// Выключаем "слушание" эфира
//
inline static void XY_MK_5V_Stop(void) {
vw_rx_stop();
}
///////////////////////////////////////////////////
//
// Возвращает true если пришло сообщение
//
inline static bool XY_MK_5V_Available(void) {
return vw_have_message();
}
///////////////////////////////////////////////////
//
// Ждёт прихода сообщения указанное количество миллисекунд (если 0, то ждёт бесконечно)
// Возвращает true если дождалась и false в противном случае.
//
inline static bool XY_MK_5V_WaitForMessage(unsigned long milliseconds = 0) {
if (milliseconds) return vw_wait_rx_max(milliseconds);
vw_wait_rx();
return true;
}
///////////////////////////////////////////////////
//
// Получает сообщение в буфер buf.
// Максимальная длина буфера должна находится в *len
// по завершении в *len будет реальная длина полученного сообщения
// возвращает true если сообщение получено нормально
//
inline static bool XY_MK_5V_ReceiveMessage(byte * buf, byte * len) {
return vw_get_message(buf, len);
}
inline static bool XY_MK_5V_ReceiveMessage(char * s, byte * len) {
return XY_MK_5V_ReceiveMessage((byte *) s, len);
}
#endif // FS1000A
как сделать так, чтобы это можно было использовать с помощью команды #include?
Скопировать в блокнот и сохранить с расширением *.h
В папке где живут все библиотеки создать подпапку FS1000A. В неё сохранить этот файл с именем FS1000A.h, а в основной скетч вставить
#include <VirtualWire.h>
#include <FS1000A.h>