ฉันยุ่งกับแอปพลิเคชันประเภท IoT ที่ต้องใช้ฮาร์ดแวร์ทางกายภาพที่เชื่อมต่อผ่านพอร์ตอนุกรม เราได้เลือกใช้สถาปัตยกรรม Azure IoT Edge เพื่อปรับใช้แอปพลิเคชันบนพีซีที่มีอยู่ในองค์กร สิ่งนี้ช่วยให้วงจร DevOps ของเรา
ในการใช้ Azure IoT Edge นั้น แอปพลิเคชันของเราต้องบรรจุคอนเทนเนอร์ ดังนั้นการเปิดเผยพอร์ตอนุกรมจึงค่อนข้างท้าทาย พีซีเป็นแบบ 64 บิตและใช้งาน Ubuntu 20.04 และมีพอร์ต USB, พอร์ตอนุกรมและ LAN หลายพอร์ตที่เราสามารถเสียบอุปกรณ์ต่างๆ ได้
เราได้ปฏิบัติตามนี้มาก บทช่วยสอนจาก Losant เพื่อตั้งค่านี้
ตัวเลือกการสร้างคอนเทนเนอร์ของเรามีลักษณะดังนี้:
{
"HostConfig": {
"การรวมพอร์ต": {
"80/tcp": [
{
"โฮสต์พอร์ต": "5000"
}
]
},
"สิทธิพิเศษ": จริง
"วอลุ่ม": {
"/ผู้พัฒนา": {}
}
}
}
เราจับคู่แอปพลิเคชันกับพอร์ต 80 ของแอปพลิเคชันของเรากับพอร์ต 5000 บนพีซี และเราตั้งค่าแท็ก Volumes และ Privileged ตามที่แนะนำในลิงก์บทช่วยสอนด้านบน
ตัวอุปกรณ์เชื่อมต่อผ่าน USB ดังนั้นเราจึงต้องติดตั้งไดรเวอร์บน Ubuntu 20.04 จาก เว็บไซต์ ส.อ.ท.
คำถามของฉัน:
ในบางกรณี แอปพลิเคชันของเราจะพบพอร์ตอนุกรม (tty/USB0) แต่ส่วนใหญ่จะไม่พบ หากเราเปิดเครื่องพีซีด้วยอุปกรณ์ที่เชื่อมต่ออยู่ แอปพลิเคชันมักจะพบอุปกรณ์นั้น เราจะเปลี่ยนการตั้งค่าพีซี / การตั้งค่านักเทียบท่า / การตั้งค่าแอปพลิเคชันเพื่อให้ค้นหาอุปกรณ์ได้ตลอดเวลาได้อย่างไร
หมายเหตุ: นี่เป็นการทำซ้ำของ คำถามนี้ ใน StackOverflow เนื่องจากฉันไม่แน่ใจว่าคำถามเป็นของที่นั่นหรือที่นี่