Поэтому я надеюсь, что кто-то может помочь, и я уверен, что это, наверное, что-то простое, что мне не хватает. Я использую PHP для доступа к API.net для стороннего программного обеспечения.
Основываясь на самой минималистской документации по API, у меня есть рабочий vbsript, который соединяется с объектом, выполняет вход в систему и затем выполняет запрос, результатом которого является вывод сбрасываемого запроса в поле сообщения.
Здесь пример vbscript:
'Test device status
Set xxx = CreateObject("The.API.Object.Goes.Here")
'Login
Result = Xxx.LoginToHost("xxx.xxx.xxx.xxx","8989","Administrator","")
if (Result = true) then
MsgBox("OK")
else
MsgBox("Error - " & Xxx.LastError)
WScript.Quit
end if
'Get Status
Result = Xxx.GetDeviceStatus("", out)
if (Result = true) then
MsgBox(out)
else
MsgBox("Error - " & Xxx.LastError)
end if
'Logout
Result = Xxx.Logout()
if (Result = true) then
MsgBox("Logout OK")
else
MsgBox("Error - " & Xxx.LastError)
end if
Xxx.GetDeviceStatus имеет два периметра, первый из которых является целевым устройством, или если пустой пустым возвращает все устройства, второй - это строковая переменная, чтобы сбрасывать результат.
Когда выполняется script, второе поле сообщения содержит список всех устройств, как я ожидал.
В PHP у меня есть:
$obj = new DOTNET("XxxScripting, Version=1.0.XXXX.XXXXXX, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXXXX","Here.Goes.The.Api");
$obj->LoginToHost('xxx.xxx.xxx.xxx','8989','Administrator','');
$result = $obj->GetDeviceStatus('','out');
echo $result."<br />";
Результат эхо-ответа дает 1, потому что значение результата является логическим значением, а GetDeviceStatus успешным. Я не могу понять, как получить значение "out", которое является фактическим результатом запроса.
Любая помощь будет принята с благодарностью.