Skip to content

Detailed software configuration and system setup guide.

┌─────────────────────────────────────────┐
│ Application Layer │
│ ┌──────────┐ ┌──────────┐ │
│ │ Web │ │ Mobile │ │
│ │ Console │ │ App │ │
│ └─────┬────┘ └────┬─────┘ │
├────────┼─────────────┼──────────────────┤
│ Service Layer │
│ ┌─────▼──────────────▼─────┐ │
│ │ API Gateway │ │
│ └──────┬───────────┬─────────┘ │
│ ┌──────▼───┐ ┌────▼────┐ │
│ │Mission │ │Data │ │
│ │Manager │ │Service │ │
│ └──────────┘ └─────────┘ │
├─────────────────────────────────────────┤
│ Core Layer │
│ ┌──────────┐ ┌──────────┐ │
│ │Navigation│ │Sensor │ │
│ │Control │ │Fusion │ │
│ └──────────┘ └──────────┘ │
├─────────────────────────────────────────┤
│ Driver Layer │
│ ┌──────────┐ ┌──────────┐ │
│ │Hardware │ │Comm │ │
│ │Driver │ │Driver │ │
│ └──────────┘ └──────────┘ │
└─────────────────────────────────────────┘

Location: ~/.jhusv/config.yaml

# System Basic Configuration
system:
name: "my-usv"
version: "1.0.0"
log_level: "INFO" # DEBUG, INFO, WARNING, ERROR
data_path: "~/jhusv/data"
# Network Configuration
network:
api:
host: "0.0.0.0"
port: 8080
ssl: false
websocket:
port: 8081
max_connections: 10
mqtt:
broker: "mqtt.jhusv.com"
port: 1883
use_tls: true
# Database Configuration
database:
type: "sqlite" # sqlite, postgresql, mysql
path: "~/jhusv/data/db.sqlite"
# host: "localhost" # for postgresql/mysql
# port: 5432
# username: "jhusv"
# password: "password"
# Logging Configuration
logging:
file: "~/jhusv/logs/system.log"
max_size: "100MB"
backup_count: 10
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"

Location: ~/.jhusv/devices/[device_id].yaml

device:
id: "USV-2024-001"
model: "JH-USV-300"
name: "Ocean Explorer 1"
# Hardware Specifications
specs:
length: 3.0 # meters
width: 1.2
max_speed: 10 # knots
max_payload: 50 # kg
battery_capacity: 20000 # mAh
# Navigation Configuration
navigation:
mode: "auto" # auto, manual, waypoint
gps:
type: "RTK" # Standard, RTK
update_rate: 10 # Hz
min_satellites: 6
imu:
update_rate: 200 # Hz
calibration_interval: 86400 # seconds
control:
pid_p: 1.0
pid_i: 0.1
pid_d: 0.05
max_turn_rate: 30 # degrees/second
# Sensor Configuration
sensors:
water_quality:
enabled: true
sample_rate: 1 # Hz
parameters: ["ph", "do", "temp", "conductivity"]
camera:
enabled: true
resolution: [1920, 1080]
fps: 30
encoding: "h264"
sonar:
enabled: false
range: 100 # meters
resolution: 0.1 # meters
# Safety Configuration
safety:
geofence:
enabled: true
type: "polygon" # polygon, circle
coordinates:
- [31.2304, 121.4737]
- [31.2354, 121.4787]
- [31.2404, 121.4837]
- [31.2354, 121.4887]
limits:
max_distance: 5000 # meters
max_depth: 50 # meters (if applicable)
min_battery: 20 # %
emergency:
low_battery_action: "return_home"
lost_connection_timeout: 60 # seconds
lost_connection_action: "hold_position"
Terminal window
jhusv web start

Access: http://localhost:8080

  1. Real-time Monitoring

    • Map display
    • Real-time data
    • Video stream
  2. Mission Management

    • Create missions
    • Mission scheduling
    • History records
  3. Data Analysis

    • Data visualization
    • Report generation
    • Data export
  4. System Settings

    • Device management
    • User management
    • System configuration

Endpoint: http://localhost:8080/api/v1

Authentication configuration:

api:
authentication:
type: "jwt" # jwt, basic, apikey
secret: "your-secret-key"
expiration: 86400 # seconds
rate_limit:
enabled: true
requests_per_minute: 60

Endpoint: ws://localhost:8081

websocket:
authentication: true
heartbeat_interval: 30 # seconds
max_message_size: 1048576 # bytes
storage:
local:
path: "~/jhusv/data"
# Data Retention Policy
retention:
logs: 30 # days
telemetry: 90
sensor_data: 180
videos: 30
# Auto Cleanup
auto_cleanup: true
cleanup_schedule: "0 2 * * *" # 2 AM daily
storage:
cloud:
enabled: true
provider: "aws" # aws, aliyun, tencent
aws:
region: "us-west-2"
bucket: "jhusv-data"
access_key: "YOUR_ACCESS_KEY"
secret_key: "YOUR_SECRET_KEY"
sync:
auto: true
interval: 3600 # seconds
compress: true
Terminal window
jhusv firmware check
Terminal window
jhusv firmware update

:::warning Note Do not disconnect or power off during firmware update. :::

Terminal window
jhusv firmware rollback
Terminal window
# Backup all configurations
jhusv backup create --output ~/backup.tar.gz
# Backup specific configuration only
jhusv backup create --config --output ~/config-backup.tar.gz
Terminal window
jhusv backup restore ~/backup.tar.gz