func GetDeviceCurrentStatus(device *models.Device, config *productconfig.ProductConfig, urlparams martini.Params, r render.Render) { server.Log.Printf("ACTION GetDeviceCurrentStatus, identifier:: %v", device.DeviceIdentifier) statusargs := rpcs.ArgsGetStatus{ Id: uint64(device.ID), } statusreply := rpcs.ReplyGetStatus{} err := server.RPCCallByName("controller", "Controller.GetStatus", statusargs, &statusreply) if err != nil { server.Log.Errorf("get devie status error: %v", err) r.JSON(http.StatusOK, renderError(ErrSystemFault, err)) return } status, err := config.StatusToMap(statusreply.Status) if err != nil { r.JSON(http.StatusOK, renderError(ErrWrongRequestFormat, err)) return } result := DeviceStatusResponse{ Data: status, } r.JSON(http.StatusOK, result) return }