#include "frame/FrameFactory.h" #include "frame/Frame.h" #include "frame/SetTimeRequestFrame.h" #include "frame/SetTimeResponseFrame.h" FrameFactory *FrameFactory::m_pInstance = nullptr; std::mutex FrameFactory::m_mutex; // typeId: 设备类型Id // id : 通道id Frame *FrameFactory::createFrame(int cmd, int direct) { Frame *frame = nullptr; if(m_pInstance) { switch (FRAME_TYPE(direct, cmd)) { case FRAME_TYPE_SET_TIME_REQ: frame = new SetTimeRequestFrame(); break; case FRAME_TYPE_SET_TIME_RSP: frame = new SetTimeResponseFrame(); break; case FRAME_TYPE_GET_TIME_REQ: case FRAME_TYPE_GET_TIME_RSP: case FRAME_TYPE_SET_SERIAL_NUMBER_REQ: case FRAME_TYPE_SET_SERIAL_NUMBER_RSP: case FRAME_TYPE_GET_SERIAL_NUMBER_REQ: case FRAME_TYPE_GET_SERIAL_NUMBER_RSP: case FRAME_TYPE_SET_DEVICE_NAME_REQ: case FRAME_TYPE_SET_DEVICE_NAME_RSP: case FRAME_TYPE_GET_DEVICE_NAME_REQ: case FRAME_TYPE_GET_DEVICE_NAME_RSP: case FRAME_TYPE_SET_DEVICE_NUMBER_REQ: case FRAME_TYPE_SET_DEVICE_NUMBER_RSP: case FRAME_TYPE_GET_DEVICE_NUMBER_REQ: case FRAME_TYPE_GET_DEVICE_NUMBER_RSP: case FRAME_TYPE_SET_LOCK_STATUS_REQ: case FRAME_TYPE_SET_LOCK_STATUS_RSP: case FRAME_TYPE_SET_PASSWORD_REQ: case FRAME_TYPE_SET_PASSWORD_RSP: case FRAME_TYPE_SET_USAGE_COUNT_REQ: case FRAME_TYPE_SET_USAGE_COUNT_RSP: case FRAME_TYPE_GET_RECORD_REQ: case FRAME_TYPE_GET_RECORD_RSP: case FRAME_TYPE_SET_PARAM_REQ: case FRAME_TYPE_SET_PARAM_RSP: break; default: break; } } return frame; }