Graag zou ik een (DOS-prompt / commandline) tooltje maken waarmee ik het starten/stoppen van video-recorden kan bedienen op mijn SONY A7RV camera. De camera is via Wifi verbonden met mijn netwerk. In ditzelfde netwerk zit mijn (Windows) computer waarop ik dit tooltje zou willen laten draaien.
SONY heeft er een API/SDK voor gemaakt, maar dat valt (voor mij althans) helaas nog niet mee
Dat is dan nog heel zacht uitgedrukt, want ik ben er zelf al zo'n 30 uur (!!) mee bezig en verder hebben er nog 2 goede programmeurs naar gekeken, helaas ook zonder resultaat...
Als ik het goed begrijp kan ik op 2 manieren connecten met de camera.
1. via "Pairing" (dan moet de software een soort request sturen naar de camera waar je vervolgens moet bevestigen)
2. via SSH
Als ik in een browser naar http://192.168.1.88:64321/DigitalImagingDesc.xml ga, dan komt deze data naar voren:
Dat laat mij denken dat ik via SSH zou moeten kunnen inloggen. Maar wat ik ook probeer -zowel in mijn code als in de camera(settings)-, niets lijkt te werken.
Ik programmeer zelf altijd in VB.NET, maar als het moet zou het ook in C# kunnen. Het grote probleem is dat de SDK in C++ is gemaakt. Daar snap ik zelf letterlijk bijna niets van, dus dan gaat het natuurlijk een stuk moeilijker worden. Ik ben daarom opzoek naar een slimme manier waarop ik zelf niet alles hoef te snappen van C++, maar toch de API kan gebruiken. Is dat met een soort "wrapper" of "linker" ofzo? En hoe zou ik dit het beste kunnen aanpakken.
Er zit een voorbeeld-tooltje bij de API, maar dat is zover ik bebgrijp (en getest heb) alleen als je met USB wilt verbinden. Dat lukt ook, maar daar heb ik helaas niets aan omdat ik het via Wifi wil.
Wat ik verder ook begrijp uit het onderstaande filmpje, is dat ik zal moeten praten met de SONY SDK, en niet rechtstreeks met de camera zelf:
:strip_exif()/f/image/3vMehA0MOMDjOK7fTI5ffl3D.jpg?f=fotoalbum_large)
Dat maakt het nóg verwarrender voor me, want wat zou ik dan met SSH moeten? Of is dat gewoon om aan te geven dat ik wil dat de SDK met de camera via SSH spreekt? Anyway; dit maakt het voor mij gewoon nóg moelijker, want ik ben eigenlijk gewend om "gewoon rechtstreeks" tegen een API aan te spreken...
Ik ben erg benieuwd naar hoe jullie dit zouden aanpakken en waar ik het nog zou moeten zoeken.
Alvast heel erg bedankt voor het meedenken
[edit]
Er zijn/waren meerdere API's, ik heb het over de nieuwe die sinds 2020 beschikbaar is. Alle code/voorbeelden/GitHubs/topics die gaan over vóór 2020 zullen dus NIET werken en dus ook niet van belang zijn.
SONY heeft er een API/SDK voor gemaakt, maar dat valt (voor mij althans) helaas nog niet mee
Als ik het goed begrijp kan ik op 2 manieren connecten met de camera.
1. via "Pairing" (dan moet de software een soort request sturen naar de camera waar je vervolgens moet bevestigen)
2. via SSH
Als ik in een browser naar http://192.168.1.88:64321/DigitalImagingDesc.xml ga, dan komt deze data naar voren:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| <scpd xmlns="urn:schemas-upnp-org:service-1-0"> <specVersion> <major>1</major> <minor>0</minor> </specVersion> <serviceStateTable> <stateVariable sendEvents="no"> <name>X_DigitalImagingDeviceInfo</name> <dataType>string</dataType> </stateVariable> </serviceStateTable> <X_DigitalImagingDeviceInfo> <X_DeviceInfo> <X_ModelName>ILCE-7SM3</X_ModelName> <X_FirmwareVersion>3.02</X_FirmwareVersion> <X_ServerType>Control with Smartphone</X_ServerType> <X_ServerVersion>3.01</X_ServerVersion> <X_MacAddress>A0:CD:F3:7D:21:1C</X_MacAddress> <X_FunctionLaunchFrom name="BluetoothRemotePowerControl"/> <X_SerialVersion>03772575</X_SerialVersion> </X_DeviceInfo> <X_DeviceCapability> <X_Bluetooth_4.0> <X_Function name="LocationInfoFromSmartPhone" version="1.1"/> <X_Function name="RemotePowerControl" version="1.0"/> </X_Bluetooth_4.0> </X_DeviceCapability> <X_DeviceRestriction> <X_PostViewOnContinuousShooting/> </X_DeviceRestriction> <X_PTP_Information> <X_PTP_Versions>3.00</X_PTP_Versions> <X_PTP_PairingNecessity>Unnecessary</X_PTP_PairingNecessity> <X_PTP_MediaServerSupport>Enable</X_PTP_MediaServerSupport> <X_PTP_RemoteControlSupport>Enable</X_PTP_RemoteControlSupport> </X_PTP_Information> <X_ConnectionInfo> <X_SSH_Support>Enable</X_SSH_Support> </X_ConnectionInfo> </X_DigitalImagingDeviceInfo> </scpd> |
Dat laat mij denken dat ik via SSH zou moeten kunnen inloggen. Maar wat ik ook probeer -zowel in mijn code als in de camera(settings)-, niets lijkt te werken.
Ik programmeer zelf altijd in VB.NET, maar als het moet zou het ook in C# kunnen. Het grote probleem is dat de SDK in C++ is gemaakt. Daar snap ik zelf letterlijk bijna niets van, dus dan gaat het natuurlijk een stuk moeilijker worden. Ik ben daarom opzoek naar een slimme manier waarop ik zelf niet alles hoef te snappen van C++, maar toch de API kan gebruiken. Is dat met een soort "wrapper" of "linker" ofzo? En hoe zou ik dit het beste kunnen aanpakken.
Er zit een voorbeeld-tooltje bij de API, maar dat is zover ik bebgrijp (en getest heb) alleen als je met USB wilt verbinden. Dat lukt ook, maar daar heb ik helaas niets aan omdat ik het via Wifi wil.
Wat ik verder ook begrijp uit het onderstaande filmpje, is dat ik zal moeten praten met de SONY SDK, en niet rechtstreeks met de camera zelf:
:strip_exif()/f/image/3vMehA0MOMDjOK7fTI5ffl3D.jpg?f=fotoalbum_large)
Dat maakt het nóg verwarrender voor me, want wat zou ik dan met SSH moeten? Of is dat gewoon om aan te geven dat ik wil dat de SDK met de camera via SSH spreekt? Anyway; dit maakt het voor mij gewoon nóg moelijker, want ik ben eigenlijk gewend om "gewoon rechtstreeks" tegen een API aan te spreken...
Ik ben erg benieuwd naar hoe jullie dit zouden aanpakken en waar ik het nog zou moeten zoeken.
Alvast heel erg bedankt voor het meedenken
[edit]
Er zijn/waren meerdere API's, ik heb het over de nieuwe die sinds 2020 beschikbaar is. Alle code/voorbeelden/GitHubs/topics die gaan over vóór 2020 zullen dus NIET werken en dus ook niet van belang zijn.