
Modül Analizi
İletişim modülü olarak gerçek zamanlı görüntü aktarımı ve robot kontrol mekanizması için komut gönderimi yapıldı. Kablosuz bağlantı wireless modem sayesinde gerçekleşecek verilerin aktarımında Local Area Network kullanılmıştır. Gerçek zamanlı görüntü aktarımı QtNetwork kütüphanesinin UDP soketlerini kullanarak gerçeklenmiştir. Bunun nedeni veri aktarımın olabildiğince hızlı ve tek yönlü olmasıdır. Kontrol mekanizması için komut gönderimi QtNetwork kütüphanesinin TCP soketlerini kullanarak olacaktır. Bunun nedeni de gönderimin daha güvenli olmasını sağlamaktır. Pusula Bilgisinin gönderiminde ise UDP kullanılarak servera iletilme işlemi tamamlanmıştır.
1. Kameradan Görüntü Alma İşlemi
Kameradan OpenCV ile görüntü alınmıştır.
cvCaptureFromCAM( );
//OpenCv fonksiyonu ile kameradan görüntü alinmıştır.
QImage* getImage( );
// Bu fonksiyon cvCaptureFromCam’dan alınan CvCapture objesini kullanarak format img’ye çevrilir.
2. Kameradan Alınan Görüntüyü Gösterme İşlemi
void sendNextPicture( )
// İçinde getImage() fonksiyonu çağırılarak QImage objesi alınır. QImageWriter class’ının yardımıyla bu QImage objesi “JPEG” formatına çevrilir ve sıkıştırılır. Bu fonksiyon constructer’da belirlenen timer aralığında otomatik olarak sürekli çağırılır.
void sendDatagram(QByteArray &datagram)
//sendNextPicture içinde doldurulan QByteArray parametre olarak alınır. udpSocket.writeDatagram( ) fonksiyonu ile gönderim tamamlanır.
3. UDP Soket ile Gönderilen Görüntüyü Alma
void processPendingPicture( )
//bind yapılan ip adresten udpSocket.readDatagram( ) fonksiyon ile QByteArray okunur. Pixmap’e set işlemi yapılır ardından ekrana basılır.