Hikmicro Sdk
Hikmicro does not offer a single monolithic SDK. Instead, it bifurcates its offering based on the device category:
To decide if the Hikmicro SDK is right for you, compare it to the alternatives.
| Feature | Hikmicro SDK | FLIR (Teledyne) SDK | Seek Thermal SDK | InfiRay SDK | | :--- | :--- | :--- | :--- | :--- | | Radiometric data | High (16-bit raw) | Very High (18-bit) | Medium (14-bit) | High (16-bit) | | Documentation | Medium / Gaps | Excellent | Good | Poor / Chinese-heavy | | Price of hardware | $$ (Mid-range) | $$$$ (Expensive) | $ (Budget) | $ (Budget) | | Ease of integration | Moderate (Requires NDA) | Easy (Public SDK) | Easy (Public GitHub) | Hard (Direct factory support) | | MSX (Edge overlay) | Yes | Yes (Patent protected) | No | No |
Verdict: The Hikmicro SDK offers the best price-to-performance ratio for radiometric data. You get near-FLIR capabilities at half the cost, but you sacrifice open documentation and must navigate the NDA process. hikmicro sdk
The SDK is platform-dependent.
#include "HCNetSDK.h"void CALLBACK ThermalDataCallback(LONG lRealHandle, DWORD dwDataType, BYTE pBuffer, DWORD dwBufSize, void pUser) if (dwDataType == NET_DVR_THERMAL_DATA) NET_DVR_THERMAL_DATA thermal = (NET_DVR_THERMAL_DATA)pBuffer; unsigned short* rawData = thermal->pRawDataBuffer;
// Get scale factor NET_DVR_THERMAL_PARAM param; NET_DVR_GetThermalParam(lRealHandle, ¶m); float scale = param.fScaleFactor; float offset = param.fOffset; // Compute temperature at center pixel int centerIdx = (thermal->iHeight/2) * thermal->iWidth + (thermal->iWidth/2); float tempC = rawData[centerIdx] * scale + offset; printf("Center temperature: %.2f°C\n", tempC);int main() NET_DVR_Init(); NET_DVR_SetConnectTime(2000, 1);
NET_DVR_USER_LOGIN_INFO login = 0; strcpy(login.sDeviceAddress, "192.168.1.100"); login.wPort = 8000; strcpy(login.sUserName, "admin"); strcpy(login.sPassword, "password"); NET_DVR_DEVICEINFO_V40 devInfo; LONG lUserID = NET_DVR_Login_V40(&login, &devInfo); NET_DVR_PREVIEWINFO preview = 0; preview.hPlayWnd = NULL; // no display window preview.lChannel = 1; preview.dwStreamType = 1; // main stream preview.bBlocked = TRUE; preview.byProtoType = 0; // TCP LONG lRealHandle = NET_DVR_RealPlay_V40(lUserID, &preview, ThermalDataCallback, NULL); Sleep(10000); // stream for 10 sec NET_DVR_StopRealPlay(lRealHandle); NET_DVR_Logout(lUserID); NET_DVR_Cleanup(); return 0;
The HIKMICRO SDK is not a single universal kit but a family of interfaces. The primary one is the HIKMICRO Device Network SDK (often labeled HIKMICRO_NetSDK).
Underlying Tech Stack:
Key Sub-modules:
