device.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. """
  2. 设备配置
  3. 设备编号、第三方平台接口等配置
  4. """
  5. # 设备配置
  6. DEVICE_CONFIG = {
  7. # 设备编号(必填,用于标识当前设备)
  8. 'device_id': '9c9a8000-3d13-11f1-9ffa-01f22beacf2b',
  9. # 设备名称
  10. 'device_name': '施工现场安全识别设备',
  11. # 设备安装位置
  12. 'location': '施工现场A区',
  13. # 项目编号
  14. 'project_id': 'PROJECT_001',
  15. # 项目密钥(用于接口鉴权)
  16. 'project_secret': '',
  17. # API Key(用于 Web 控制接口鉴权;留空则不鉴权,保持本地开发兼容)
  18. 'api_key': '',
  19. }
  20. # 第三方平台接口配置
  21. THIRD_PARTY_CONFIG = {
  22. 'enabled': True, # 启用第三方平台推送
  23. # 平台类型: 'custom', 'jtjai', 'huawei', 'aliyun'
  24. 'platform_type': 'custom',
  25. # 接口基础配置
  26. 'base_url': 'http://58.213.48.54:9999', # 人体分析平台
  27. # 'base_url': 'http://192.168.8.48:9090',
  28. 'api_version': 'v1',
  29. # 认证配置
  30. 'auth_type': 'none', # 可选: 'none', 'api_key', 'oauth2', 'basic'
  31. 'api_key': '',
  32. 'api_secret': '',
  33. # OAuth2 配置(当 auth_type='oauth2' 时使用)
  34. 'oauth2': {
  35. 'token_url': '',
  36. 'client_id': '',
  37. 'client_secret': '',
  38. 'scope': '',
  39. },
  40. # 接口路径配置
  41. 'endpoints': {
  42. # 批次信息上报接口(接收 batch_info.json)
  43. 'batch_report': '/api/v1/human-analysis/',
  44. # 心跳接口
  45. 'heartbeat': '/api/device/heartbeat',
  46. # 图片上传回调接口(可选,如果第三方平台需要单独通知)
  47. 'image_upload_callback': '/api/image/uploaded',
  48. },
  49. # 推送控制
  50. 'push_interval': 1.0, # 推送间隔(秒)
  51. 'retry_count': 3, # 重试次数
  52. 'retry_delay': 2.0, # 重试延迟(秒)
  53. 'timeout': 10, # 请求超时(秒)
  54. # 数据格式
  55. 'data_format': 'json', # 可选: 'json', 'form'
  56. # 是否包含图片文件(multipart/form-data 上传)
  57. 'include_images': False,
  58. }
  59. # 批次信息上报配置
  60. BATCH_REPORT_CONFIG = {
  61. # 上报时机
  62. 'report_on_complete': True, # 批次完成时上报
  63. 'report_realtime': False, # 实时上报(每保存一张图就上报)
  64. # 上报内容
  65. 'include_panorama_url': True, # 包含全景图 OSS URL
  66. 'include_ptz_urls': True, # 包含球机图 OSS URLs
  67. 'include_raw_images': False, # 是否包含原始图片数据(Base64)
  68. # 本地保留(已迁移到 STORAGE_CONFIG,此处保留仅作兼容)
  69. 'keep_local_copy': False, # 上报成功后是否删除本地副本(False=删除,省磁盘)
  70. 'local_retention_days': 7, # 本地保留天数
  71. }
  72. # 本地图片存储与清理配置
  73. STORAGE_CONFIG = {
  74. 'captures': {
  75. # 抓拍图片保存根目录(实际会按 group_id 创建子目录)
  76. 'base_dir': 'data/captures',
  77. # 第三方平台上报成功后是否保留本地图片
  78. 'keep_local_copy': False,
  79. # 本地保留天数,超过此时间的文件会被定期清理
  80. 'retention_days': 1,
  81. # 每组目录最大文件数,超过时按修改时间删除最旧的
  82. 'max_files': 2000,
  83. # 清理线程执行间隔(秒)
  84. 'cleanup_interval_seconds': 3600,
  85. },
  86. 'previews': {
  87. # 预览图保存根目录
  88. 'base_dir': 'data/previews',
  89. # 本地保留天数
  90. 'retention_days': 1,
  91. # 每组目录最大文件数
  92. 'max_files': 1000,
  93. # 清理线程执行间隔(秒)
  94. 'cleanup_interval_seconds': 3600,
  95. },
  96. }
  97. # 配对图片保存配置
  98. PAIRED_IMAGE_CONFIG = {
  99. # 本地存储目录
  100. 'base_dir': '/home/admin/dsh/paired_images',
  101. # 清理策略
  102. 'cleanup_enabled': True, # 是否启用自动清理
  103. 'max_batches': 10, # 最大保留批次数量
  104. 'retention_days': 1, # 保留天数(与 max_batches 互斥,优先按数量清理)
  105. # 时间窗口(秒):同一窗口内的检测归为一批
  106. 'time_window': 5.0,
  107. }