/*
 * @Author: chris
 * @Date: 2025-07-31 10:33:06
 * @LastEditors: chris
 * @LastEditTime: 2025-08-05 14:57:06
 */
/**
 * 生成指定数量的设备模拟数据
 * @param {number} count - 要生成的数据数量
 * @returns {Array} - 生成的设备数据数组
 */
function generateDeviceData(count) {
  // 定义可能的设备类型
  const deviceTypes = [
    "irrigation", // 灌溉设备
    "worm", // 病虫害监测器
    "greenhouse", // 温室控制器
    "weather", // 气象站
    "soil", // 土壤监测器
  ];

  // 创建结果数组
  const result = [];

  // 生成指定数量的数据
  for (let i = 0; i < count; i++) {
    // 生成设备地址（8位数字）
    const deviceAddr = (10000000 + i).toString();

    // 生成groupId (32位随机字符串)
    const groupId = generateRandomString(32);

    // 随机选择一个设备类型
    const deviceType =
      deviceTypes[Math.floor(Math.random() * deviceTypes.length)];

    // 随机生成经纬度（基于基础值进行微小变动）
    const baseLng = 115.95;
    const baseLat = 3.06;
    const devicelng = parseFloat((baseLng + Math.random() * 0.15).toFixed(5));
    const devicelat = parseFloat((baseLat + Math.random() * 0.15).toFixed(6));

    // 随机决定设备是否启用（1: 启用, 0: 禁用）
    const deviceEnabled = Math.random() > 0.2 ? 1 : 0; // 80%的概率启用

    // 生成设备名称（使用设备地址）
    const deviceName = deviceAddr;

    // 创建设备数据对象
    const device = {
      deviceAddr,
      groupId,
      deviceType,
      deviceEnabled,
      deviceName,
      devicelng,
      devicelat,
      deviceIccId: null,
      correlationDeviceAddr: null,
      correlationTime: null,
      saveDateInterval: null,
      offlineInterval: null,
      httpUrl: null,
      rtmpUrl: null,
      city: null,
      createTime: null,
      iccIdData: null,
    };

    result.push(device);
  }

  return result;
}

/**
 * 生成指定长度的随机字符串
 * @param {number} length - 字符串长度
 * @returns {string} - 随机字符串
 */
function generateRandomString(length) {
  const chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  let result = "";
  for (let i = 0; i < length; i++) {
    result += chars.charAt(Math.floor(Math.random() * chars.length));
  }
  return result;
}

// 导出生成的设备数据（例如生成20条）
export const deviceData = generateDeviceData(10);
