def main(): info = True photomode = False api = pysony.SonyAPI() search = pysony.ControlPoint() cameras = search.discover(1) if len(cameras): camera = pysony.SonyAPI(QX_ADDR=cameras[0]) else: print("No camera found, aborting") return -1 mode = camera.getAvailableApiList() # For those cameras which need it if 'startRecMode' in (mode['result'])[0]: camera.startRecMode() time.sleep(5) # and re-read capabilities mode = camera.getAvailableApiList() if 'setLiveviewFrameInfo' in (mode['result'])[0]: if info: camera.setLiveviewFrameInfo([{"frameInfo": True}]) else: camera.setLiveviewFrameInfo([{"frameInfo": False}]) url = camera.liveview() #liveview(["L"]) -> large incoming_image = None frame_info = None print("set cam mode") # Ensure that we're in correct mode (movie by default) mode = camera.getAvailableShootMode() if type(mode) == dict: if (mode['result'])[0] != 'movie': if 'movie' in (mode['result'])[1]: camera.setShootMode(["movie"]) #other option: "still" else: photomode = True print("starting stream") lst = api.LiveviewStreamThread(url) lst.start() for i in range(100): print("frame {}".format(i)) header = lst.get_header() if header: image_file = io.BytesIO(lst.get_latest_view()) incoming_image = Image.open(image_file) incoming_image.sav("test.jpg") frame_info = lst.get_frameinfo() print(frame_info) time.sleep(.1) print("stop") api.stopLiveview('1.0')
def setupCam(self): # print("Searching for camera...") # self.search = pysony.ControlPoint(interface="wlan0") # self.cameras = self.search.discover() # if len(self.cameras): # print("Found: %s" % self.cameras[0]) # print("") # self.camera = pysony.SonyAPI(QX_ADDR=self.cameras[0]) # else: # print("No camera found, aborting") # quit() self.camera = pysony.SonyAPI(QX_ADDR=self.QX_ADDR) self.camera.startRecMode() time.sleep(5) self.camera.setFocusMode('AF-S') self.camera.setPostviewImageSize('Original') self.camera.setFNumber('22') self.camera.setIsoSpeedRate('100') self.camera.setShutterSpeed('1/20') self.camera.setTouchAFPosition([50.0, 50.0])
#!/usr/bin/env python import pysony import base64, hashlib import six print("Searching for camera...") search = pysony.ControlPoint() cameras = search.discover() if len(cameras): camera = pysony.SonyAPI(QX_ADDR=cameras[0]) else: print("No camera found, aborting") quit() # This call fails with a '403 - Permission Error' on the HDR-AS15 (fw V3.0) # Once authenticated it will complete sucessfully # print("Get Movie Quality: %s" % camera.getMovieQuality()) # Tied to Methods list below, 64 _ASCII_ characters = 256 bit equivalant AUTH_CONST_STRING = "35fc6c85705f5b37eb0f31f60c8412644fb2755ff55701e04a82d671c4b5d998" # Enable _Everything_ we know about... # $ grep -e ' def [^_]' src/pysony.py | grep -v -e 'discover(' | sed -e 's/ def /camera\//g' -e 's/(.*/:\\/g' | sort METHODS_TO_ENABLE = "\ avContent/deleteContent:\ avContent/getContentCount:\ avContent/getContentList:\ avContent/getSchemeList:\
def test_loadpysony(self): api = pysony.SonyAPI() self.assertEqual(api.QX_ADDR, 'http://10.0.0.1:10000')
import pysony search = pysony.ControlPoint() cameras = search.discover(5) print "Available cameras", cameras print for x in cameras: print "Checking Camera", ":", x camera = pysony.SonyAPI(QX_ADDR=x) mode = camera.getAvailableApiList() print mode print
parser.add_argument("-E", "--expose", type=int, dest="expose", help="switch to exposure mode 'x'") parser.add_argument("-S", "--shoot", type=int, dest="shoot", help="switch to shoot mode 'x'") parser.add_argument("-F", "--func", type=int, dest="func", help="switch to function mode 'x'") options = parser.parse_args() print("Searching for camera...") search = pysony.ControlPoint() cameras = search.discover() # cameras = ['http://192.168.122.1:8080'] if len(cameras): print("Found: %s" % cameras[0]) print("") camera = pysony.SonyAPI(QX_ADDR=cameras[0], debug=options.brute) else: print("No camera found, aborting") quit() mode = camera.getAvailableApiList() # Force Exposure Mode if options.expose and 'setExposureMode' in (mode['result'])[0]: resp = camera.getAvailableExposureMode() camera.setExposureMode(resp['result'][1][options.expose-1]) # Force Shoot Mode if options.shoot and 'setShootMode' in (mode['result'])[0]: resp = camera.getAvailableShootMode() camera.setShootMode(resp['result'][1][options.shoot-1])