Skip to main content

Camera service grpc api

Project description

Camera service grpc API

Install Camerm api

Install

  1. using pip install local package
# Python12 
pip install camera-service-api==1.1.0


# Python7 
pip install camera-service-api==1.1.1

Dependencies

  • grpcio 1.63.0
  • protobuf 5.26.1

Build by proto

pip install   grpcio grpcio-tools protobuf

API

Get API Instance create_camera_service_api

  • host , camera server host , e.g. localhost
  • port , camera server port , e.g. 6000
# host 
api = create_camera_service_api(host, port)

Get All camera meta infos get_camera_metas

def get_camera_metas(self) -> List[CameraMeta]:
    ...     
metas = api.get_camera_metas()
for meta in metas:
    print(f"Camera modelName: {meta.modelName} - deviceVersion: {meta.deviceVersion}")
    print("get camera image serialNumber ", meta.serialNumber)
    print("get info ", meta.info)

CameraMeta

  • cameraType , camera type , GIGE | u3v
  • serialNumber : camera serial number ,
  • modelName : model name
  • manufactureName : manufacture name
  • deviceVersion : device version
  • userDefinedName : name defined by user
  • info : Map[string,string] , ext info

Get live image by serial number

input camera serial number and return live image (jpg), bytes. and if return None means the camera maybe offline.

and using try .. except for catch exception

def get_image(self, sn: str) -> bytes:
    ...     

Example:

...
body = api.get_image(meta.serialNumber)
print(" body : ", len(body)  )

...

fopen = open('test.jpg', 'wb+')
fopen.write( body )
fopen.close()

...

Example

import time

import grpc

from services.cameras.camera_service_api import create_camera_service_api


max_test = 100

def test_camera_api(host, port):
    #
    api = create_camera_service_api(host, port)
    metas = api.get_camera_metas()
    for meta in metas:
        print(f"Camera modelName: {meta.modelName} - deviceVersion: {meta.deviceVersion}")
        print("get camera image serialNumber ", meta.serialNumber)
        print("get info ", meta.info)

        t1 = time.time()
        try:
        
            for i in range( max_test ):
                body = api.get_image(meta.serialNumber)
                print(" body : ", i, len(body)  )

        except Exception as e:
            print( e) 

        t2 = time.time()
        tt = t2-t1
        avg = tt / max_test
        print( f" Try {max_test} times get image , using {tt} , avg {avg} ")

        # fopen = open('body.jpg'.encode('utf-8'), 'wb+')
        # fopen.write( body, )
        # fopen.close()

# protect the entry point
if __name__ == '__main__':
    print("GRPC Version : {} ".format(grpc.__version__))
    test_camera_api("127.0.0.1", 6000)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

camera_service_api-1.5.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

camera_service_api-1.5-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file camera_service_api-1.5.tar.gz.

File metadata

  • Download URL: camera_service_api-1.5.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for camera_service_api-1.5.tar.gz
Algorithm Hash digest
SHA256 43f2e10124839a6e334ed0e7de05453a6fe4817afcfde2c6b1a23f57382e5da3
MD5 3596127e1ac384aa978028e6d1d6a109
BLAKE2b-256 3d9ece1f95da7400e3ec4309e9048d69eb4cca46f5dfc1031aff5d180824956a

See more details on using hashes here.

File details

Details for the file camera_service_api-1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for camera_service_api-1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 fa7885749d07b235029f42ad3708843e20e8ccfa0a1ba1609145d0d5a28cc93e
MD5 013522388247637d82b430a381dffdb5
BLAKE2b-256 f6054b78a7e2a4057bd9de2df61bdd459dd8359e8a2579aafe1285056d5593fe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page