the software can descover the camera corectly (tp-link c310) and set it up. however once set up no video is recived from the camera, in the camera preview it just says NO VIDEO, the milestone logs say hardware comunnication error. i have 4 other Hikvision ONVIF cameras and 2 tapo c200 and i can confirm they work on milestone xprotect 2022r2. it is just the 3 Tapo c310's and the 1 c100 that have issues
To help us understand to understand the issue better, for ' . however once set up no video is recived from the camera, in the camera preview it just says NO VIDEO, the milestone logs say hardware comunnication error. ''
#include #include #include #include #include #include #include #include #Region EDIT THE BELOW INFORMATION-------------------------------------------------------------------------------------------------------------------------------------------Local Const $milestone = "C:\Program Files\Milestone\XProtect Smart Client\Client.exe" ;Path to softwareLocal $Title = "Program Title" ;Give me a nameLocal $icon = "Full\Path\To\Icon.ico"#EndRegion-------------------------------------------------------------------------------------------------------------------------------------------------------------------#Region Script---------------------------------------------------------------------------------------------------------------------------------------------------------------Local $iFileExists = FileExists($milestone) ;Check if the file exists, returns a 1 or 0Global $list = IniReadSection(@TempDir & "\" & $Title & "\config.ini","Server") ;Read the ini file, this builds a 2D Array [X][0] is the key [X][1] is the valueHotKeySet("F1", "help")If $iFileExists Then ;If FileExists = 1 (exists) then If Not FileExists(@TempDir & "\" & $Title) Then ;If config directory does not exists then Do DirCreate(@TempDir & "\" & $Title) ;Create a directory in TempDir for the config.ini file to be stored locally Until FileExists(@TempDir & "\" & $Title) IniWrite(@TempDir & "\" & $Title & "\config.ini", "Server", "", "") EndIf Local $GUI = GUICreate($Title, 267, 115) ;Create the GUI GUISetIcon($icon, -1) ;Create icon $start = GUICtrlCreateButton("Start", 40, 72, 65, 25) ;Create a button $create = GUICtrlCreateButton("Add Server", 160, 72, 65, 25) $server = GUICtrlCreateCombo("Select Server", 8, 8, 249, 25, $CBS_DROPDOWN) ;Create the combo box For $i = 1 To UBound($list) - 1 ;Populate combo box with first value (name) from array If $list[$i][0] "" Then GUICtrlSetData($server, $list[$i][0]) ;Ensure array is not empty and fill combox with KEYS Next $servername = GUICtrlCreateInput("Server Name", 8, 40, 121, 21) GUICtrlSetState(-1, $GUI_HIDE) $serverip = GUICtrlCreateInput("IP Address", 136, 40, 121, 21) GUICtrlSetState(-1, $GUI_HIDE) GUISetState(@SW_SHOW) While 1 ;Enter loop until user closes or presses button Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ;Exit when closed Exit Case $start ;Store selection into variable, delete the GUI, and run the start function $selection = GUICtrlRead($server) If $selection "Select Server" Then GUIDelete() start() EndIf Case $create If GUICtrlRead($create) = "Add Server" Then GUICtrlSetState($servername, $GUI_SHOW) GUICtrlSetState($serverip, $GUI_SHOW) GUICtrlSetData($create, "Create") Else If (GUICtrlRead($servername) "" And GUICtrlRead($servername) "Server Name" And GUICtrlRead($serverip) "" And GUICtrlRead($serverip) "IP Address") Then IniWrite(@TempDir & "\" & $Title & "\config.ini", "Server", GUICtrlRead($servername), GUICtrlRead($serverip)) GUICtrlSetState($servername, $GUI_HIDE) GUICtrlSetState($serverip, $GUI_HIDE) GUICtrlSetData($create, "Add Server") Else MsgBox($MB_ICONINFORMATION, $Title, "Invalid Server Name and IP Address.") EndIf For $i = UBound($list) - 1 To 0 Step -1 _GUICtrlComboBox_DeleteString($server, $i) Next Local $list = IniReadSection(@TempDir & "\" & $Title & "\config.ini","Server") For $i = 1 To UBound($list) - 1 If $list[$i][0] "" Then GUICtrlSetData($server, $list[$i][0]) Next EndIf EndSwitch WEndElse ;otherwise, message MsgBox($MB_SYSTEMMODAL, "", "Milestone XProtect wasn't found on this computer" & @CRLF)EndIfFunc start() $iPID = Run($milestone,"", @SW_SHOWNOACTIVATE) ;Runs the software and returns the Process ID Sleep(1000) ;sleep for 1 second If @error Then MsgBox(0, $Title, "The program could not launch.") ;If Run returns a 0 or error, there was a problem $handle = _GetHandleFromPID($iPID) ;Retrieve the handle of the program ran, jump to the function below If $handle = 0 Then MsgBox(0, $Title, "The handle could not be found.") ;If the Handle returned is 0, there was no match Sleep(1000) WinWaitActive($handle) ;Wait for the program to be activated Send("TAB") ;send keystrokes to active window Send("TAB") For $i = 0 to UBound($list) - 1 ;Find the IP address that matches the selection and send it If $list[$i][0] = $selection Then Send($list[$i][1]) Next Send("ENTER") Exit ;Exit for now until you can capture a succesful runEndFuncfunc _GetHandleFromPID($PID) ;Call function with the PID returned from Run function $WinList = WinList() ;Assign WinList to a variable for $i = 1 to $WinList[0][0] ;Run through each Window in WinList, 2D array [titles][handles] If WinGetProcess($WinList[$i][1]) = $PID then ;Look for a Window with the correct PID Return $WinList[$i][1] ;Assign the matching Windows handle to the variable EndIf Next Return 0 ;Return 0 if no matches were foundEndFuncFunc help() ShellExecute(@TempDir & "\" & $Title & "\config.ini")EndFunc#EndRegion--------------------------------------------------------------------------------------------------------------------------------------------------------------------
760c119bf3