Czy istnieje program terminalowy OS X, który może uzyskać dostęp do portów szeregowych?

101

Jakie programy mogą działać jako terminal i uzyskiwać dostęp do portów szeregowych?

To nie jest dostęp do terminala w połączeniu IP, to dlatego mogę uzyskać dostęp do urządzenia sprzętowego podłączonego do konwertera USB / szeregowego działającego przy 9600/8 / N / 1.

Mark Harrison
źródło
2
Masz na myśli port modemowy 20 lat temu?
nohillside
@patrix, tak. Mogę ładować vmware, uruchamiać system Windows i używać szpachli, ale wydaje się, że wykonanie tak prostego zadania jest bardzo trudne.
Mark Harrison,
1
Lol. 9600/8 / N / 1. jak dla mnie mantra. możesz użyć zterm, który nadal działa co najmniej do 10.6. To stare oprogramowanie. Ale został zbudowany w celu konfiguracji, komunikacji z modemami i przesyłania plików modem do modemu. dalverson.com/zterm
markhunte
Najnowsza wersja Zterm działa z wersją 10.9.
Dan Pritts

Odpowiedzi:

54

W sklepie z aplikacjami dostępna jest nowa aplikacja Mac o nazwie Serial . Pełne ujawnienie - napisałem to. Główną zaletą w stosunku do innych aplikacji jest to, że może współpracować z większością urządzeń USB do szeregowych bez konieczności instalowania żadnych sterowników, ponieważ ma wbudowane własne sterowniki. Wykonuje także pełną emulację terminala, dzięki czemu można go używać do pracy z systemem Linux lub innymi urządzeniami, które tego wymagają. Możesz także wypróbować za darmo.

Ponadto firma Apple zaczęła dołączać do Mavericks własny sterownik urządzeń FTDI (10.9). Jeśli więc korzystasz z wersji 10.9 lub nowszej, a Twoje urządzenie ma układ FTDI, możesz użyć wbudowanego polecenia ekranowego w terminalu, aby uzyskać dostęp do urządzenia bez obaw o sterowniki.

Chris K.
źródło
6
Właśnie spróbowałem dzisiaj Serial. Jak na razie jestem pod wrażeniem. Kupię go tylko po to, by oszczędzić mi konieczności martwienia się o USB na sterowniki szeregowe. Nie będę tęsknił za ssh'ingiem do mojego Linux-a, żeby uruchomić minicom.
Daryl Spitzer
1
WOW, używam teraz Serial i myślę, że tak powinno działać każde oprogramowanie. Ponieważ potrzebuję go tylko do bardzo konkretnej pracy i ma kilka bezpłatnych dni próbnych, i jestem spłukany, nie dostanę pełnej wersji ... jeśli którykolwiek z trzech warunków byłby fałszywy, dostałbym to ... . oni zasługują na to!
kikusin
Cóż, kiedy już wybrałem prędkość transmisji dla mojego urządzenia, nie mogę otworzyć go ponownie z inną wartością ... Okno wyboru po prostu się nie pojawia i utknąłem na 9600 ...
JBernardo
8
fyi Serial nie jest darmowy
Szundi
2
łał. naprawde wow. Używam ekranu od lat i zawsze uważałem, że tty są po prostu ... denerwujące. Losowo znalazłem ten wątek, to było tak, jakbym nie płacił 30 $ - och, czekaj, jest proces. Więc próbowałem. 2 minuty po tym, jak kupiłem oprogramowanie praktycznie bez względu na to, jak często go potrzebuję, aby wesprzeć Chrisa, ponieważ jest naprawdę niesamowity. Od dłuższego czasu nie widziałem takiej dobrze napisanej rzeczy.
lukash
105

W tym celu możesz użyć polecenia terminalu screen!!!

Jak widać na ServerFault :

Ja kocham za pomocą [ekran] do podłączenia konsol szeregowych, czyli

screen /dev/ttyS0 19200

Lub, jeśli wolisz wskazówki dla Mac OS X ...

Często muszę konfigurować router za pomocą portu konsoli, więc używam adaptera szeregowego Keyspan, aby uzyskać dostęp. Potem pojawiają się dwa problemy: ZTerm to okropna aplikacja na Mac OS X. Nie był aktualizowany od około pięciu lat i nie jest Universal Binary. Deweloper nie spieszy się z naprawieniem sytuacji. W obecnej formie nie jest warta opłaty shareware. Minicom wymaga instalacji Fink lub MacPorts i jest zbyt skomplikowany. Rozwiązanie: Użyj ekranu, terminala i trochę AppleScripting.

Najpierw uruchom Script Editor i wpisz / wklej następujący kod:

tell application "Terminal"
  do script with command "screen /dev/tty.KeySerial1"
  set number of rows of window 1 to 100
  set number of columns of window 1 to 80
  set background color of window 1 to "black"
  set normal text color of window 1 to "green"
  set custom title of window 1 to "SerialOut"
end tell

Skompiluj i zapisz jako aplikację z poziomu edytora skryptów, a będziesz mieć aplikację, którą można kliknąć dwukrotnie, aby uruchomić sesję terminala szeregowego. Możesz to nieco dostosować - możesz zmienić kolory ekranu lub liczbę kolumn lub wierszy. Konieczne może być również dostosowanie polecenia ekranowego przy użyciu innej nazwy urządzenia, jeśli używasz czegoś innego niż adapter szeregowy klucza (użyj polecenia ls tty * w katalogu / dev /, aby uzyskać prawidłową nazwę).

ekran używa Control-A do przyjmowania poleceń skierowanych do niego. Więc wpisz Control-A, a następnie Control- \, aby wyjść z sesji ekranowej. Jeśli tego nie zrobisz i zakończysz sesję terminalową, pozostawisz sesję ekranową żywą i zasób szeregowy niedostępny, dopóki sesja ekranowa nie zostanie zabita ręcznie. ekran man pokaże dalsze polecenia wysyłane do sesji ekranowej.

Jeśli ktokolwiek może odpowiedzieć linkiem do samouczka na temat pakowania interaktywnej aplikacji Unix w Cocoa, byłby to kolejny krok - dobrze byłoby to zrobić bez angażowania terminalu. Jeśli wolisz używać Minicom, nadal możesz użyć AppleScript, aby owinąć go w ładną aplikację, którą można uruchomić - użyj tej starszej wskazówki, aby znaleźć odpowiednie polecenia wiersza poleceń.

Wiele adapterów szeregowych USB korzysta z układu FTDI . Zainstaluj sterownik „ Virtual COM Port ” i poszukaj prawidłowej nazwy TTY w /dev. Na przykład na PowerBook G4 pojawił się jako /dev/tty.usbserial-FTALKY8I.

Josh
źródło
1
Informacje na temat adapterów szeregowych USB z układem PL2303 można znaleźć na stronie sourceforge.net/projects/osx-pl2303
Dan Pritts
Zdecydowanie najlepsza odpowiedź: Terminal + ekran + osx-pl2303 (w użyciu produkcyjnym od… wielu lat ☺).
dan
1
Warto spojrzeć na odpowiedź Chrisa K poniżej; najwyraźniej OS X jest dostarczany ze sterownikami FTDI od 10.9 (po napisaniu tej odpowiedzi), więc instalacja nie jest konieczna.
krs013,
Screen (lub minicom w tym przypadku) nie jest całkiem poprawny. Wygląda dobrze, dopóki nie spróbujesz uruchomić nano lub vi. Nie poradzi sobie z nimi. Klawisze strzałek i klawisz powrotu generują śmieci. Jeśli na ekranie jest ustawienie, które to umożliwia, daj mi znać.
garyp,
Uwielbiam screen, ale: jak możesz go przetłumaczyć na ll?
nieustraszony_słup
25

Moje preferencje to cu. Używam go do zabawy związanej z Arduino lub Bus Pirate. Jest instalowany domyślnie i obsługuje ustawienia parzystości wśród innych opcji (wpisz man cuwięcej informacji).

sudo cu -s 115200 -l /dev/tty.usbserial-A6005kdh

Aby wyskoczyć, gdy skończysz, wpisz ~.jak w SSH

RandomInsano
źródło
1
To wydaje się być początkiem dobrej odpowiedzi, ale uruchomienie jej jako root wydaje się złe; inne programy nie potrzebują tego, aby uzyskiwać dostęp do programów /dev/tty.xxx lub /dev/cu.xxx, ale cuwydaje się, że nie działa z błędem dotyczącym blokowania plików, gdy jest uruchamiany jako użytkownik, który ma dostęp do samego portu. Być może domyślna instalacja programu jest źle skonfigurowana?
user221106
Nie? Uprawnienia powinny być na urządzeniu, a nie programie. Szczerze mówiąc, byłem dość leniwy, szukając uprawnień. Czy próbowałeś / dev / ttyS0 jak w screenrozwiązaniu? Czy cupowoduje to problemy z uprawnieniami?
RandomInsano
Zabawnym problemem z tym, który trafiłem w ten weekend, jest to, że jeśli potrzebujesz różnych ustawień wysuwu wiersza, musisz nauczyć się stty poleceń, aby ustawić konsolę.
RandomInsano,
24

Najlepszy program, jaki znam na to, jest minicomdostępny z Homebrew, Fink i Macports.

Minicom to program do komunikacji szeregowej. Jest to uniksowy klon dobrze znanego programu Telix firmy MS-DOS. Ma kolor ANSI, katalog wybierania, listę wybierania i język skryptowy.

nohillside
źródło
1
Meta-klucz to Esc. Więc Esc-Q, aby wyjść, Esc-O dla opcji itp. Znalazłem, że minicom (i Serial.app) jest najlepszy w obsłudze rozłączeń / ponownych połączeń, które są w zasadzie niejawne podczas uruchamiania rozwoju LinkitOne (wszystkie Arduino?). Większość innych aplikacji ulega awarii lub traci połączenie i nie może się połączyć ponownie do momentu ponownego uruchomienia.
owenfi
18

Jeśli wolisz nie pracować w Terminalu, możesz spróbować CoolTerm (bezpłatny). Przewiń nieco w dół, aby zobaczyć opis i pobrać. Nie pozwól, aby fakt, że jest napisany w RealBasic, Cię odciągnął ... Użyłem go do podłączenia ploterów, kart Arduino i drukarek pokwitowań za pomocą adaptera szeregowego USB <-> Keyspan.

myhd
źródło
Już jako użytkownik CoolTerm samo wyszukiwanie funkcji „wyślij w formacie HEX” przywróciło mnie do tego wątku. CoolTerm jest tak świetny, a nawet ma tę funkcję zawartą w menu „Połączenie> Wyślij ciąg ...”, a następnie przełącz się na HEX, aby wysłać format!
andreas-supersmart
Nigdy nie rozumiałem przypadku użycia „wyślij w formacie HEX”. Czy możesz mnie oświecić? Zawsze używam go tylko do wejścia / wyjścia ASCII.
frakman1
15

Powinieneś rzucić okiem na ZOC , który moim zdaniem jest najlepszym programem do emulacji terminali dostępnym na komputery Mac. Używam go codziennie do mojej pracy. Ma możliwość bezpośredniej komunikacji z portem szeregowym. Oczywiście nie tylko komunikacja szeregowa.

ZOC to profesjonalny klient i emulator terminalu SSH / telnet. Dzięki imponującej liście emulacji pozwala łatwo łączyć się z hostami i komputerami mainframe przy użyciu metod komunikacji, takich jak bezpieczna powłoka, telnet, kabel szeregowy lub modem / isdn.

Elegancki interfejs użytkownika ma wiele sposobów na ułatwienie życia. Na swój sposób jest to szwajcarski scyzoryk cienkich klientów: wszechstronny, solidny, sprawdzony.

Kluczowe cechy:
- Sesje z kartami z miniaturami
- Możliwość dostosowania do własnych preferencji i potrzeb
- Funkcje skryptów i automatyzacji
- Kompatybilny z Windows 7 i OS X Lion
- Przyjazny dla administratora (wdrożenie, konfiguracja)
- Teraz 79,99 USD z atrakcyjnymi rabatami hurtowymi

Furman
źródło
3
80 $ za emulator terminala wydaje się nieco stromy, jeśli tylko potrzebuje tej funkcji!
Agos
2
Cena nie została wymieniona jako kryterium w pytaniu. Proszę nie pomniejszać odpowiedzi tylko dlatego, że nie zgadzasz się z ceną.
Carter,
1
Popieram komentarz Agosa. Nie „zmniejsza” twojej odpowiedzi, mówiąc tylko, że uważa, że ​​ZOC nie jest dobrym rozwiązaniem, biorąc pod uwagę wszystko (koszt, funkcje itp.)
cyphunk
Ponadto, w połączeniu z innymi odpowiedziami powyżej, wydaje się (z przytoczonego opisu), że jedyną różnicą między ZOC a Terminalem są miniatury kart (i cena).
Matt
11

C-Kermit żyje i ma się dobrze w Brew, i można go zainstalować z:

brew install c-kermit

Oczywiście najpierw musisz zainstalować Brew. Informacje o tym, jak to zrobić, znajdziesz tutaj: http://brew.sh

Alternatywnie użyj Macports

sudo port install kermit

To również wymagałoby zainstalowania Macports

Zach
źródło
7

A potem jest jeszcze stary ZTerm, który jest tak stary, jak sugeruje jego wygląd, ale robi to dobrze i jest dostępny za darmo. Działa dobrze z adapterami szeregowymi USB opartymi na Prolific (PL 2303) i FTDI.

MacLemon
źródło
1
Wow, ZTerm żyje! Przywraca wiele wspomnień i starych komputerów Mac.
lhf
Właśnie pobrałem ZTerm… i jest tak źle, jak pamiętam… CRASH… CRASH… CRASH… (usuń ZTerm).
geowar
4

Odniosłem sukces z cutecom na Ubuntu 16.04

Obsługiwane w OSX: http://cutecom.sourceforge.net/

gatorback
źródło
Witamy, aby zapytać inaczej! Nie udzielaj odpowiedzi tylko za pomocą linku. Szukamy odpowiedzi, które zawierają wyjaśnienie, dlaczego odpowiada na pytanie, a także dlaczego jest to najlepsza odpowiedź. Linki mogą się zmieniać w miarę upływu czasu, a wtedy stracimy kontekst pytań i odpowiedzi. Zobacz Jak odpowiedzieć, aby uzyskać informacje o tym, co stanowi dobrą odpowiedź. - Z recenzji -
fsb,
Niestety, aby go zbudować, należy zainstalować w systemie bardzo starą wersję Qt.
Oscar
3

Kolejnym terminalem szeregowym dla Mac OS X jest Cornflake !

Zawiera wybór urządzenia z przyciskiem odświeżania, szybkość transmisji, wybór pakietu i kontrolę przepływu, kontrolę portu i filtr widoku do wyświetlania przychodzących danych jako ASCII, ASCII +, liczba całkowita lub HEX.

maccid
źródło
1

SerialTools w App Store (bezpłatny). Dobre dla mnie

Trieu Tu Long
źródło
1

Używam screendo podłączenia do portu szeregowego mojego routera na komputerze Mac.

Po zainstalowaniu - za pomocą Macports lub Homebrew w zależności od preferencji - użyj następującej składni:

sudo screen /dev/(serialDevice) (baudRate) (TransmissionRate) (flowControl)

Aby połączyć się z routerem MikroTik RB4011, mam następujące screenpolecenie:

sudo screen /dev/ttyUSB0 115200 cs8 ixoff

cs8 ” oznacza szybkość transmisji routera, a „ ixoff ” oznacza „Brak kontroli przepływu”. „ 115200 ” to prędkość transmisji routera. Alternatywne ustawienia to „cs7” dla 7 zamiast 8 bitów i „ixon”, jeśli kontrola przepływu obsługiwana jest przez urządzenie szeregowe. man screen

Wszystkie „HowTo” dotyczące korzystania screenz połączenia szeregowego w sieci „znalazłem, że Googling pomija te wymagane parametry, dlatego też przekonasz się, screenże nie zadziałało, jeśli spróbowałeś tylko przekazać prędkość.

BTW minicom -s(który również musiałby zostać zainstalowany za pośrednictwem Macports lub Homebrew) również działa świetnie, ale wolę ekran, ponieważ nie muszę przechodzić przez menu konfiguracji - mogę tylko przekazać parametry połączenia szeregowego bezpośrednio do polecenia screen.

F1Linux
źródło