恐怕我的问题中有几个术语是错误的。请容忍我,并在我错的地方纠正我。
我必须编写一个库/程序,它将提供一组功能来操作连接在串行端口上的读卡器。就像弹出插入其中的卡一样,用户只需调用他的代码,例如,
cardEject(); // or
track2Data( response); // to read data of track 2 of magnetic stripe.
cardEject()
和其他功能将自己处理打开串口,向其写入数据,检查确认,检查错误代码,在失败时重新发送命令等。我很清楚与串口上的设备通信。
我的问题是,在编写完所有这些函数并对其进行测试之后,我应该如何将它们提供给用户。
我应该给他一个头文件(.h
)和一个目标文件(.o
)吗?这样他就可以在编译他的实际程序时链接到该对象。
我应该提供一个静态库(.a
)吗?
哪个是更好的主意?
每个函数打开串口然后关闭它是一个好主意吗?或者initCardReader()
打开它,设置它的属性并closeCardReader()
应该关闭它?所有其他函数只能在initCardReader()
?
现在是一个愚蠢但真实的问题 :-) 用于此类程序的术语是什么?它是驱动程序、库还是设备接口?此类项目的正确标签是什么?
谢谢你的时间。
编辑
感谢大家指导我。非常感谢。
这个 API 必须成为更大项目的一部分。事实上,我也会从事那个项目。但是这个 API 很有可能会在有我或没有我的其他项目中使用。我认为,考虑到可能在其他项目中使用,图书馆更有意义。如果我错了,请纠正我。