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
This commit is contained in:
commit
fa75faa69d
20 changed files with 7600 additions and 0 deletions
37
pages/api/serial/ports.ts
Normal file
37
pages/api/serial/ports.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
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'
|
||||
})
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue