123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #include "StdAfx.h"
- #include "WheelDPC.h"
- #include "DevTree.h"
- #include "WheelOemDevice.h"
- WHEELDPC_API DriverDPC* GetDriverDPC()
- {
- return (DriverDPC*)(new WheelDPC());
- }
- WHEELDPC_API void ReleaseDriverDPC(DriverDPC *p)
- {
- WheelDPC *org = (WheelDPC*)p;
- delete org;
- }
- WheelDPC::WheelDPC(void)
- {
- m_pWorkpath = new std::string();
- }
- WheelDPC::~WheelDPC(void)
- {
- delete m_pWorkpath;
- }
- bool WheelDPC::DriverEntry(ResDataObject &Configuration)
- {
- return LogicDriver::DriverEntry(Configuration);
- }
- //bool SYSTEM_CALL WheelDPC::Driver_Probe(ResDataObject& PARAM_OUT HardwareInfo)
- //{
- // ResDataObject Config;
- // GetConfiguration(&Config);
- //
- // HardwareInfo.add("MajorID", (const char*)Config["MajorID"]);
- // HardwareInfo.add("MinorID", (const char*)Config["MinorID"]);
- // HardwareInfo.add("VendorID", (const char*)Config["VendorID"]);
- // HardwareInfo.add("ProductID", (const char*)Config["ProductID"]);
- // HardwareInfo.add("SerialID", (const char*)Config["SerialID"]);
- //
- // return true;
- //
- //}
- bool WheelDPC::Device_Probe(ResDataObject &HardwareInfo)
- {
- HardwareInfo.add("MajorID", "wheel");
- HardwareInfo.add("MinorID", "drv");
- HardwareInfo.add("VendorID", "Ecom");
- HardwareInfo.add("ProductID", "Wheel");
- HardwareInfo.add("SerialID", Thread_GetUniqTick());
- return true;
- }
- bool WheelDPC::SetDeviceWorkPath(const char *pWorkPath)
- {
- return true;
- }
- bool WheelDPC::SetDriverWorkPath(const char *pWorkPath)
- {
- (*m_pWorkpath) = pWorkPath;
- //要把读取单一硬件属性的过程放到此处
- return true;
- }
- bool WheelDPC::Connect()
- {
- LogicDriver::Connect();//make sure it's connected
- return true;
- }
- void WheelDPC::DisConnect()
- {
- LogicDriver::DisConnect();//make sure it's Disconnected
- }
- RET_STATUS SYSTEM_CALL WheelDPC::GetDriverDictionary(ResDataObject& PARAM_OUT DriverInfo)
- {
- DriverInfo.add("DriverType", "Wheel");
- DriverInfo.add("DeviceName", "asdf");
- DriverInfo.add("DateOfManufacture", "2017.10.20");
- DriverInfo.add("SoftwareVersion", "Alpha1.0");
- DriverInfo.add("HardwareVersion", "Alpha1.0");
- DriverInfo.add("Description", "Root Drver");
- DriverInfo.add("Properties", "None");
- return RET_SUCCEED;
- }
- PVOID WheelDPC::LoadLogicDevices()
- {
- PRINTA_INFO(m_pLog, "Load Logic Devices");
- DevTree *pTree = (DevTree *)GetDeviceTree();
- Wheel_OemDevice *p = new Wheel_OemDevice();
- LogicDevice *pret = (LogicDevice *)p;
- pTree->Add((PVOID)pret, TYPE_DEVICE);
- return (PVOID)pTree;
- }
- void WheelDPC::UnloadLogicDevices()
- {
- PRINTA_INFO(m_pLog, "UnLoad Logic Devices");
- DevTree *pTree = (DevTree *)GetDeviceTree();
- size_t Size = pTree->size();
- for (size_t i = 0; i < Size; i++)
- {
- DevTreeNode node = (*pTree)[i];
- if (node.m_NodeType == TYPE_DEVICE)
- {
- LogicDevice *pdev = (LogicDevice*)node.m_pObject;
- delete pdev;
- }
- else
- {
- //tree dev
- //do not copy this!!!!
- //UnloadLogicDevices(node.m_pObject);
- }
- }
- pTree->clear();
- PRINTA_INFO(m_pLog, "UnLoad Over");
- }
|