UWB-webapp/pages/api/serial/ports.ts
martin fa75faa69d Initial commit: Next.js UWB positioning webapp
- Complete Next.js 14 app with TypeScript and Tailwind CSS
- ESP32 serial communication via API routes
- Real-time UWB positioning visualization
- Interactive 2D warehouse mapping with Canvas
- Device connection interface with auto-detection
- AT command parsing for UWBHelper library integration
- Clean project structure with comprehensive documentation
2025-08-20 15:14:34 +02:00

37 lines
No EOL
1.1 KiB
TypeScript

import { NextApiRequest, NextApiResponse } from 'next'
import { SerialPort } from 'serialport'
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
if (req.method !== 'GET') {
return res.status(405).json({ message: 'Method not allowed' })
}
try {
const ports = await SerialPort.list()
// Filter for ESP32 devices (common VID/PID patterns)
const esp32Ports = ports.filter(port =>
port.vendorId === '10C4' || // Silicon Labs CP210x
port.vendorId === '1A86' || // QinHeng Electronics CH340
port.vendorId === '0403' || // FTDI
port.manufacturer?.includes('Silicon Labs') ||
port.manufacturer?.includes('FTDI') ||
port.productId === 'EA60' // CP2102
)
res.status(200).json({
allPorts: ports,
esp32Ports,
count: esp32Ports.length
})
} catch (error) {
console.error('Error listing serial ports:', error)
res.status(500).json({
message: 'Failed to list serial ports',
error: error instanceof Error ? error.message : 'Unknown error'
})
}
}