Nasıl yapılandırılacağı ve bir seri bağlantı noktası ile iletişim kuruyorsunuz?

oy
41

Ben seri bağlantılar üzerinden veri göndermek ve almak için gereken (RS-232 ve RS-422).

Nasıl ayarlayabilir ve böyle bir bağlantı ile iletişim kuruyorsunuz? Nasıl yapılandırma ayarları (örneğin baud hızı) ne olması gerektiğini anlamaya yoktur ve bunları nasıl ayarlarım?

Özellikle ben Java ile bunun için arıyorum, C / C ++ veya majör Unix kabukları biri ama aynı zamanda Windows / Hyperterminal'ı kullanarak seri programlamada bazı ilgi var.

Oluştur 06/08/2008 saat 04:19
kaynak kullanıcı
Diğer dillerde...                            


11 cevaplar

oy
28

Bir zaman makinesi kurmak ve 1987 geri dönmek? Ho ho.

Tamam, artık snarky yorumlar.

Nasıl yapılandırma ayarları (örneğin baud hızı) ne olması gerektiğini anlamaya do ...

Veri sayfasını mi? Tamam, Tamam. Ciddi, bir tane sürer. Eğer iletişim kurmaya çalışıyoruz cihazın iletişim hızını bilmiyorsanız, iki seçeneğiniz var. tahmin başlayın, ya da muhtemelen bir o-kapsamını fırlamakta. Eğer iyi bir başlangıç ​​noktası gerekiyorsa, bana 9600-8-N-1 önerdiğimiz. Benim şüphe nispeten hızlı bir şekilde kaba kuvvet ile orada alabiliriz. Sadece gerçek baud hızı ne bazı standart baud hızında bozuk karakterlerin BAK söyleyebilirim eski okul ninja sahip üçüncü bir seçenek daha var. Etkileyici parti hile emin olmak için.

Umarım bu bilgilere erişimi olsa. unix / linux, doğrudan seri port ile oynamak için minicom ulaşmamın. Bu oldukça hızlı yapılandırma anladım almak için yapmalıdır.

Önemli Unix kabukları biri

Unix'de seri bağlantı noktası (ler) dosyası eşlemeli / dev / subdir içine / olmasıdır. ttyS0, örneğin. Eğer kurulum doğru baud hızı ve etajer minicom kullanılıyorsa, o dosyaya yönelik hatta kedi şeyler orada şeyler göndermek olabilir.

Sorunun ete üzerinde, POSIX başlıklarını aracılığıyla programlı erişebilirsiniz. termios.h büyük olanı.

Bkz: http://www.easysw.com/~mike/serial/serial.html#3_1 (MEVCUT DEĞİL ARTIK)

ama aynı zamanda Windows / Hyperterminal'ı kullanarak seri programlamada bazı ilgi var.

HyperTerminal ve minicom temelde aynı yazılımdır. Windows seri port erişmek yapalım nasıl gelince, ben başkası için bu soruyu bırakacağım. Ben Win95 günlerden beri Windows bunu yapmadın.

Cevap 06/08/2008 saat 04:27
kaynak kullanıcı

oy
10

Eğer Java kod istiyorsanız gerçekten SerialIOs tavsiye SerialPort . Kullanımı oldukça kolaydır ve size işin günlerini kaydeder. Ben gerçekten, SerialIO kadar iyi bir açık kaynak kütüphanesi bulamadılar!

Benim tavsiyem: Sun'ın seri IO çerçevesini kullanmayın! O 1998 ve böcek dolu. Sen kullanabilirsiniz rxtx ancak serialio iyidir!

Cevap 23/08/2008 saat 09:15
kaynak kullanıcı

oy
8

C / C ++ Windows üzerinde size (en azından) iki seçenek vardır:

  1. .NET tarafından sağlanan SerialPort sınıfını kullanın.
  2. Win32 API kullanın. Bir yoktur kapsamlı MSDN makale başlamak için web üzerinde 1995 kadar uzanan ve birçok ücretsiz kütüphaneler ve örnekler.

.NET seçeneği çok daha kolay olacaktır.

Cevap 13/08/2008 saat 13:44
kaynak kullanıcı

oy
4

Çapraz Platfrom olmak gerekirse, ben Boost bakarak öneririm Asio .

Cevap 03/09/2008 saat 13:12
kaynak kullanıcı

oy
3

Özgün Odalar Benim TCP / IP ağ adresi için aracılığıyla modem bir çiftlikten rota bağlantıları için iyi bir boy uygulama yazdım.

Başlangıçta bir ipoteksiz (serbest) Seri IO kütüphane için görünüyordu. Sun, IBM'nin ve RXTX çalıştı. Bu uygulama geliştirmek için ince ve ilk test, ancak üretimde her sabit olmadığı kanıtlanmıştır.

Sonunda SerialIO en SerialPort ödedi. Üzerinde dönüştürme anlamıyla değişen ithalatta bir egzersiz olduğunu ve kütüphane olmuştur kesinlikle katı kaya - yeterince tavsiye edemez. Birden müşteriler tarafından karşılaşmadım tek sorun başvurum, şimdi birkaç yıl için bu alanda 24/7 çalışan edilmiştir.

Eğer SerialPort kullanarak gelişimini başlatmak, bunlar daha iyi bir API var ve bunu kullanmak.

Eğer çapraz platform desteği gerekiyorsa, SerialPort Java bulabildiğim en iyi seçim oldu.

Son olarak, kendi lisans sürece müşteriniz (ler) için ekipman üzerinde yazılım ön kurulumu değildir gibi güzel lanetlemek makul.

Cevap 15/09/2008 saat 20:16
kaynak kullanıcı

oy
3

İşte biz doğru biçimlendirdiği seri veri kontrolü için TeraTerm ve realterm kullanın. Biz geri başka bağlantı noktasına bir kablo ile bizim uygulamaya trafiği izlemek böylece Ayrıca bir switch ile bir donanım splitter var.

Windows CreateFile üzerinden seri port erişim sağlar. Bu size bir tutum verir ve oradan erişimini yapılandırabilirsiniz.

Cevap 06/08/2008 saat 06:04
kaynak kullanıcı

oy
3

Windows hem de Linux üzerinde çalışacak C # kullanarak bunu yapmak istiyorsanız, diğer taraftan, - bazı sınırlamalar (Düzeltme:. Güncelliğini yitirmiş olabilir ben bunu test etmek için hiçbir yolu yoktur.). Sadece bir oluşturmak SerialPort nesne, onun baudrate'i portu ve diğer garip ayarları, üzerinde açık arama ve byte [] lar yazmak. O anlamaya yeterince kolay olmalı, böylece tüm kurulumdan sonra, SerialPort nesne, herhangi bir ağ akışına çok benzer davranır.

Hatta herhangi bir seri cihaza iletişim kurmaya çalışırken başlamadan önce Ve ibrandy devletler gibi, sen, baud oranı gibi, bütün bu ayarları bilmek gerekir.

Cevap 06/08/2008 saat 04:35
kaynak kullanıcı

oy
2

Java itibaren rxtx ( MEVCUT DEĞİL ARTIK ) kütüphane oldukça iyi. Sun'ın seri IO çerçevesi bıraktığı yerden O alır.

Cevap 08/08/2008 saat 21:24
kaynak kullanıcı

oy
1

Belirli bir derleyici kullanmak zorunda değilseniz ben Qt kullanmak ve yeni 5.3 sürümünde seri portlar adanmış bir sınıf bulacaksınız öneririz:

http://qt-project.org/doc/qt-5/qserialport.html

Eğer yazacak kod, tüm supprited Qt platformunda seri bağlantı noktaları var en azından bu çalışacaktır.

Cevap 06/09/2014 saat 14:01
kaynak kullanıcı

oy
1

Sen iletişim kurmaya çalışıyoruz Cihaza bağlı olarak, baud oranı daha fazla parametreleri, veri bitlerinin sayısı, eşlik kontrolü ve durdurma bitlerinin sayısını dikkate almak türü olabilir. Doğru hatırlamak, modemler RS-232C arayüzü dokuz hatlarını kullanırlar. örnek yazar kasalar için gibi bazı cihazlar, RTS / CTS hatları üzerinde veya DTR / STR hatlarında donanım anlaşmasının kullanabilir.

Genelde arayüzünün nasıl çalıştığını bilmek güzel. baud hızı uymuyor eğer iletişim kuramaz, ancak diğer parametrelerin yanlış ayar tür işe yarayabilir. Örneğin kolaylıkla set 2 dur biti ile 1 dur biti bekliyor cihaza veri gönderebilir. Böyle durumlarda veri almaya çalıştığınızda sorunlar başlar. Ayrıca dur bitlerinin vs. biri olarak uygun şekilde ayarlanmış eşlik biti kullanabilirsiniz

Cevap 23/09/2008 saat 02:21
kaynak kullanıcı

oy
0

Ben purejavacomm kullanıyoruz: Saf java + JNA ile yazılmış javax.comm bir uygulamasıdır

RXTX aksine, bir dll yüklemeye gerek yoktur. Benim için Windows ve Linux arasındaki taşınabilirlik sorununu çözdü saf Java + JNA, yazılmıştır. Böyle Solaris ve FreeBSD olarak JNA destekleyen diğer OS es, limana kolay olmalıdır, ama onu denemedim.

Sen saf java kütüphanesi böyle performansında RXTX gibi yerel bir uygulamaya gerisinde bekliyor olabilir, ama modern CPU ile, darboğaz seri portun bit hızı değil, CPU döngüsü olması çok muhtemeldir. Ayrıca, karma bir Java / Yerli kütüphane ya saf derlenmiş yerli kod daha hata ayıklamak için çok daha kolaydır.

Cevap 18/03/2013 saat 11:59
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more