coap_provider.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package main
  2. import (
  3. "sparrow/pkg/rpcs"
  4. "sparrow/pkg/server"
  5. )
  6. type CoAPProvider struct {
  7. }
  8. func NewCoAPProvider() *CoAPProvider {
  9. return &CoAPProvider{}
  10. }
  11. func (mp *CoAPProvider) ValidateDeviceToken(deviceid uint64, token []byte) error {
  12. args := rpcs.ArgsValidateDeviceAccessToken{
  13. Id: deviceid,
  14. AccessToken: token,
  15. }
  16. reply := rpcs.ReplyValidateDeviceAccessToken{}
  17. err := server.RPCCallByName("devicemanager", "DeviceManager.ValidateDeviceAccessToken", args, &reply)
  18. if err != nil {
  19. server.Log.Errorf("validate device token error. deviceid : %v, token : %v, error: %v", deviceid, token, err)
  20. return err
  21. }
  22. return nil
  23. }
  24. func (mp *CoAPProvider) OnDeviceOnline(args rpcs.ArgsGetOnline) error {
  25. reply := rpcs.ReplyGetOnline{}
  26. err := server.RPCCallByName("devicemanager", "DeviceManager.GetOnline", args, &reply)
  27. if err != nil {
  28. server.Log.Errorf("device online error. args: %v, error: %v", args, err)
  29. }
  30. return err
  31. }
  32. func (mp *CoAPProvider) OnDeviceOffline(deviceid uint64) error {
  33. args := rpcs.ArgsGetOffline{
  34. Id: deviceid,
  35. }
  36. reply := rpcs.ReplyGetOffline{}
  37. err := server.RPCCallByName("devicemanager", "DeviceManager.GetOffline", args, &reply)
  38. if err != nil {
  39. server.Log.Errorf("device offline error. deviceid: %v, error: %v", deviceid, err)
  40. }
  41. return err
  42. }
  43. func (mp *CoAPProvider) OnDeviceHeartBeat(deviceid uint64) error {
  44. args := rpcs.ArgsDeviceId{
  45. Id: deviceid,
  46. }
  47. reply := rpcs.ReplyHeartBeat{}
  48. err := server.RPCCallByName("devicemanager", "DeviceManager.HeartBeat", args, &reply)
  49. if err != nil {
  50. server.Log.Errorf("device heartbeat error. deviceid: %v, error: %v", deviceid, err)
  51. }
  52. return err
  53. }
  54. func (mp *CoAPProvider) OnDeviceMessage(deviceid uint64, msgtype string, message []byte) {
  55. server.Log.Infof("device {%v} message {%v} : %x", deviceid, msgtype, message)
  56. }