vd_server.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/edgexfoundry/go-mod-core-contracts/clients"
  6. "github.com/edgexfoundry/go-mod-core-contracts/models"
  7. "log"
  8. "net/http"
  9. )
  10. const (
  11. desc1 = "Temperature descriptor1"
  12. desc2 = "Humidity descriptor2"
  13. desc3 = "Boolean descriptor"
  14. desc4 = "Int descriptor"
  15. desc5 = "Float descriptor"
  16. desc6 = "String descriptor"
  17. desc7 = "UInt64 descriptor"
  18. )
  19. var vd1 = models.ValueDescriptor{Id: "Temperature", Created: 123, Modified: 123, Origin: 123, Name: "Temperature",
  20. Description: "test description", Min: -70, Max: 140, DefaultValue: 32, Formatting: "%f", Type:"Float32",
  21. Labels: []string{"temp", "room temp"}, UomLabel: "F", MediaType: clients.ContentTypeJSON, FloatEncoding: "eNotation"}
  22. var vd2 = models.ValueDescriptor{Id: "Humidity", Created: 123, Modified: 123, Origin: 123, Name: "Humidity",
  23. Description: "test description", Min: -70, Max: 140, DefaultValue: 32, Formatting: "%d", Type:"Uint64",
  24. Labels: []string{"humi", "room humidity"}, UomLabel: "F", MediaType: clients.ContentTypeJSON, FloatEncoding: "eNotation"}
  25. var vd3 = models.ValueDescriptor{Id: "b1", Name: "b1", Formatting: "%t", Type:"Bool", MediaType: clients.ContentTypeJSON}
  26. var vd4 = models.ValueDescriptor{Id: "i1", Name: "i1", Formatting: "%d", Type:"UINT8", MediaType: clients.ContentTypeJSON}
  27. var vd5 = models.ValueDescriptor{Id: "f1", Name: "f1", Formatting: "%f", Type:"FLOAT64", MediaType: clients.ContentTypeJSON}
  28. var vd6 = models.ValueDescriptor{Id: "s1", Name: "s1", Formatting: "%s", Type:"String", MediaType: clients.ContentTypeJSON}
  29. var vd7 = models.ValueDescriptor{Id: "ui64", Name: "ui64", Formatting: "%d", Type:"UINT64", MediaType: clients.ContentTypeJSON}
  30. func main() {
  31. http.HandleFunc(clients.ApiValueDescriptorRoute, Hello)
  32. if e := http.ListenAndServe(":48080", nil); e != nil {
  33. log.Fatal(e)
  34. }
  35. }
  36. func Hello(w http.ResponseWriter, req *http.Request) {
  37. descriptor1 := vd1
  38. descriptor1.Description = desc1
  39. descriptor2 := vd2
  40. descriptor2.Description = desc2
  41. descriptor3 := vd3
  42. descriptor3.Description = desc3
  43. descriptor4 := vd4
  44. descriptor4.Description = desc4
  45. descriptor5 := vd5
  46. descriptor5.Description = desc5
  47. descriptor6 := vd6
  48. descriptor6.Description = desc6
  49. descriptor7 := vd7
  50. descriptor7.Description = desc7
  51. descriptors := []models.ValueDescriptor{descriptor1, descriptor2, descriptor3, descriptor4, descriptor5, descriptor6, descriptor7}
  52. data, err := json.Marshal(descriptors)
  53. if err != nil {
  54. fmt.Errorf("marshaling error: %s", err.Error())
  55. }
  56. if _, err := fmt.Fprintf(w, "%s", data); err != nil {
  57. log.Fatal(err)
  58. }
  59. //_, _ = w.Write(data)
  60. }