回覆列表
  • 1 # 大國師魂系列

    skdj引數可按以下方式修改修改網路引數介面 SADP_ModifyDeviceNetParam_V40 的第一個引數是裝置的Mac地址,第二個引數是裝置admin使用者的密碼,第三個引數是網路引數結構體,第四個引數是鎖定資訊結構體,第五個引數是鎖定資訊結構體大小。

    #include <stdio.h>

    #include <windows.h>

    #include "Sadp.h"

    //裝置資訊回撥函式

    void CALLBACK SadpDataCallBack(const SADP_DEVICE_INFO_V40 *lpDeviceInfoV40, void* pUserData)

    {

    printf("\r\n----------------------------------------\r\n");

    printf(" IP %s\r\n", lpDeviceInfoV40->struSadpDeviceInfo.szIPv4Address); //裝置ip

    printf(" Mac %s\r\n", lpDeviceInfoV40->struSadpDeviceInfo.szMAC); //裝置Mac地址

    printf("SerialNO %s\r\n", lpDeviceInfoV40->struSadpDeviceInfo.szSerialNO); //裝置序列號

    printf(" Result %d\r\n", lpDeviceInfoV40->struSadpDeviceInfo.iResult); //訊息型別: 1.裝置上線, 2.裝置更新, 3.裝置下線

    printf("\r\n----------------------------------------\r\n");

    }

    //修改網路引數

    int main(void)

    {

    //開啟sadp日誌 3(列印所以日誌) "C:\\SadpLog"(日誌目錄) false(保留所有日誌檔案)

    SADP_SetLogToFile(3, "C:\\SadpLog", false);

    //開啟sadp服務

    int iRet = SADP_Start_V40(SadpDataCallBack);

    if (iRet == 0)

    {

    //開啟失敗,獲取錯誤碼

    int iError = SADP_GetLastError();

    printf("SADP_Start_V40 Failed! Err(%d)\r\n", iError);

    }

    //等待一會,修改網路引數前需要SDK搜尋到被修改裝置才行

    Sleep(10000);

    SADP_DEV_NET_PARAM struNetParam = { 0 };

    SADP_DEV_RET_NET_PARAM struDevRetNetParam = { 0 };

    strcpy(struNetParam.szIPv4Address, "192.168.1.64"); //ip

    strcpy(struNetParam.szIPv4SubNetMask, "255.255.255.0");

    strcpy(struNetParam.szIPv4Gateway, "192.168.1.1");

    strcpy(struNetParam.szIPv6Address, "::");

    strcpy(struNetParam.szIPv6Gateway, "::");

    struNetParam.wPort = 8000; //netsdk服務埠

    struNetParam.dwSDKOverTLSPort = 0;

    struNetParam.byDhcpEnable = 0; //是否開啟DHCP

    struNetParam.byIPv6MaskLen = 64;

    struNetParam.wHttpPort = 80;

    //修改網路引數 引數1:裝置Mac地址 引數2:密碼 引數3:網路引數結構體 引數4:鎖定資訊結構體 引數5:鎖定資訊結構體大小

    iRet = SADP_ModifyDeviceNetParam_V40("a4-14-37-f9-e3-ee", "hik12345", &struNetParam, &struDevRetNetParam, sizeof(struDevRetNetParam));

    if (iRet == 0)

    {

    //開啟失敗,獲取錯誤碼

    int iError = SADP_GetLastError();

    printf("SADP_ModifyDeviceNetParam_V40 Failed! Err(%d)\r\n", iError);

    if (iError == SADP_LOCKED)

    {

    printf("裝置已鎖定,鎖定時間:%d 分鐘.", struDevRetNetParam.bySurplusLockTime);

    }

    else if (iError == SADP_PASSWORD_ERROR)

    {

    printf("密碼錯誤,剩餘嘗試修改次數:%d 次.", struDevRetNetParam.byRetryModifyTime);

    }

    else if (iError == SADP_NOT_ACTIVATED)

    {

    printf("裝置未啟用");

    }

    }

    else

    {

    printf("SADP_ModifyDeviceNetParam_V40 Succ!\r\n");

    }

    //釋放資源

    SADP_Stop()

    }。

  • 中秋節和大豐收的關聯?
  • 形容陽光明媚心情舒暢的詩句?