protocolDb = {
return [
{id: "ble", name: "Bluetooth LE", category: "Short-range", color: "#3498DB",
range: 25, bandwidth: 35, power: 85, latency: 75, security: 70, cost: 90,
rangeText: "10-100m", bandwidthText: "125 kbps - 2 Mbps"},
{id: "wifi", name: "Wi-Fi", category: "Short-range", color: "#E74C3C",
range: 25, bandwidth: 95, power: 20, latency: 90, security: 85, cost: 75,
rangeText: "10-100m", bandwidthText: "11 Mbps - 1 Gbps"},
{id: "zigbee", name: "Zigbee", category: "Mesh", color: "#27AE60",
range: 30, bandwidth: 15, power: 80, latency: 60, security: 70, cost: 85,
rangeText: "10-100m (mesh)", bandwidthText: "250 kbps"},
{id: "thread", name: "Thread", category: "Mesh", color: "#9B59B6",
range: 30, bandwidth: 15, power: 80, latency: 65, security: 80, cost: 80,
rangeText: "10-100m (mesh)", bandwidthText: "250 kbps"},
{id: "lorawan", name: "LoRaWAN", category: "LPWAN", color: "#F39C12",
range: 95, bandwidth: 5, power: 90, latency: 15, security: 75, cost: 70,
rangeText: "2-15 km", bandwidthText: "0.3-50 kbps"},
{id: "nbiot", name: "NB-IoT", category: "Cellular", color: "#1ABC9C",
range: 90, bandwidth: 20, power: 70, latency: 20, security: 90, cost: 55,
rangeText: "1-35 km", bandwidthText: "20-250 kbps"},
{id: "ltem", name: "LTE-M", category: "Cellular", color: "#E67E22",
range: 85, bandwidth: 45, power: 55, latency: 70, security: 90, cost: 50,
rangeText: "1-35 km", bandwidthText: "375 kbps - 1 Mbps"},
{id: "zwave", name: "Z-Wave", category: "Mesh", color: "#34495E",
range: 35, bandwidth: 10, power: 75, latency: 50, security: 75, cost: 65,
rangeText: "30-100m", bandwidthText: "9.6-100 kbps"},
{id: "sigfox", name: "Sigfox", category: "LPWAN", color: "#8E44AD",
range: 98, bandwidth: 2, power: 92, latency: 5, security: 60, cost: 80,
rangeText: "3-50 km", bandwidthText: "100-600 bps"}
];
}
scenarios = {
return [
{name: "Custom Selection", protocols: [], description: "Select your own protocols"},
{name: "Smart Home Battle", protocols: ["zigbee", "thread", "ble", "zwave"], description: "Popular smart home protocols"},
{name: "LPWAN Showdown", protocols: ["lorawan", "nbiot", "sigfox", "ltem"], description: "Long-range low-power options"},
{name: "Range vs Speed", protocols: ["wifi", "ble", "lorawan", "nbiot"], description: "Classic distance vs data rate tradeoff"},
{name: "Battery Optimized", protocols: ["ble", "lorawan", "sigfox", "zigbee"], description: "Best for battery-powered devices"}
];
}
metrics = ["range", "bandwidth", "power", "latency", "security", "cost"]
metricLabels = {
return {
range: "Range",
bandwidth: "Bandwidth",
power: "Power Efficiency",
latency: "Low Latency",
security: "Security",
cost: "Cost Efficiency"
};
}