12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #ifndef LIBFRAMEWORK_GPIO_IMPL_H
- #define LIBFRAMEWORK_GPIO_IMPL_H
- #include "GpioClass.h"
- #include <string>
- #include "DeviceSimulator.h"
- #define EntityName "Gpio"
- class GPIOClassImpl : public GpioClass
- {
- public:
- GPIOClassImpl();
- ~GPIOClassImpl();
- //DeviceBaseClass
- ErrorCodeEnum GetDevCategory(DevCategoryInfo &devCategory);
- ErrorCodeEnum Reset();
- ErrorCodeEnum DevClose();
- ErrorCodeEnum GetLastErr(DevErrorInfo &devErrInfo);
- //
- // Device initialization.
- // Configure port input/output direction.
- //
- virtual ErrorCodeEnum DevOpen(GpioInitParam initParam);
- //
- // Set ports output.
- // Arguments:
- // - dwPort:port serial number,0~MAX_PORT_NUM-1
- // - btData:output value
- // bit value 1/0 means voltage high or low
- // ex.dwPort=0 btData=10001010 means set port 0's the 2nd,4th,8th pin output high
- //
- virtual ErrorCodeEnum WritePort(DWORD dwPort, BYTE btData);
- //
- // Get port input.
- // Arguments:
- // - dwPort:port serial number,0~MAX_PORT_NUM-1
- // - btStatus:input value
- // ex.dwPort=0 btStatus=10001010 means port 0's the 2nd,4th,8th pin with high level
- //
- virtual ErrorCodeEnum ReadPort(DWORD dwPort, BYTE& btStatus);
- #ifndef _MSC_VER
- /// <summary>
- /// 打开指定模块的提示灯
- /// </summary>
- /// <param name="dwReq">
- /// 硬件灯模块序号,见上方定义GPIO_DEV_SN_*,或参考规格说明文档,只会传送模式为”驱动“的序号之一
- /// 只会设置灯,如果是其他值则返回 Error_NotSupport
- /// </param>
- /// <param name="dwMode">
- /// 入参,指定灯的属性如常亮还是闪烁,是普通灯颜色还是故障灯颜色
- /// 不同属性可以通过与的方式合并传入,如灯颜色和亮灯模式,同一属性只会传入其中一个值,比如灯常亮和闪烁只会传入其中之一
- /// 具体值表示的内容参考上方定义的内容 GPIO_DEV_LIGHT_MODE_*
- /// </param>
- /// <returns>
- /// 参数有误或设置失败返回对应的报错
- /// </returns>
- virtual ErrorCodeEnum SetStatus(DWORD dwReq, DWORD dwMode);
- /// <summary>
- /// 获取探测器的状态
- /// </summary>
- /// <param name="dwReq">
- /// 感应模块序号,见上方定义GPIO_DEV_SN_*,或参考规格说明文档,只会传送模式为”接收“的序号
- /// 这个可能是与的关系,即有可能会一个调用同时获取多个模块的状态
- /// </param>
- /// <param name="dwMode">
- /// 对应模块(有震动、开门、摘机、有人靠近)对应的位,如果是高电平置为1,如果低电平则置为0
- /// </param>
- /// <returns>
- /// 无法获取状态则返回报错
- /// </returns>
- virtual ErrorCodeEnum DetectStatus(DWORD dwReq, DWORD& dwMode);
- #endif //_MSC_VER
- private:
- int m_mode;
- };
- #endif //LIBFRAMEWORK_GPIO_IMPL_H
|