Saya memiliki perangkat yang sedang diuji (DUT) dan saya mengukur penggunaan daya menggunakan Power Analyzer Datalogger menggunakan data dari /dev/ttyUSB0
.
Masalahnya adalah bahwa DUT sekarang jauh dari workstation yang saya gunakan untuk mengumpulkan data, tetapi di jaringan yang sama, saya perlu menggunakan PC ke-2 yang terhubung langsung melalui USB ke Power Anlayzer sebagai semacam proxy USB dan ssh. untuk membuat semacam tautan simbolis pada mesin pengukur USB dari mesin "proxy".
Mengingat diagram di atas bagaimana bisa 1 st PC akses /dev/ttyUSB0
dari 2 nd PC yang terhubung langsung, dengan cara yang program membaca aliran dari 1 st PC tidak akan melihat perbedaan?
sumber
Anda dapat menggunakan kombinasi dari
ser2net
dansocat
. Sebagai contoh, saya memiliki robot yang terhubung ke raspberry pi melalui port serial. Pi raspberry terhubung ke jaringan lokal saya (setara dengan PC ke-2 Anda). Dan laptop saya terhubung ke jaringan lokal yang sama (setara dengan PC 1 Anda). Kemudian saya menggunakan ser2net untuk meneruskan port serial melalui TCP dari PC ke-2, dan membuat file perangkat serial proxy menggunakansocat
pada PC ke-1.Pengaturan ini juga dapat bekerja untuk Anda. Solusi yang diusulkan:
Langkah 1: Instal paket ser2net pada PC ke-2 Anda (mengikuti diagram Anda)
sudo apt-get install ser2net
ser2net mendengarkan port TCP dan dapat mengirim data ke dan dari port serial melalui port TCP. Anda dapat mengatur port serial mana yang ingin Anda buat "proksi" untuk melalui file konfigurasinya
/etc/ser2net.conf
.Langkah 2: konfigurasikan ser2net di PC ke-2
Misalnya, jika Anda memiliki perangkat yang terhubung
/dev/ttyACM0
dengan baudrate115200
dan ingin menyajikannya dari port localhost 3333, maka Anda dapat menambahkan baris berikut ke/etc/ser2net.conf
3333:raw:0:/dev/ttyACM0:115200,remctl
Setelah membuat file konfigurasi, kemudian jalankan ser2net dengan menjalankannya di PC kedua:
ser2net
atau (jika sudah berjalan, maka restart saja seperti di bawah ini)
/etc/init.d/ser2net restart
Satu hal penting di sini adalah opsi remctl. Ini memungkinkan sisi klien (PC pertama dalam diagram Anda) untuk terhubung ke perangkat dan memilih opsi koneksi serial dengan bebas. Saya pikir cara ini komunikasi serial benar-benar transparan dari perspektif ruang kerja pengumpulan data. Lihat lebih detail di sini .
Langkah 3: Mengatur file perangkat serial proxy pada workstation pengumpulan data (PC pertama)
(jika Anda tidak memiliki socat, maka
sudo apt-get install socat
)Terakhir, di terminal PC pertama, mari kita
socat
buat port serial proxy yang akan mendengarkan dari port tcp:socat pty,link=$HOME/MyProxySerialPort,waitslave tcp:$ip:$port,forever,reuseaddr,keepalive
Di mana, dalam contoh ini
ip=<2nd-PC-IP-address>
danport=3333
(atau apa pun yang Anda pilih saat mengatur/etc/ser2net.conf
pada PC ke-2).Langkah 4: Sambungkan ke MyProxySerialPort
Sekarang Anda harus dapat membuka koneksi serial secara normal ke perangkat yang terletak di
$HOME/MyProxySerialPort
PC pertama.Posting blog ini juga memiliki beberapa informasi tentang pengaturan ini: http://techtinkering.com/2013/04/02/connecting-to-a-remote-serial-port-over-over-tcpip/
sumber
Di kernel linux yang menggunakan tautan simbolis dari / dev / bus / usb / BUS_ID / DEV_ID ke / dev / char / MAJOR: MINOR socat tidak dapat membuka perangkat tersebut karena kesalahan IOCTL yang tidak pantas!
Jadi pendekatan ini sepertinya tidak bekerja secara langsung pada perangkat USB.
Saya mencoba usbip yang merupakan implementasi yang lebih dekat tetapi hanya didukung pada kernel yang lebih tua.
Karena solusi saya adalah tentang pembaca kartu yang terhubung melalui pcsc-lite, ada solusi yang lebih baik menggunakan variabel lingkungan untuk klien libpcsclite .
Dengan cara ini soket domain unix yang berbeda dapat ditentukan. Dan yang ini dapat diteruskan ke soket pembaca kartu pada host jarak jauh menggunakan socat :
Jalankan ini pada host untuk mengganti pembaca kartu
jalankan ini pada host CARD_READER_HOST dengan pembaca kartu pcsc tersambung
sumber
/dev/ttyUSB0
, atau penganalisis daya yang tidak menggunakan PCSCLITE. Jika Anda ingin memposting informasi ini, akan lebih baik sebagai pertanyaan terpisah. Anda diizinkan dan didorong untuk mengirim pertanyaan sesuai topik yang Anda punya jawaban tindak lanjut langsung.:
karakter di jalan? Halaman manual socat, bagian "SPESIFIKASI ALAMAT", memiliki paragraf tentang cara melarikan diri karakter (v1.5.0 dan seterusnya).