Source code for BAC0.core.functions.Text

from bacpypes3.apdu import WritePropertyRequest
from bacpypes3.app import Application
from bacpypes3.constructeddata import Any
from bacpypes3.pdu import Address
from bacpypes3.primitivedata import CharacterString

from BAC0.core.app.asyncApp import BAC0Application


[docs] class TextMixin: """ Mixin with functions to deal with text properties. Adding features to "network" itself. """
[docs] def send_text_write_request( self, addr: str, obj_type: str, obj_inst: int, value: str, prop_id: str = "description", ) -> None: request = self.build_text_write_request( addr=addr, obj_type=obj_type, obj_inst=obj_inst, value=value, prop_id=prop_id, ) self.write_text_value(request)
[docs] def build_text_write_request( self, addr: str, obj_type: str, obj_inst: int, value: str, prop_id: str = "description", ) -> WritePropertyRequest: request = WritePropertyRequest( objectIdentifier=(obj_type, obj_inst), propertyIdentifier=prop_id ) request.pduDestination = Address(addr) _value = Any(None) _value.cast_in(CharacterString(value)) request.propertyValue = _value return request
[docs] def write_text_value( self, request: WritePropertyRequest, timeout: int = 10 ) -> None: _this_application: BAC0Application = self.this_application _app: Application = _this_application.app self.log(f"{'- request:':>12} {request}", level="debug") _app.request(request)