Cara mudah dan cepat mencari port serial sebuah alat / device

Assalamu’alaikum Wr Wb,

Dalam membuat aplikasi yang berhubungan dengan pelalatan luar seperti microcontroller, sms gateway, dan lain-lain tentunya kita akan berhubungan dengan port serial, memang tidak semua peralatan luar menggunakan port serial (COM), namun kali ini kita batasi pembahasan hanya pada port serial karena ini yang paling sering digunakan.

Saat kita menggunakan peralatan (device) khususnya yang menggunakan colokan usb sering kalikita mengalami sedikit kendala karena portnya berubah-ubah setiap kali ditancapkan pada colokan yang berbeda.

Beruntunglah windows menyediakan informasi terkait peralatan serial yang digunakan pada registry sehingga kita tidak perlu melakukan scanning setiap port yang ada untuk mengetahui device (alat) kita pada COM berapa.

Informasi tersebut bisa kita baca dari HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

pada kasus ini saya mencoba mendeteksi port dari USB to TTL yang saya gunakan untuk komunikasi dengan microcontroller.

 

Tampilan registry sebelum alat dicolokkan

 

Tampilan registry setelah alat dicolokkan

dari tampilan diatas tampak bahwa alat yang saya gunakan teridentifikasi sebagai “\Device\ProlificSerial2” kita ambil “Prolific” sebagai kata kuncinya karena kata “Serial2” bisa berubah, sebagaimana yang tampak pada Devive Manager.

OK, langsung saja berikut ini saya tunjukkan bagaimana cara membaca informasi tersebut menggunakan delphi yang nantinya akan kita masukkan ke komponen Comport.

procedure TForm1.FormCreate(Sender: TObject);
var
   key: HKEY;
   index: Integer;
   VarName,value: string;
   sz: Cardinal;
   dw: DWORD;
begin
     RegOpenKeyEx(HKEY_LOCAL_MACHINE,
        'HARDWARE\DEVICEMAP\SERIALCOMM',
        0,KEY_QUERY_VALUE,key);
     index:=0;
     repeat
           sz:=256;
           SetLength(VarName,sz);
           dw:=256;
           SetLength(value,dw);
           if 

RegEnumValue(key,index,PChar(VarName),sz,nil,nil,PByte(value),@dw)<>ERROR_SUCCESS then
              Break;
           Inc(index);
           SetLength(VarName,sz);
           SetLength(value,dw);
           Memo1.Lines.Add(VarName+' » '+value);
           if pos('\Device\Prolific',VarName)=1 then
           begin
                ComPort1.Port:=value;
                Break;
           end;
     until False;
     RegCloseKey(key);
     ComPort1.Open;
end;

Semoga bermanfaat.

1 Comment to Cara mudah dan cepat mencari port serial sebuah alat / device

  1. mboloz says:

    manteb pak, amankan dulu sesok nek dulenen port

Leave a Reply

Your email address will not be published. Required fields are marked *