Chciałbym zbudować program dla Mac OS X do zdalnego sterowania moją kamerą DSLR. Kamera, którą mam, ma adapter WiFi, więc chciałbym, aby sterowanie odbywało się przez WiFi. Mam dobre zrozumienie C, podstawowej, średnio zaawansowanej znajomości Objective C/Xcode, ale nie mam doświadczenia z Wi-Fi jaki framework powinienem użyć do połączenia z kamerą i komunikacji pomiędzy kamerą a komputerem? dzięki!Sterowanie kamerą zdalną aplikacji Mac OS X przez Wi-Fi
Odpowiedz
Jeśli chodzi o PTP przez IP (PTP/IP), o ile rozumiem, służy to tylko do przesyłania multimediów do/z kamery (nie wiem, jakie funkcje zdalnego sterowania są możliwe) i zasadniczo połączenie TCP/IP. Musisz ustanowić połączenie TCP. Zgodnie z sugestią NSBum wymagałoby to NSInputStream i NSOutputStream, a także posiadania klasy jako NSStreamDelegate do obsługi zdarzeń strumieniowych, takich jak kamera komunikująca się z komputerem.
chodzi o rzeczywistą protokołu, to powinno być obsługiwane przez SDK został pobrany, jeśli nie jest tu jakaś dokumentacja, które mogą pomóc Ci zacząć: gPhoto PTP/IP Documentation
A niektóre kod, aby pokazać NSInputStream i NSOutputStream:
// This would either be part of a Class init method or called at some point after
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"192.168.1.2", 1234, &readStream, &writeStream);
inputStream = (__bridge NSInputStream *)readStream;
outputStream = (__bridge NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
I na piśmie do OutputStream jako ogólny przykład:
// data is of class NSData, the following writes the data bytes to the outputStream
[outputStream write:[data bytes] maxLength:[data length]];
Twój NSStreamDelegate będzie musiała zapewnienie wdrożenia tej metody:
- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent
Dokumentacja: NSStreamDelegate Protocol Reference (Również na pasku po lewej stronie znajduje się link do Przewodnika Stream programowanie)
- 1. Sterowanie kamerą Phonegap
- 2. Sterowanie wersją mieszania z wersjami Mac OS X Lion
- 3. Aktualizacje aplikacji w systemie Mac OS X
- 4. . Aplikacja .NET do aplikacji Mac OS X?
- 5. Sterowanie kamerą internetową w java
- 6. Jak ustawić ikonę dla aplikacji aplikacji Mac OS X?
- 7. Mac OS X: Gdzie powinienem przechowywać typowe dane aplikacji?
- 8. Synchronizacja danych iOS i Mac OS X
- 9. Uruchomienie Mac OS X (LoginItem) APP pomocnika z głównej aplikacji
- 10. Ponowne ładowanie Apache2 przez Terminal w systemie MAC OS X
- 11. Odinstalowywanie pakietów w systemie Mac OS X
- 12. pathForResource zwraca zero w aplikacji konsoli Mac OS X - Swift
- 13. Budowanie aplikacji Mac OS X/Cocoa do dystrybucji zaimportowanym szkieletem
- 14. Debugowanie i zabijanie aplikacji na Mac OS X?
- 15. Mac OS X Sandbox i Dysk Arbitrażowy
- 16. Building Google Breakpad na Mac OS X
- 17. Klasa UIDevice dla Mac OS X?
- 18. pygettext.py i msgfmt.py na Mac OS X
- 19. Instalacja OpenMP na Mac OS X 10.11
- 20. Mac OS X: CGGetLastMouseDelta i programowanie myszy
- 21. Włączanie Xdebug na Mac OS X Lion
- 22. Mac OS X libcurl dylib wersja kompatybilności
- 23. JNotify w systemie Mac OS X?
- 24. Aplikacja Java Windows vs Mac OS X
- 25. Mac OS x Terminal.app bufor i polecenie ekranowe
- 26. Jaka jest różnica między mapami klawiszy - Mac OS X i Mac OS X 10.5+?
- 27. boost compile error Mac OS X 10.7.4
- 28. wxPython 2.9 na Mac Os X
- 29. Maszyna wirtualna z systemem Mac OS X
- 30. Jak piszesz program dla Mac OS X?
To zależy trochę od tego, czy istnieje opublikowany protokół komunikacyjny oferowany przez producent aparatów ... Czy istnieje? Jakie są jego specyfikacje? – FluffulousChimp
Protokół komunikacyjny wykorzystał go PTP i pobrałem SDK ze strony producenta. SDK nie zostały dokładnie zbudowane dla mojego modelu, ale spojrzałem na te dostępne dla innych modeli i wyglądają bardzo podobnie do mnie. Zastanawiałem się, czy mógłbym wykorzystać je jako punkt wyjścia ... dzięki! – user1888762
Podejrzewam, że istnieje inna warstwa łączności między urządzeniami, z którą można sobie poradzić. Zgaduję, że prawdopodobnie będziesz pracował z parami 'NSInputStream' i' NSOutputStream'; ale odkrycie urządzenia w sieci będzie musiało zostać rozwiązane ... wiele pytań pozostaje. – FluffulousChimp