যখন আপনি একটি নতুন COM ডিভাইস বা একটি USB ডিভাইস আপনার কম্পিউটারের সাথে সংযুক্ত করেন (USB মডেম, মোবাইল ফোন, ব্লুটুথ অ্যাডাপ্টার, USB রূপান্তরকারীতে সিরিয়াল, ইত্যাদি), উইন্ডোজ প্লাগ-এন-প্লে ব্যবহার করে এটি সনাক্ত করে এবং এটিকে COM বরাদ্দ করে পোর্ট নম্বর 1 থেকে 255 এর মধ্যে (COM1, COM2, COM3, ইত্যাদি)। এই ডিভাইসটি আবার সংযুক্ত হলে, সংরক্ষিত COM (Communication
, অথবা Serial
) পোর্ট নম্বর এটি বরাদ্দ করা হয়. একটি নতুন ডিভাইস প্রথম বিনামূল্যে COM পোর্ট নম্বর পায়। এটি প্রায়ই ঘটে যে সংযুক্ত থাকাকালীন, বহিরাগত ডিভাইসগুলি একবারে একাধিক COM পোর্ট তৈরি করে। আমার ক্ষেত্রে একটি ব্লুটুথ অ্যাডাপ্টার সংযোগ করার পরে 10!!! সিস্টেমে নতুন COM পোর্ট উপস্থিত হয়েছে।
লিগ্যাসি অ্যাপ্লিকেশনের একটি সংখ্যা শুধুমাত্র দুই-সংখ্যার COM পোর্ট নম্বরগুলিকে সম্বোধন করতে সক্ষম, এবং COM100 এবং উচ্চতরগুলির সাথে কাজ করবে না৷ সবচেয়ে খারাপ ক্ষেত্রে, এই প্রোগ্রামগুলি শুধুমাত্র COM1-COM9 এর সাথে কাজ করে৷ বন্দর যদি একটি ডিভাইস একটি উচ্চতর COM পোর্ট নম্বর পেয়ে থাকে? সংরক্ষিত COM পোর্টগুলির জন্য নম্বর পুনরায় সেট করা এবং নির্ধারিত পোর্টগুলি মুছে ফেলা কি সম্ভব?
বিষয়বস্তু:
- উইন্ডোজে একটি ডিভাইসের জন্য একটি COM পোর্ট নম্বর কীভাবে পরিবর্তন করবেন?
- উইন্ডোজে কোন প্রক্রিয়া সিরিয়াল COM পোর্ট ব্যবহার করছে তা খুঁজে বের করুন
- উইন্ডোজ রেজিস্ট্রিতে COM পোর্ট নম্বর রিসেট করা হচ্ছে
উইন্ডোজে একটি ডিভাইসের জন্য একটি COM পোর্ট নম্বর কীভাবে পরিবর্তন করবেন?
উইন্ডোজে, আপনি ম্যানুয়ালি একটি ডিভাইসে নির্ধারিত COM পোর্ট নম্বর পরিবর্তন করতে পারেন। ধরুন প্রয়োজনীয় COM পোর্ট ইতিমধ্যেই ব্যস্ত, এবং আপনি এটি মুক্ত করার চেষ্টা করতে চান৷
৷-
devmgmt.msc
চালিয়ে ডিভাইস ম্যানেজার খুলুন আদেশ; - দেখুন->লুকানো ডিভাইসগুলি দেখান নির্বাচন করুন৷ মেনুতে;
- তারপর পোর্ট (COM এবং LPT) প্রসারিত করুন এবং তালিকায় আপনার ডিভাইস খুঁজুন;
- পোর্ট সেটিংস এ যান ট্যাব এবং উন্নত ক্লিক করুন বোতাম;
- ডিভাইসটিতে বরাদ্দ করা বর্তমান COM পোর্ট নম্বর COM পোর্ট নম্বর-এ পাওয়া যাবে ক্ষেত্র;
- এটি পরিবর্তন করতে, ড্রপ-ডাউন তালিকা খুলুন এবং আপনি যে COM পোর্ট নম্বর সেট করতে চান সেটি নির্বাচন করুন।
কিন্তু প্রায়শই আপনি হার্ডওয়্যার বৈশিষ্ট্যে নির্ধারিত COM পোর্ট নম্বরটিকে অন্য একটিতে পরিবর্তন করতে পারবেন না, যেহেতু সমস্ত "নিম্ন" COM পোর্ট ইতিমধ্যেই ব্যবহার করা হচ্ছে৷ এই ক্ষেত্রে, আপনাকে COM পোর্ট সংরক্ষণ অপসারণের চেষ্টা করতে হবে
- বন্দর প্রসারিত করুন (COM এবং LPT) শাখা, খুঁজে বের করুন আপনার কোন COM পোর্ট নম্বরটি বরাদ্দ করা হয়েছে (একটি ফ্যাকাশে আইকন মানে এই COM পোর্টটি বরাদ্দ করা হয়েছে, কিন্তু এই ডিভাইসটি বর্তমানে সংযুক্ত নেই);
- এটিতে ডান-ক্লিক করুন এবং আনইনস্টল করুন নির্বাচন করুন৷ ;
- এখন আপনি অন্য ডিভাইসে মুক্ত COM পোর্ট বরাদ্দ করতে পারেন। আবার আপনার ডিভাইসের বৈশিষ্ট্যগুলি খুলুন, পোর্ট সেটিংস-এ যান৷ -> উন্নত ট্যাব তারপর পোর্টে যান সেটিংস৷ ট্যাব এবং উন্নত ক্লিক করুন . ড্রপডাউন তালিকায় বিনামূল্যে COM পোর্ট নির্বাচন করুন।
যাইহোক, এই পদ্ধতিটি আপনাকে সমস্ত ক্ষেত্রে ব্যস্ত COM পোর্ট মুক্ত করার অনুমতি দেয় না।
আপনি PowerShell ব্যবহার করে Windows এ ব্যস্ত COM পোর্টের সম্পূর্ণ তালিকা পেতে পারেন:
Get-WMIObject Win32_SerialPort | Select-Object Name,DeviceID,Description
নির্বাচন করুন
আপনি একটি নির্দিষ্ট ডিভাইসের জন্য COM পোর্ট নম্বর পেতে পারেন তার নামের দ্বারা, উদাহরণস্বরূপ:
Get-WMIObject Win32_SerialPort | Where-Object { $_.Name -like "*Arduino*"}|select name, deviceid
বাGet-WMIObject Win32_SerialPort | Where-Object { $_.Name -like "*GPS*"}|select name, deviceid
উইন্ডোজে কোন প্রক্রিয়া সিরিয়াল COM পোর্ট ব্যবহার করছে তা খুঁজে বের করুন
আপনি উইন্ডোজ বা চলমান প্রোগ্রাম (প্রক্রিয়া) দ্বারা ব্যবহৃত একটি ডিভাইসের COM পোর্ট প্রকাশ করতে সক্ষম হবেন না। প্রথমত, আপনাকে সেই প্রক্রিয়াটি বন্ধ করতে হবে যা বর্তমানে COM পোর্ট ব্যবহার করছে। আপনি প্রসেস এক্সপ্লোরার ব্যবহার করতে পারেন টুল (Sysinternals দ্বারা) একটি নির্দিষ্ট COM পোর্ট নম্বর (https://docs.microsoft.com/en-gb/sysinternals/downloads/process-explorer) ব্যবহার করে প্রক্রিয়াটির নাম খুঁজে বের করতে।
প্রথমে, আপনাকে COM পোর্ট ব্যবহার করে এমন পরিষেবার নাম প্রদর্শন করতে হবে। PowerShell কমান্ড চালান:
get-pnpdevice -class Ports -ea 0| Select Name, PNPDeviceID, Status, Service
নির্বাচন করুন
নির্দিষ্ট COM পোর্টের পরিষেবার নাম পরিষেবা-এ দেখানো হয়েছে কলাম উদাহরণস্বরূপ, COM2 এর জন্য এটি হল সিরিয়াল . এখন আপনাকে প্রশাসক হিসেবে Process Explorer চালাতে হবে এবং Find নির্বাচন করতে হবে -> হ্যান্ডেল বা DLL খুঁজুন মেনু থেকে। হ্যান্ডেল বা DLL সাবস্ট্রিং-এ লাইন, আগে প্রাপ্ত পরিষেবা মান লিখুন। আমাদের উদাহরণে, এটি হল Serial
.
প্রসেস এক্সপ্লোরারকে সেই প্রসেসের নাম দেখাতে হবে যা বর্তমানে আপনার COM পোর্ট ব্যবহার করছে। COM পোর্ট রিলিজ করতে, প্রক্রিয়া বা প্রোগ্রামটি মেরে ফেলুন।
উইন্ডোজ রেজিস্ট্রিতে COM পোর্ট নম্বর রিসেট করা হচ্ছে
ব্যবহৃত COM পোর্ট সম্পর্কে তথ্য ComDB-এ সংরক্ষণ করা হয় HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM নাম আর্বিটার-এর অধীনে রেজিস্ট্রি প্যারামিটার reg কী।
- রেজিস্ট্রি এডিটর খুলুন (
regedit.exe
) এবং উপরে উল্লিখিত রেজিস্ট্রি কীতে যান; গুরুত্বপূর্ণ! আমরা দৃঢ়ভাবে কিছু করার আগে এই রেজিস্ট্রি কী (ফাইল -> রপ্তানি) ব্যাকআপ করার পরামর্শ দিই। যদি কিছু ভুল হয়ে যায়, আপনি মূল COM পোর্ট কনফিগারেশন পুনরুদ্ধার করতে পারেন। - ComDB এর মান বাইনারি বিন্যাসে প্যারামিটার উইন্ডোজে সংরক্ষিত COM পোর্টের তালিকা নির্ধারণ করে। প্রতিটি বিট সংশ্লিষ্ট পোর্টের অবস্থা নির্ধারণ করে (1 থেকে 255 পর্যন্ত)। উদাহরণস্বরূপ, যদি আপনাকে শুধুমাত্র COM3 এর জন্য রিজার্ভেশন ছেড়ে যেতে হয়, তাহলে ComDB-এর হেক্স মান 04 (0000 0100) এর সমান হবে;
গুরুত্বপূর্ণ! খুব মনোযোগী হন, এবং প্যারামিটারে কোনো অতিরিক্ত বিট যোগ করবেন না, না হলে সিস্টেমটি BSOD-এ ব্যর্থ হতে শুরু করবে। - আপনাকে যদি সমস্ত COM পোর্ট বাইন্ডিং রিসেট করতে হয়, তাহলে ComDB-এর মান পরিবর্তন করুন 0 থেকে;
নোট . আপনি রেজিস্ট্রি কী HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM-এর অধীনে উইন্ডোজে সংযুক্ত COM পোর্টের সম্পূর্ণ তালিকা দেখতে পারেন। SERIALCOMM-এর অধীনে রেজিস্ট্রি এন্ট্রিগুলি শুধুমাত্র তখনই উপস্থিত হতে পারে যখন অন্তর্নিহিত ডিভাইসগুলি সংযুক্ত এবং প্রস্তুত থাকে৷ এই সাবকিটি হার্ডওয়্যার কী-এর অংশ, এবং প্রতিবার সিস্টেম চালু হলে এটি পুনরায় তৈরি করা হয়। - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ports রেজিস্ট্রি কীতে সমস্ত নির্ধারিত COM পোর্ট নম্বরের তালিকা থাকে। আপনি সমস্ত অপ্রয়োজনীয় পোর্ট সংরক্ষণ অপসারণ করতে পারেন. আমাদের উদাহরণে, আমরা শুধুমাত্র COM3 ছেড়ে দেব এবং বাকি পোর্টগুলি মুছে দেব;
- সকল বাহ্যিক ডিভাইস আনপ্লাগ করুন এবং আপনার কম্পিউটার পুনরায় চালু করুন;
- রিবুট করার পরে, ডিভাইসগুলিকে প্রয়োজনীয় ক্রমে সংযুক্ত করুন, ইউএসবি-টু-সিরিয়াল কনভার্টারগুলি পুনরায় ইনস্টল করুন, ইত্যাদি। সমস্ত সনাক্ত করা COM পোর্ট ডিভাইসগুলি সিস্টেম দ্বারা স্বয়ংক্রিয়ভাবে সনাক্ত করা হবে এবং অনুক্রমিক COM পোর্ট নম্বর বরাদ্দ করা হবে।
আপনি সংরক্ষিত COM পোর্টগুলি পরিষ্কার করতে নিম্নলিখিত বিনামূল্যের সরঞ্জামগুলিও ব্যবহার করতে পারেন:
- COM নাম আর্বিটার টুল – এই টুলটি আপনাকে COM পোর্ট রিজার্ভেশন রিসেট করতে এবং ব্যবহৃত COM পোর্ট নম্বর খুঁজে পেতে সাহায্য করতে পারে। টুলটি ডাউনলোড করুন এবং এটিকে প্রশাসক হিসাবে চালান। আপনি যে COM পোর্টগুলি প্রকাশ করতে চান তা নির্বাচন করুন এবং অব্যবহৃত সংরক্ষণগুলি সাফ করুন ক্লিক করুন এবং অ-বর্তমান ডিভাইসগুলি সরান;
- ডিভাইস ক্লিনআপ টুল – পূর্বে সংযুক্ত ডিভাইসগুলির জন্য রেজিস্ট্রি অনুসন্ধান করতে ইউটিলিটি ব্যবহার করা হয় (রেজিস্ট্রি কী
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
এর অধীনে ), অব্যবহৃত ডিভাইসগুলি সরান এবং COM পোর্ট সংরক্ষণগুলি পরিষ্কার করুন৷
৷