Skip to main content

Camera service grpc api

Project description

Camera service grpc API

Install

  1. copy dist/camera_service_api-1.0-py3-none-any.whl to your PROJECT_ROOT
  2. using pip install local package
pip install ./dist/camera_service_api-1.0-py3-none-any.whl

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

Uploaded Source

Built Distribution

camera_service_api-1.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: camera_service_api-1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 01e10470e6761739d4a33bca75d60d4fba04f02d42b8449414820de98170b2dc
MD5 55c77f02bfe2f7595d0ae35c99bccfc1
BLAKE2b-256 d6da58d998278c3dc60cc0ba8375af732d4c42a8dd9082c0f83dd959cf909f03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for camera_service_api-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7188d960a7efbfab79552e7fef6871138816edaa60f658aee4e2f693d61158c1
MD5 60f09c39d2e0f69158f07bc8ee006a63
BLAKE2b-256 0b4a23d4adb526c612f7fc4bb59f9b8261394ebcfcf95339edfba812b90695cd

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