vd_server.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. )
  18. var vd1 = models.ValueDescriptor{Id: "Temperature", Created: 123, Modified: 123, Origin: 123, Name: "Temperature",
  19. Description: "test description", Min: -70, Max: 140, DefaultValue: 32, Formatting: "%f", Type:"Float32",
  20. Labels: []string{"temp", "room temp"}, UomLabel: "F", MediaType: clients.ContentTypeJSON, FloatEncoding: "eNotation"}
  21. var vd2 = models.ValueDescriptor{Id: "Humidity", Created: 123, Modified: 123, Origin: 123, Name: "Humidity",
  22. Description: "test description", Min: -70, Max: 140, DefaultValue: 32, Formatting: "%d", Type:"Uint64",
  23. Labels: []string{"humi", "room humidity"}, UomLabel: "F", MediaType: clients.ContentTypeJSON, FloatEncoding: "eNotation"}
  24. var vd3 = models.ValueDescriptor{Id: "b1", Name: "b1", Formatting: "%t", Type:"Bool", MediaType: clients.ContentTypeJSON}
  25. var vd4 = models.ValueDescriptor{Id: "i1", Name: "i1", Formatting: "%d", Type:"UINT8", MediaType: clients.ContentTypeJSON}
  26. var vd5 = models.ValueDescriptor{Id: "f1", Name: "f1", Formatting: "%f", Type:"FLOAT64", MediaType: clients.ContentTypeJSON}
  27. var vd6 = models.ValueDescriptor{Id: "s1", Name: "s1", Formatting: "%s", Type:"String", MediaType: clients.ContentTypeJSON}
  28. func main() {
  29. http.HandleFunc(clients.ApiValueDescriptorRoute, Hello)
  30. if e := http.ListenAndServe(":10080", nil); e != nil {
  31. log.Fatal(e)
  32. }
  33. }
  34. func Hello(w http.ResponseWriter, req *http.Request) {
  35. descriptor1 := vd1
  36. descriptor1.Description = desc1
  37. descriptor2 := vd2
  38. descriptor2.Description = desc2
  39. descriptor3 := vd3
  40. descriptor3.Description = desc3
  41. descriptor4 := vd4
  42. descriptor4.Description = desc4
  43. descriptor5 := vd5
  44. descriptor5.Description = desc5
  45. descriptor6 := vd6
  46. descriptor6.Description = desc6
  47. descriptors := []models.ValueDescriptor{descriptor1, descriptor2, descriptor3, descriptor4, descriptor5, descriptor6}
  48. data, err := json.Marshal(descriptors)
  49. if err != nil {
  50. fmt.Errorf("marshaling error: %s", err.Error())
  51. }
  52. if _, err := fmt.Fprintf(w, "%s", data); err != nil {
  53. log.Fatal(err)
  54. }
  55. //_, _ = w.Write(data)
  56. }