Skip to content

Lingmou Product User Manual (Enterprise)

Download Lingmou Product User Manual Enterprise.docx (same bundle as zh)

Scan the QR code to install Rokid AI Enterprise

Rokid AI Enterprise QR

On the Enterprise login screen, request account credentials from your sales contact.

Glasses-side scrcpy helper

Runs scrcpy against the first 190… adb serial it finds (typically Glasses):

bash
#!/bin/bash
# scrcpy_auto.sh

# ANSI colors
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
BOLD='\033[1m'

START_TIME=$(date +%s)
COUNTER=0

DEVICE=$(adb devices | grep -E '^190[0-9a-zA-Z]+\s+device' | head -1 | awk '{print $1}')

if [ -z "$DEVICE" ]; then
    echo -e "${RED}Error: No matching device${NC}"
    exit 1
fi

  echo -e "${GREEN}     Device: $DEVICE${NC}     "
  echo -e "${YELLOW}${BOLD}======================================="

scrcpy -s $DEVICE

Phone-side scrcpy helper

Picks the first non-190 adb device—useful for tethering phones:

bash
#!/bin/bash

RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
BOLD='\033[1m'

START_TIME=$(date +%s)
COUNTER=0

DEVICE=$(adb devices \
  | grep -Ev '^190[0-9a-zA-Z:]*\s+device' \
  | grep 'device$' \
  | head -1 \
  | awk '{print $1}')


if [ -z "$DEVICE" ]; then
    echo -e "${RED}Error: No matching device${NC}"
    exit 1
fi

  echo -e "${GREEN}     Device: $DEVICE${NC}     "
  echo -e "${YELLOW}${BOLD}======================================="

scrcpy -s $DEVICE

Reboot glasses over adb

bash
#!/bin/bash

RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
BOLD='\033[1m'

START_TIME=$(date +%s)
COUNTER=0

DEVICE=$(adb devices | grep -E '^190[0-9a-zA-Z]+\s+device' | head -1 | awk '{print $1}')

if [ -z "$DEVICE" ]; then
    echo -e "${RED}Error: No matching device${NC}"
    exit 1
fi

  echo -e "${GREEN}     Reboot: $DEVICE${NC}     "
  echo -e "${YELLOW}${BOLD}======================================="

adb -s $DEVICE  reboot

Glasses CPU / memory monitor loop

bash
#!/bin/bash
# system_monitor_simple.sh

RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
BOLD='\033[1m'

START_TIME=$(date +%s)
COUNTER=0

while true; do
  DEVICE=$(adb devices | grep -E '^190[0-9a-zA-Z]+\s+device' | head -1 | awk '{print $1}')
  if [ -z "$DEVICE" ]; then
    DEVICE=$(adb devices | grep -E '^[0-9a-zA-Z:]+\s+device' | head -1 | awk '{print $1}')
  fi

  if [ -z "$DEVICE" ]; then
    echo -e "${RED}Error: No matching device${NC}"
    exit 1
  fi

  TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')

  COUNTER=$((COUNTER + 1))

  CURRENT_TIME=$(date +%s)
  ELAPSED_TIME=$((CURRENT_TIME - START_TIME))

  HOURS=$((ELAPSED_TIME / 3600))
  MINUTES=$(((ELAPSED_TIME % 3600) / 60))
  SECONDS=$((ELAPSED_TIME % 60))

  CPU_TEMP_RAW=$(adb -s "$DEVICE" shell "cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null || echo '0'")
  CPU_TEMP=$((CPU_TEMP_RAW / 1000))

  MEM_DATA=$(adb -s "$DEVICE" shell "
        mem_total=\$(grep MemTotal /proc/meminfo | awk '{print \$2}');
        mem_avail=\$(grep MemAvailable /proc/meminfo | awk '{print \$2}');
        if [ -n \"\$mem_total\" ] && [ -n \"\$mem_avail\" ]; then
            mem_usage=\$((100 - (mem_avail * 100 / mem_total)));
            echo \"\$(echo \"scale=1; \$mem_total/1024\" | bc) \$(echo \"scale=1; \$mem_avail/1024\" | bc) \$mem_usage\";
        else
            echo \"0 0 0\";
        fi
    ")

  read MEM_TOTAL_MB MEM_AVAIL_MB MEM_USAGE <<<"$MEM_DATA"

  CPU_FREQ=$(adb -s "$DEVICE" shell "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 2>/dev/null || echo '0'")
  CPU_FREQ_MHZ=$((CPU_FREQ / 1000))

  if [ $CPU_TEMP -ge 70 ]; then
    TEMP_COLOR=$RED
    TEMP_STATUS="[Critical]"
  elif [ $CPU_TEMP -ge 60 ]; then
    TEMP_COLOR=$RED
    TEMP_STATUS="[Hot]"
  elif [ $CPU_TEMP -ge 50 ]; then
    TEMP_COLOR=$YELLOW
    TEMP_STATUS="[Warm]"
  else
    TEMP_COLOR=$GREEN
    TEMP_STATUS="[OK]"
  fi

  if [ $(echo "$MEM_USAGE >= 90" | bc) -eq 1 ]; then
    MEM_COLOR=$RED
    MEM_STATUS="[Critical]"
  elif [ $(echo "$MEM_USAGE >= 80" | bc) -eq 1 ]; then
    MEM_COLOR=$RED
    MEM_STATUS="[High]"
  elif [ $(echo "$MEM_USAGE >= 60" | bc) -eq 1 ]; then
    MEM_COLOR=$YELLOW
    MEM_STATUS="[Elevated]"
  else
    MEM_COLOR=$GREEN
    MEM_STATUS="[OK]"
  fi

  echo -e "${PURPLE}${BOLD}======================================="
  echo -e "${PURPLE}${BOLD}     Monitor (${TIMESTAMP})     "

  echo -e "${GREEN}     Device: $DEVICE${NC}     "
  echo -e "${GREEN}     Tick #$COUNTER · ${HOURS}h ${MINUTES}m ${SECONDS}s"
  echo -e "${PURPLE}${BOLD}======================================="
  echo ""

  echo -e "${CYAN}${BOLD}[CPU]${NC}"
  echo -e "  Freq: ${GREEN}${CPU_FREQ_MHZ} MHz${NC}"
  echo -e "  Temp: ${TEMP_COLOR}${CPU_TEMP}°C ${TEMP_STATUS}${NC}"
  echo ""

  echo -e "${CYAN}${BOLD}[Memory]${NC}"
  echo -e "  Usage: ${MEM_COLOR}${MEM_USAGE}% ${MEM_STATUS}${NC}"
  echo -e "  Avail: ${GREEN}${MEM_AVAIL_MB} MB${NC}   Total: ${BLUE}${MEM_TOTAL_MB} MB${NC}"
  echo ""


  echo -e "${YELLOW}Ctrl+C to stop${NC}"
  echo ""

  sleep 1
done

Barcode readability vs distance

Sample 1Sample 2Sample 3Sample 4Sample 5Sample 6