aboutsummaryrefslogtreecommitdiff
path: root/bridge.go
diff options
context:
space:
mode:
authorCollin Guarino <collin.guarino@gmail.com>2016-01-23 01:34:55 -0500
committerCollin Guarino <collin.guarino@gmail.com>2016-01-23 01:34:55 -0500
commited09ef1824144aa2cde37fd6566f2ea63a839c08 (patch)
tree6cdf9b35b151fa3042d07ce6e37c0f38b283114c /bridge.go
parente5a495cf76d99bd840d395dc6369b45d67716e27 (diff)
Debugging xml.Unmarshal not showing any data.
Diffstat (limited to 'bridge.go')
-rw-r--r--bridge.go39
1 files changed, 23 insertions, 16 deletions
diff --git a/bridge.go b/bridge.go
index 172d370..f7a183b 100644
--- a/bridge.go
+++ b/bridge.go
@@ -9,7 +9,8 @@ import (
)
func main() {
- log.Println("Test")
+ bridge := NewBridge("192.168.1.128")
+ log.Println(bridge.IPAddress)
}
type Bridge struct {
@@ -19,15 +20,16 @@ type Bridge struct {
}
type BridgeInfo struct {
- DeviceType string
- FriendlyName string
- ManufacturerURL string
- ModelDescription string
- ModelName string
- ModelNumber string
- ModelURL string
- SerialNumber string
- UDN string
+ DeviceType string `xml:"deviceType"`
+ FriendlyName string `xml:"friendlyName"`
+ Manufacturer string `xml:"manufacturer"`
+ ManufacturerURL string `xml:"manufacturerURL"`
+ ModelDescription string `xml:"modelDescription"`
+ ModelName string `xml:"modelName"`
+ ModelNumber string `xml:"modelNumber"`
+ ModelURL string `xml:"modelURL"`
+ SerialNumber string `xml:"serialNumber"`
+ UDN string `xml:"UDN"`
}
func NewBridge(ip string) *Bridge {
@@ -37,31 +39,36 @@ func NewBridge(ip string) *Bridge {
// TODO: other defaults here
}
- bridge.Info = GetBridgeInfo("192.168.1.128") // TODO: IP var
+ bridge.Info = GetBridgeInfo(bridge.IPAddress) // TODO: IP var
return &bridge
}
// Go to http://<bridge_ip>/description.xml and parse the info
func GetBridgeInfo(ip string) BridgeInfo {
- response, error := http.Get(ip + "/description.xml")
+ response, error := http.Get("http://" + ip + "/description.xml")
if response.StatusCode != 200 {
log.Println("Bridge status error: %d", response.StatusCode)
os.Exit(1)
+ } else if error != nil {
+ log.Println("Error: ", error)
+ os.Exit(1)
}
body, error := ioutil.ReadAll(response.Body)
+ defer response.Body.Close()
if error != nil {
log.Println("Error parsing bridge description XML")
os.Exit(1)
}
- data := make(map[string]string)
- error = xml.Unmarshal(body, data)
+ data := BridgeInfo{}
+ error = xml.Unmarshal(body, &data)
if error != nil {
log.Println("GetBridgeInfo error. Cannot parse data from description.")
+ log.Println(error)
}
- log.Println(data["FriendlyName"])
+ log.Println(data)
- return BridgeInfo{} // TODO: fill in
+ return data
}