Боюсь, что несколько терминов в моем вопросе неверны.Пожалуйста, потерпите меня и поправьте меня, где я ошибаюсь.
Мне нужно написать библиотеку / программу, которая предоставит набор функций для работы устройства чтения карт, подключенного к последовательному порту.Как и для извлечения карты, которая была вставлена в него, пользователю просто нужно будет вызвать его код, например,
cardEject(); // or
track2Data( response); // to read data of track 2 of magnetic stripe.
cardEject()
, а другие функции сами позаботятся об открытии последовательного порта и записи данных вэто, проверка подтверждения, проверка кода ошибки, повторная отправка команды в случае сбоя и т. д. Я довольно четко обмениваюсь данными с устройствами через последовательный порт.
Мой вопрос, после написания всех этих функций и их тестирования, как я должен предоставить их пользователю.Должен ли я дать ему файл заголовка (.h
) и объектный файл (.o
)?Так что он может ссылаться на объект во время компиляции его фактической программы.Должен ли я предоставить статическую библиотеку (.a
)?
Какая из них лучше?
Это хорошая идея, что каждая функция открывает последовательный порт, а затем закрывает его?Или initCardReader()
открывает его, устанавливает его свойства и closeCardReader()
должен его закрыть?Все остальные функции можно вызывать только после initCardReader()
?
Теперь глупый, но реальный вопрос :-) Какая терминология используется для таких программ?Это интерфейс драйвера, библиотеки или устройства?Каков правильный ярлык для таких проектов?
Спасибо за ваше время.
Редактировать Спасибо всем вам за руководство мной.Очень ценитсяЭтот API должен стать частью более крупного проекта.На самом деле, я тоже буду работать над этим проектом.Но есть большая вероятность, что этот API будет использоваться в других проектах со мной или без меня.Я думаю, учитывая возможное использование в других проектах, библиотека имеет больше смысла.Пожалуйста, поправьте меня, если я ошибаюсь.