oaminstall.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // 监控对象
  2. // 秒寻科技
  3. // zt 2024-09-17
  4. package oam
  5. import (
  6. "encoding/binary"
  7. "ipsomc/module/bparam/bparammodel"
  8. "ipsomc/util"
  9. )
  10. type OamInstall struct {
  11. }
  12. const (
  13. ORDER_INSTALL_BUILD_ID = 0x0400
  14. ORDER_INSTALL_LAYER_ID = 0x0401
  15. ORDER_INSTALL_LAYER_BLOCK_ID = 0x0402
  16. ORDER_INSTALL_LAYER_BLOCK_DESC = 0x0403
  17. ORDER_INSTALL_LAYER_LOCATION_TYPE = 0x0404 //定位类型
  18. ORDER_INSTALL_LAYER_POSITION = 0x0405
  19. ORDER_INSTALL_LAYER_COORD_X = 0x0406
  20. ORDER_INSTALL_LAYER_COORD_Y = 0x0407
  21. ORDER_INSTALL_LAYER_COORD_Z = 0x0408
  22. )
  23. // 安装参数查询响应
  24. // dataModel:基站基本参数模型
  25. // wCommand:监控命令
  26. // dataList:数据队列
  27. // wLen:队列长度
  28. func (obj *OamInstall) OamInstallQueryResp(dataModel *bparammodel.BtsBaseParam, wCommand uint16, dataList []byte, wLen uint16) error {
  29. strTmp := ""
  30. switch wCommand {
  31. case ORDER_INSTALL_BUILD_ID:
  32. dataModel.BuildID = uint16(dataList[0])
  33. case ORDER_INSTALL_LAYER_ID:
  34. dataModel.LayerID = int16(binary.LittleEndian.Uint16(dataList[0:wLen]))
  35. case ORDER_INSTALL_LAYER_BLOCK_ID:
  36. dataModel.BlockID = uint16(dataList[0])
  37. case ORDER_INSTALL_LAYER_BLOCK_DESC:
  38. utf8Str, _ := util.CharTransGbToUtf8(dataList)
  39. strTmp = string(utf8Str)
  40. strTmp = util.RemoveNullChars(strTmp)
  41. dataModel.BlockDesc = strTmp
  42. case ORDER_INSTALL_LAYER_LOCATION_TYPE:
  43. dataModel.LocationType = uint8(dataList[0])
  44. case ORDER_INSTALL_LAYER_POSITION:
  45. utf8Str, _ := util.CharTransGbToUtf8(dataList)
  46. strTmp = string(utf8Str)
  47. strTmp = util.RemoveNullChars(strTmp)
  48. dataModel.Position = strTmp
  49. case ORDER_INSTALL_LAYER_COORD_X:
  50. dataModel.CoordX = int32(binary.LittleEndian.Uint32(dataList[0:wLen]))
  51. case ORDER_INSTALL_LAYER_COORD_Y:
  52. dataModel.CoordY = int32(binary.LittleEndian.Uint32(dataList[0:wLen]))
  53. case ORDER_INSTALL_LAYER_COORD_Z:
  54. dataModel.CoordZ = int32(binary.LittleEndian.Uint32(dataList[0:wLen]))
  55. default:
  56. break
  57. }
  58. return nil
  59. }