Skip to content

Instantly share code, notes, and snippets.

View brendonanderson's full-sized avatar

Brendon Anderson brendonanderson

  • Object Partners, Inc
  • Minneapolis, MN
View GitHub Profile
@brendonanderson
brendonanderson / gist:9641872
Last active August 29, 2015 13:57
UPnP Blog - send discovery packet
InetSocketAddress socketAddress
= new InetSocketAddress(InetAddress.getByName("239.255.255.250"), 1900)
MulticastSocket socket = new MulticastSocket(null)
try {
socket.bind(new InetSocketAddress("192.168.1.150", 1901))
StringBuilder packet = new StringBuilder()
packet.append( "M-SEARCH * HTTP/1.1\r\n" )
packet.append( "HOST: 239.255.255.250:1900\r\n" )
packet.append( "MAN: \"ssdp:discover\"\r\n" )
packet.append( "MX: ").append( "5" ).append( "\r\n" )
@brendonanderson
brendonanderson / gist:9642651
Created March 19, 2014 14:23
UPnP Blog - listener
MulticastSocket recSocket = new MulticastSocket(null)
recSocket.bind(new InetSocketAddress(InetAddress.getByName("0.0.0.0"), 1901))
recSocket.setTimeToLive(10)
recSocket.setSoTimeout(1000)
recSocket.joinGroup(InetAddress.getByName("239.255.255.250"))
while (inService) { //inService is a variable controlled by a thread to stop the listener
byte[] buf = new byte[2048]
DatagramPacket input = new DatagramPacket(buf, buf.length)
try {
recSocket.receive(input)
@brendonanderson
brendonanderson / gist:9643074
Last active September 7, 2017 21:33
UPnP blog - example notifications
//router
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=1801
DATE: Wed, 19 Mar 2014 08:33:08 GMT
EXT:
LOCATION: http://192.168.1.1:49152/wps_device.xml
SERVER: Unspecified, UPnP/1.0, Unspecified
ST: upnp:rootdevice
USN: uuid:bbbbbbb-aaaa-zzzz-yyyy-xxxxxxxxxx::upnp:rootdevice
@brendonanderson
brendonanderson / gist:9647287
Created March 19, 2014 17:47
UPnP Blog - service description
<root xmlns="urn:Belkin:device-1-0">
<device>
<deviceType>urn:Belkin:device:controllee:1</deviceType>
<friendlyName>Livingroom Lamp</friendlyName>
<modelDescription>Belkin Plugin Socket 1.0</modelDescription>
<modelName>Socket</modelName>
<binaryState>0</binaryState>
<serviceList>
<service>
<serviceType>urn:Belkin:service:basicevent:1</serviceType>
@brendonanderson
brendonanderson / gist:9647654
Created March 19, 2014 18:04
UPnP Blog - service action
<scpd xmlns="urn:Belkin:service-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>GetBinaryState</name>
<argumentList>
<argument>
@brendonanderson
brendonanderson / gist:9647872
Last active August 29, 2015 13:57
UPnP Blog - Status request
HTTPBuilder http = new HTTPBuilder("http://192.168.1.120:49153/upnp/control/basicevent1")
http.request(Method.POST, ContentType.XML) {
body = '<?xml version="1.0" encoding="utf-8"?>' +
'<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
'<s:Body>' +
'<u:GetBinaryState xmlns:u="urn:Belkin:service:basicevent:1">' +
'<BinaryState>1</BinaryState>' +
'</u:GetBinaryState>' +
'</s:Body>' +
'</s:Envelope>'
@brendonanderson
brendonanderson / gist:9648064
Last active August 29, 2015 13:57
UPnP Blog - XML response off
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetBinaryStateResponse xmlns:u="urn:Belkin:service:basicevent:1">
<BinaryState>0</BinaryState>
</u:GetBinaryStateResponse>
</s:Body>
</s:Envelope>
@brendonanderson
brendonanderson / gist:9648323
Created March 19, 2014 18:37
UPnP Blog - Turn on request
HTTPBuilder http = new HTTPBuilder("http://192.168.1.120:49153/upnp/control/basicevent1")
http.request(Method.POST, ContentType.XML) {
body = '<?xml version="1.0" encoding="utf-8"?>' +
'<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
'<s:Body>' +
'<u:SetBinaryState xmlns:u="urn:Belkin:service:basicevent:1">' +
'<BinaryState>1</BinaryState>' +
'</u:SetBinaryState>' +
'</s:Body>' +
'</s:Envelope>'
@brendonanderson
brendonanderson / gist:9648422
Last active August 29, 2015 13:57
UPnP Blog - XML response on
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetBinaryStateResponse xmlns:u="urn:Belkin:service:basicevent:1">
<BinaryState>1</BinaryState>
</u:GetBinaryStateResponse>
</s:Body>
</s:Envelope>
@brendonanderson
brendonanderson / gist:b10096a944ce8927a17c
Created April 16, 2015 01:54
Ratpack Blog - Install Lazybones using GVM
#Install GVM if you haven't already
curl -s get.gvmtool.net | bash
#Install Lazybones using GVM
gvm install lazybones
#Setup the project
lazybones create ratpack myapp
#Go into the project directory
cd myapp
#Startup the application using the gradle wrapper
./gradlew run