RAiV, bağımsız bir cihaz olarak tasarlanmış olsa da, onu diğer cihazlara bağlamak isteyebilirsiniz. Bu yazıda, Python SDK'mızdan qCU_Net Python Modülünü kullanarak hem TCP istemci hem de sunucu uygulamalarını nasıl oluşturabileceğinizi anlatacağız.

qCU_Net modülünün gerçekleştirilmesi sırasında, Python'ın yerel socket modülünü kullandık. Bu nedenle, Python SDK'mızı kullanmadan kendi özel iletişim modülünüzü de yazabilirsiniz.

Giriş

qCU_Net Python Modülü, sadelik ve esneklik için tasarlanmıştır. 4 Baytlık Başlık ve JSON içeren mesaj prototipini kullanır. Yük Verisi:

4 baytlık Yük Verisi Uzunluğu
(Büyük endian işaretsiz tamsayı)
JSON Yük Verisi
(UTF-8 kodlu)

Özel uygulamalarınız için, Python veri yapılarınızı (listeler ve sözlükler gibi) JSON dizesine dönüştürebilir ve JSON Yük Verisi olarak atayabilirsiniz.

Python kod örneklerimizde, aşağıdaki RAiV kablolu ağ ve PC ağ arayüzü yapılandırmalarını kullandık:

RAiV Kablolu Ağ Yapılandırması:
IP 192.168.10.55
Netmask 255.255.255.0
Gateway 192.168.10.1

PC Ağ Yapılandırması:
IP 192.168.10.2
Netmask 255.255.255.0
Gateway 192.168.10.1

RAiV TCP İstemcisi Olarak

Python Kodunuzu Hazırlayın ve Yükleyin

qCU_Net modülünü kullanarak, aşağıdaki kod satırlarıyla bir TCP mesajı gönderebilirsiniz:

import qCU_Net

def main():

    print("**** TCP Client ****")

	# Define Payload of the TCP message
    payload = {
        "text": "Hello Net Comm"
    }
    # Send the Payload (the message header is computed inside the function)
    qCU_Net.send_data_to_server("192.168.10.2", 12345, payload)

if __name__ == "__main__":
    main()

Yukarıdaki kodu kopyalayın ve user_main.py dosyasına kaydedin. Ardından, önceki yazımızda açıklandığı gibi dosyayı RAiV'e yükleyin.

Sunucu tarafı Python uygulaması için, Github Depomuzdan örnek TCP sunucu uygulamasını kullanın ve PC'de çalıştırın.

Canlı Sunum

user_main.py dosyasının kontrolleri tamamlanır tamamlanmaz, Python dosyası çalıştırılır. Console Output ve/veya PC tarafı örneğini kontrol edebilirsiniz.

Merhaba RAiV TCP İstemcisi

Uyarı: TCP sunucusu yoksa veya sunucuya ağ bağlantısı yoksa, Python yorumlayıcısının hata mesajı Console Output'da görüntülenir.

RAiV TCP Sunucusu Olarak

Python Kodunuzu Hazırlayın ve Yükleyin

qCU_Net modülü ile RAiV'de TCP sunucusu oluşturmak da basittir. Tek eklemeniz gereken özel json_handler'ınızdır. qCU_Net mesajları json yükü kullandığı için, sunucunun gelen yükü ayrıştırmak için bir Python fonksiyonuna sahip olması gerekir.

TCP sunucusuna hiçbir json işleyici sağlanmazsa, varsayılan olarak qCU_Net modülü gelen json dizesini yazdırır.

Örnek bir json işleyici de dahil olmak üzere eksiksiz TCP sunucu kodu aşağıda verilmiştir:

# Module for TCP communication
import qCU_Net

# Sample implementation of a json payload handler 
def sample_json_handler(client_socket, json_payload, client_address):
    print(f"Custom handler called for client {client_address}")
    print(f"Received payload: {json_payload}")

def main():

    print("**** TCP Server ****")

	# Start the TCP server with sample json handler
    qCU_Net.start_tcp_server(host='192.168.10.55', port=12345, json_handler=sample_json_handler)

if __name__ == "__main__":
    main()

Yukarıdaki kodu kopyalayın ve user_main.py dosyasına kaydedin. Ardından dosyayı önceki yazımızda açıklandığı gibi RAiV'e yükleyin.

İstemci tarafı Python uygulaması için, Github Depomuzdan örnek TCP istemci uygulamasını kullanın ve PC'de çalıştırın.

Canlı Sunum

user_main.py dosyasının kontrolleri tamamlanır tamamlanmaz, Python dosyası çalıştırılır. Gelen mesajlar için Console Output'u kontrol edebilirsiniz.

Merhaba RAiV TCP Sunucusu

Sırada Ne Var?

İlk stereo görüntünüzü yakalamak için:

Çekimi Yapın: İlk Stereo Görüntünüzü Yakalayın

Python SDK'mızı inceleyin:

RAiV Python SDK

Örnek Kodlar İçin Github Depomuzu Kontrol Edin:

Github Depomuz