Samsung TV пульт дистанционного управления через UPnP - PullRequest
1 голос
/ 10 января 2020

Я искал телевизоры Samsung Smart в сети, отправив сообщение M-Search. Получил ответ на все услуги, рекламируемые телевизором в сети. Описание Xml одного из сервисов получено по адресу "http://192.168.0.1: 7678 / nservice / "

<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:sec="http://www.sec.co.kr/dlna" xmlns:dlna="urn:schemas-dlna-org:device-1-0">
    <specVersion>
        <major>1</major>
        <minor>0</minor>
    </specVersion>
    <device>
        <deviceType>urn:dial-multiscreen-org:device:dialreceiver:1</deviceType>
        <friendlyName>[TV] Samsung 7 Series (50)</friendlyName>
        <manufacturer>Samsung Electronics</manufacturer>
        <manufacturerURL>http://www.samsung.com/sec</manufacturerURL>
        <modelDescription>Samsung DTV RCR</modelDescription>
        <modelName>UA50RU7400RSMZ</modelName>
        <modelNumber>1.0</modelNumber>
        <modelURL>http://www.samsung.com/sec</modelURL>
        <serialNumber>20090804RCR</serialNumber>
        <UDN>uuid:8b6394f7-19c7-423d-a229-017ddf94ba54</UDN>
        <sec:deviceID>NSNSC5ZTTO2RS</sec:deviceID>
        <sec:ProductCap>Resolution:1920X1080,Tizen,Y2017</sec:ProductCap>
        <serviceList>
            <service>
                <serviceType>urn:dial-multiscreen-org:service:dial:1</serviceType>
                <serviceId>urn:dial-multiscreen-org:serviceId:dial</serviceId>
                <controlURL>/RCR/control/dial</controlURL>
                <eventSubURL>/RCR/event/dial</eventSubURL>
                <SCPDURL>dial.xml</SCPDURL>
            </service>
        </serviceList>
        <sec:Capabilities>
            <sec:Capability name="samsung:multiscreen:1" port="8001" location="/ms/1.0/"/>
        </sec:Capabilities>
    </device>
</root>

Это реклама сервиса с именем urn:dial-multiscreen-org:service:dial:1

Действия, используемые для управления устройством, определены здесь "http://192.168.0.1: 7678 / nservice / dial. xml"

Содержимое набора номера. xml являются

<?xml version="1.0" encoding="utf-8"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0">
    <specVersion>
        <major>1</major>
        <minor>0</minor>
    </specVersion>
    <actionList>
        <action>
            <name>SendKeyCode</name>
            <argumentList>
                <argument>
                    <name>KeyCode</name>
                    <direction>in</direction>
                    <relatedStateVariable>A_ARG_TYPE_KeyCode</relatedStateVariable>
                </argument>
                <argument>
                    <name>KeyDescription</name>
                    <direction>in</direction>
                    <relatedStateVariable>A_ARG_TYPE_KeyDescription</relatedStateVariable>
                </argument>
            </argumentList>
        </action>
    </actionList>
    <serviceStateTable>
        <stateVariable sendEvents="no">
            <name>A_ARG_TYPE_KeyCode</name>
            <dataType>ui4</dataType>
        </stateVariable>
        <stateVariable sendEvents="no">
            <name>A_ARG_TYPE_KeyDescription</name>
            <dataType>string</dataType>
        </stateVariable>
    </serviceStateTable>
</scpd>

Я отправляю SOAP Запрос на контрольный URL. Я получаю 404 с сервера и SOAP ответ как

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
        <s:Fault>
            <faultcode>s:Client</faultcode>
            <faultstring>UPnPError</faultstring>
            <detail>
                <UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
                    <errorCode>402</errorCode>
                    <errorDescription>Invalid Args</errorDescription>
                </UPnPError>
            </detail>
        </s:Fault>
    </s:Body>
</s:Envelope>

Примечание. Модель Samsung Smart TV - RU Series 7.

...