টিটিআই * পোর্ট দ্বারা নয়, ডিভাইস আইডি দিয়ে কোনও ইউএসবি-সিরিয়াল পোর্ট অ্যাক্সেস করার কোনও উপায় আছে কি?


17

লিনাক্সে ইউএসবি-সিরিয়াল ডিভাইসগুলি এর সিরিয়াল পোর্টটিতে দুটি উপকরণ তৈরি করে:
/dev/tty*এবং/dev/serial/by-id/<my_usb_device_id>

ইউএসবি ডিভাইস আইডি দ্বারা কোনও সিরিয়াল পোর্ট শনাক্ত করার জন্য কি ওএসএক্স-এ কোনও উপায় আছে? সিস্টেম প্রোফাইলার এবং ব্যবহার উভয়ই ioreg -p IOUSBআমি আইডিটি দেখতে পাচ্ছি, তবে এটি আইডিটি ব্যবহার করে আমার সংযোগের আরও বেশি ঘনিষ্ঠ হয় না।

আমরা বেশ কয়েকটি হার্ডওয়্যার বিকাশ করছি এবং প্রতিবারই যখন আমি কোনও আলাদা ডিভাইস সংযোগ করি তখনই টেস্টিং সফ্টওয়্যারটির সিরিয়াল পোর্ট কনফিগারেশন যাচাই করা দরকার, কারণ ওএসএক্সে tty.*পোর্টের নামটি আমার কম্পিউটারের বন্দরের উপর নির্ভর করে, ডিভাইসে নেই লিনাক্স চালানো ছেলেরা খুশিতে /dev/serial/by-id/<my_usb_device_id>পোর্টটি বিভিন্ন ডিভাইসের মধ্যে স্বয়ংক্রিয়ভাবে আলাদা করতে ব্যবহার করছে ।

উত্তর:


2

একটি FTDI সেতুর জন্য আমি, সিরিয়াল নম্বরটি ইতিমধ্যেই ডিভাইসের নাম প্রদর্শিত হবে: মনে হচ্ছে যে /dev/serial/by-id/usb-FTDI_FT231X_USB_UART_DA00AG57-if00-port0(কিছু সংশ্লিষ্ট /dev/ttyUSBxলিনাক্স), এবং হিসাবে /dev/cu.usbserial-DA00AG57এবং /dev/tty.usbserial-DA00AG57MacOS উপর। (দেখুন /programming//a/8632603/4896937 মধ্যে পার্থক্য জন্য tty.*এবং cu.*।)

দুর্ভাগ্যক্রমে, প্রোলিফিক ব্রিজের জন্য, আপনার মতো একটি সমস্যা এখনও প্রযোজ্য: একটি ডিভাইস হিসাবে প্রদর্শিত হচ্ছে /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0(যার মধ্যে সিরিয়াল নম্বর নেই) কেবলমাত্র /dev/cu.usbserialএবং /dev/tty.usbserialম্যাকোজে রয়েছে (এমনকি সিস্টেম প্রোফাইলারও এটির জন্য একটি সিরিয়াল নম্বর দেয় না)। আমার যদি দ্বিতীয়টি প্লাগ ইন করা হয় তবে কী ঘটবে কে জানে।

হতে পারে সেখানে আরও সাধারণ উত্তর পাওয়া গেছে যা বিক্রেতা-স্বাধীন, তবে সতর্ক হতে হবে কিছু ডিভাইস হয়তো সিরিয়াল নম্বরটি রিপোর্ট না করে।


আমার জন্য তারা / দেবদেবী / অনুগ্রহপূর্বক এফডি 121 এবং / দেবদেবী / অনুগ্রহ করে .usbmodemFA131 হিসাবে উপস্থিত হবে। নম্বরটি সরাসরি আমার ল্যাপটপের ইউএসবি পোর্টের উপর নির্ভর করে। সিস্টেম তথ্য তাদের ফার্মওয়্যার দ্বারা সেট করা ডিভাইসগুলির জন্য সঠিক আইডি দেখায়। দুটি সিরিয়ালই এসটিএম 32 এফ 2 / এফ 4 প্রসেসর দ্বারা নির্মিত।
জোহান

2

আসলে, আপনি ডিভাইস আইডি / সিরিয়াল নম্বর থেকে সিরিয়াল পোর্ট নাম ব্যবহার করে ম্যাপিংটি সন্ধান করতে পারবেন ioreg। এই আদেশটি ব্যবহার করে দেখুন:

ioreg -r -c IOUSBHostDevice -l

এটি সমস্ত ইউএসবি হোস্ট ডিভাইস মুদ্রণ করবে এবং এটি প্রতিটি ডিভাইসের সাবট্রি থেকে সমস্ত বৈশিষ্ট্য মুদ্রণ করবে। আপনার ডিভাইসটির আইডি বা সিরিয়াল নম্বরটির ভিত্তিতে শীর্ষ স্তরে আপনার ডিভাইসটি সন্ধান করতে সক্ষম হওয়া উচিত। একবার এটি সন্ধান করার পরে, আপনাকে এর সাবট্রি দিয়ে স্ক্যান করতে সক্ষম হতে হবে এবং শেষ পর্যন্ত শ্রেণীর কোনও বিষয় খুঁজে পাওয়া উচিত IOSerialBSDClient। এটিতে IODialinDeviceআপনি যা চান সেই সম্পত্তি থাকবে ।

আপনি যদি এই প্রোগ্রামটিমেটিকভাবে করতে চান তবে আপনি কমান্ডটিতে -aবিকল্পটি যুক্ত করতে পারেন ioregযা উপরের আউটপুটটির একটি plist সংস্করণ আউটপুট করবে। তারপরে আপনি এটি যেমন একটি লাইব্রেরি দিয়ে পার্স করতে পারেন plistlib

পুরো ioregআউটপুটটি পড়া কিছুটা কঠিন বলে আপনি এটি কল্পনা করতে সহায়তা করতে আইওআরজিস্ট্রি এক্সপ্লোরার অ্যাপটি ব্যবহার করা সহায়ক হতে পারেন ! এটি এক্সকোডের "হার্ডওয়্যার আইও সরঞ্জাম" প্যাকেজে পাওয়া যায় যা আপনি অ্যাপল বিকাশকারী সাইটে ডাউনলোডগুলি অনুসন্ধান করে খুঁজে পেতে পারেন । এটি আমার ডিভাইসে দেখতে কেমন দেখাচ্ছে তা এখানে:

আইওআরজিস্ট্রি এক্সপ্লোরার উদাহরণ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.