vd_server.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. desc8 = "Bool array descriptor"
  19. desc9 = "Int array descriptor"
  20. desc10 = "Float array descriptor"
  21. )
  22. var vd1 = models.ValueDescriptor{Id: "Temperature", Created: 123, Modified: 123, Origin: 123, Name: "Temperature",
  23. Description: "test description", Min: -70, Max: 140, DefaultValue: 32, Formatting: "%f", Type: "Float32",
  24. Labels: []string{"temp", "room temp"}, UomLabel: "F", MediaType: clients.ContentTypeJSON, FloatEncoding: "eNotation"}
  25. var vd2 = models.ValueDescriptor{Id: "Humidity", Created: 123, Modified: 123, Origin: 123, Name: "Humidity",
  26. Description: "test description", Min: -70, Max: 140, DefaultValue: 32, Formatting: "%d", Type: "Uint64",
  27. Labels: []string{"humi", "room humidity"}, UomLabel: "F", MediaType: clients.ContentTypeJSON, FloatEncoding: "eNotation"}
  28. var vd3 = models.ValueDescriptor{Id: "b1", Name: "b1", Formatting: "%t", Type: "Bool", MediaType: clients.ContentTypeJSON}
  29. var vd4 = models.ValueDescriptor{Id: "i1", Name: "i1", Formatting: "%d", Type: "UINT8", MediaType: clients.ContentTypeJSON}
  30. var vd5 = models.ValueDescriptor{Id: "f1", Name: "f1", Formatting: "%f", Type: "FLOAT64", MediaType: clients.ContentTypeJSON}
  31. var vd6 = models.ValueDescriptor{Id: "s1", Name: "s1", Formatting: "%s", Type: "String", MediaType: clients.ContentTypeJSON}
  32. var vd7 = models.ValueDescriptor{Id: "ui64", Name: "ui64", Formatting: "%d", Type: "UINT64", MediaType: clients.ContentTypeJSON}
  33. var vd8 = models.ValueDescriptor{Id: "ba", Name: "ba", Formatting: "%s", Type: "BOOLARRAY", MediaType: clients.ContentTypeJSON}
  34. var vd9 = models.ValueDescriptor{Id: "ia", Name: "ia", Formatting: "%s", Type: "INT32ARRAY", MediaType: clients.ContentTypeJSON}
  35. var vd10 = models.ValueDescriptor{Id: "fa", Name: "fa", Formatting: "%s", Type: "FLOAT64ARRAY", MediaType: clients.ContentTypeJSON}
  36. func main() {
  37. http.HandleFunc(clients.ApiValueDescriptorRoute, Hello)
  38. if e := http.ListenAndServe(":48080", nil); e != nil {
  39. log.Fatal(e)
  40. }
  41. }
  42. func Hello(w http.ResponseWriter, req *http.Request) {
  43. descriptor1 := vd1
  44. descriptor1.Description = desc1
  45. descriptor2 := vd2
  46. descriptor2.Description = desc2
  47. descriptor3 := vd3
  48. descriptor3.Description = desc3
  49. descriptor4 := vd4
  50. descriptor4.Description = desc4
  51. descriptor5 := vd5
  52. descriptor5.Description = desc5
  53. descriptor6 := vd6
  54. descriptor6.Description = desc6
  55. descriptor7 := vd7
  56. descriptor7.Description = desc7
  57. descriptor8 := vd8
  58. descriptor8.Description = desc8
  59. descriptor9 := vd9
  60. descriptor9.Description = desc9
  61. descriptor10 := vd10
  62. descriptor10.Description = desc10
  63. descriptors := []models.ValueDescriptor{descriptor1, descriptor2, descriptor3, descriptor4, descriptor5, descriptor6, descriptor7, descriptor8, descriptor9, descriptor10}
  64. data, err := json.Marshal(descriptors)
  65. if err != nil {
  66. fmt.Errorf("marshaling error: %s", err.Error())
  67. }
  68. if _, err := fmt.Fprintf(w, "%s", data); err != nil {
  69. log.Fatal(err)
  70. }
  71. //_, _ = w.Write(data)
  72. }