Skip to main content

Camera service grpc api

Project description

Camera service grpc API

Install

  1. using pip install local package
pip install camera-service-api

Dependencies

  • grpcio 1.63.0
  • protobuf 5.26.1

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.1.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

camera_service_api-1.1-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for camera_service_api-1.1.tar.gz
Algorithm Hash digest
SHA256 1bb021e7e1f7c01d85375bae69aad5d38d0614d5f2416e67800e5e96a8139360
MD5 076d2cc9b3266c2881a4f92a994129f0
BLAKE2b-256 c0f4d73e1e894b0408a7973976d146d76d36dc4a578d1e67f44eb553ac8d678c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_service_api-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f148765d4fd5bf1f8de4607cb35018c89348fc822ebbfd4df4d82e7a64ccf42a
MD5 a296ee5e199fac06f32a460823dc24e2
BLAKE2b-256 72159d5fd41fe1e7d8f631de68f18b0367ec6d03e138ec1418962e706b27c057

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