Home > Web Site Updates > HIDWrappers v1.0 & CTemperDevice v1.0

HIDWrappers v1.0 & CTemperDevice v1.0

December 27, 2015

Just to let everyone know that v1.0 of HIDWrappers & CTemperDevice has been released.

HIDWrappers provides a C++ class to provide a complete C++ encapsulation of the HID API on Windows while CTemperDevice which is a specialization of the HID class provides a C++ encapsulation of the Temper USB thermometer using the Windows HID APIs.

Included in the download is the HIDWrappers and CTemperDevice source code and a simple VC 2013 console application which exercises all of the various functionality. If the sample app detects that you have an Temper HID device attached to your computer (with a VID of 0xC45 and PID of 0x7401) then it will initialize the device and spin in a loop reading the temperature from the device every second. For more information about using this device from Windows, please see http://www.codeproject.com/Tips/1007522/Temper-USB-Thermometer-in-Csharp on which the CTemperDevice code is partly based. Please note that some of the information in this CodeProject article is incorrect as it mislabels what it calls the "Control" interface. This interface is in fact the "Interface 0" keyboard emulation interface exposed by the Temper devices. Windows versions since Windows 2000 denies user mode code low level access to any Keyboard or Mouse USB interface and the C# code from this article will fail to open this interface with an Access Denied Error message. The temperature related functionality of the device is on "Interface 1" anyway. For examples of interfacing to the Temper device please see the source code of the demo application in the HIDWrappersDemo.cpp module in the download. Please note that there are many variants of the Temper device being sold. As it stands the CTemperDevice code has been tested with a device which returns a VID of 0xC45, a PID of 0x7401 and with the initialization strings as defined at the top of the HIDWrappersDemo.cpp module. Also the version of the device I tested the code with returns the raw temperature value in the sixth and seventh byte of the returned HID report of nine bytes in total. The sample app will report the raw data sent and received from the device so it should not be too difficult to change the code to suit other devices. If you are interested in this you might want to check out USBPcap and WireShark to capture USB traces to see how I reverse engineered the data my device generates. If you have other variants of the Temper device please try the sample app with it and drop me an email and we should be able to get the code working with your variant of the device.

Categories: Web Site Updates
%d bloggers like this: