ShadowWares Forum

Programming (Applications) => LabVIEW => ข้อความที่เริ่มโดย: วิสิทธิ์ แผ้วกระโทก ที่ กรกฎาคม 29, 2013, 04:49:56 pm



หัวข้อ: Labview vision มีปัญหาต่อกล้อง (webcam) 2 กล้องพร้อมก้ัน เกิดปํญหา Timeout
เริ่มหัวข้อโดย: วิสิทธิ์ แผ้วกระโทก ที่ กรกฎาคม 29, 2013, 04:49:56 pm
ผมใช้กล้อง Webcam Oker 177 ต่อเข้ากับ Port USB มีอยู่ 2 กล้อง ผมทำการดึงภาพเข้ามาพร้อมกัน มาประมวลผลใน while loop ปัญหาที่เจอ ก็คือ

ถ้ามันจะได้ มันก็ได้ตอนเปิดโปรแกรมเลย แต่ ถ้ามันไม่ได้ มันก็ไม่ได้ จะเกิดปัญหาว่า Timeout กล้องใด กล้องหนึ่ง ผมเข้าใจว่า ขึ้นอยู่กับว่ากล้องไหน ดึงภาพมาได้ก่อน หน่ะครับ

อาการมัน ได้บ้าง ไม่ได้บ้าง แต่จะเป็นแค่ตอนเปิดโปรแกรมที่เขียนขึ้นมาเท่านั้น ถ้าได้ ก็ได้เลย แต่ ถ้าไม่ได้ ผมก็จะรีสตาร์ทเครื่องคอมพิวเตอร์ใหม่ ผมลองทดสอบโปรแกรมง่ายๆ มันก็มีปัญหาเหมือนกัน แค่ เป็นปัญหาตอนดึงภาพนี่แหละครับ




ผมใช้ Labview 2011 และชุด Vision Developement 2011 รวมทั้ง ImaqDx ก็เวอร์ชั่น 2011 เหมือนกัน

พอจะแนะนำสมมุติฐานที่เป็นไปได้บ้างไหมครับ ว่าต้องลองแก้ไขอย่างไร

ตอนแรก ผมคิดว่า RAM คงไม่พอ แต่ ลองเปลี่ยนเครื่องแล้ว ก็เป็นปัญหาเดิม ลองเปลี่ยนจากเสียบ port USB ตรงๆ มาเสียบที่ HUB USB ที่มี Power แบบต่อแยก เพิ่ม ก็ยังเจอปํญหาเดิม ลองๆ ค้นดูในอินเตอร์เนต ก็ดูเหมือนจะยังแก้กันไม่ได้

รบกวนด้วยครับ



หัวข้อ: Re: Labview vision มีปัญหาต่อกล้อง (webcam) 2 กล้องพร้อมก้ัน เกิดปํญหา Timeout
เริ่มหัวข้อโดย: ShadowMan ที่ กรกฎาคม 29, 2013, 07:34:50 pm
ปัญหาดังกล่าว ผมเจออยู่เป็นประจำ และมากกว่า 98% แก้ได้โดยวิธีการเดียวกัน นั่นคือการใช้ Thread + Synchronization Techniques

การเชื่อมต่อไปยัง Device มากกว่า 1 ตัวควรแยก Loop หรือ Thread และต้องใช้การ Synchronization เข้ามาช่วย เช่น Event, Semaphore หรือ Mutex ครับ ในกรณีที่ต้องการความเป็น Real Time สูงๆ  ควรใช้ Queue (Queue ของ Frame) เข้ามาช่วย และเพื่อให้ภาพจากกล้องทั้งสองตัวไม่เหลื่อมล้ำกัน จะต้องทำการ Tag ลำดับของภาพแต่ละเฟรมด้วย

การเชื่อมต่อไปยัง Device ใดๆ ไม่ได้การันตีว่า การเชื่อมต่อนั้นจะสำเร็จ 100% มีความจำเป็นต้องตรวจสอบ return value เพื่อให้โปรแกรมทำการ เชื่อมต่อใหม่ ครั้งที่ 2 3 4 เมื่อถึงครั้งที่ N แล้วถ้ายังไม่ได้ นั่นอาจจะสรุปได้ว่าปัญหาเกิดจากระบบ ไม่ใช่ code ของเรา

ปัญหาดังกล่าว ไม่ได้เป็นเฉพาะใน LabVIEW แต่เป็นในระบบคอมพิวเตอร์ในระดับ OS


หัวข้อ: Re: Labview vision มีปัญหาต่อกล้อง (webcam) 2 กล้องพร้อมก้ัน เกิดปํญหา Timeout
เริ่มหัวข้อโดย: วิสิทธิ์ แผ้วกระโทก ที่ กรกฎาคม 29, 2013, 08:41:06 pm
เดี๋ยวจะลองหาวิธี Loop รอจนกว่าจะเชื่อมต่อสำเร็จดูครับ น่าจะง่าย สำหรับผม

ขอบคุณมากครับ  [emo=azn]


หัวข้อ: Re: Labview vision มีปัญหาต่อกล้อง (webcam) 2 กล้องพร้อมก้ัน เกิดปํญหา Timeout
เริ่มหัวข้อโดย: ShadowMan ที่ กรกฎาคม 30, 2013, 08:38:49 am
ตรวจสอบ return value/message นั่นเป็นสิ่งที่จำเป็นใน application ลักษณะนี้ครับ

หลักการง่ายๆ ฟังก์ชั่นใดๆ ที่มี return value นั่นเป็นตัวบ่งชี้ว่า ผลของการทำงานของมันอาจจะไม่สำเร็จ หรือให้ผลลัพธ์ออกมามากกว่า 1 รูปแบบเสมอ ซึ่งยากที่จะคาดเดาว่าผลที่คืนมานั้นเป็นสิ่งที่เราอยากได้จริงหรือเปล่า จึงมีความจำเป็นต้องตรวจสอบอย่างหลีกเลี่ยงไม่ได้