Ejemplo n.º 1
0
        def func(*args, **kwargs):
            response = f(*args, **kwargs)
            if response.isError():
                if isinstance(response, exceptions.ModbusIOException):
                    # Probably, disconnected to the Modbus Server.
                    raise ExceptionResponse(response.message)
                else:
                    raise ExceptionResponse(ModbusExceptions.decode(
                        int.from_bytes(response.encode(), 'big')))
            data = response.encode()

            if 1 == len(data):
                raise ExceptionResponse(
                    ModbusExceptions.decode(int.from_bytes(data, 'big')))
            return data[1:]
Ejemplo n.º 2
0
 def _process_exception(resp, **kwargs):
     unit = kwargs.get("unit")
     if unit == 0:
         err = {
             "message": "Broadcast message, ignoring errors!!!"
         }
     else:
         if isinstance(resp, ExceptionResponse):
             err = {
                 'original_function_code': "{} ({})".format(
                     resp.original_code, hex(resp.original_code)),
                 'error_function_code': "{} ({})".format(
                     resp.function_code, hex(resp.function_code)),
                 'exception code': resp.exception_code,
                 'message': ModbusExceptions.decode(resp.exception_code)
             }
         elif isinstance(resp, ModbusIOException):
             err = {
                 'original_function_code': "{} ({})".format(
                     resp.fcode, hex(resp.fcode)),
                 'error': resp.message
             }
         else:
             err = {
                 'error': str(resp)
             }
     return err
Ejemplo n.º 3
0
 def func(*args, **kwargs):
     response = f(*args, **kwargs)
     data = response.encode()
     if 1 == len(data):
         raise ExceptionResponse(
             ModbusExceptions.decode(int.from_bytes(data, 'big')))
     return data
Ejemplo n.º 4
0
 def _process_exception(resp):
     err = {
         'original_function_code':
         "{} ({})".format(resp.original_code, hex(resp.original_code)),
         'error_function_code':
         "{} ({})".format(resp.function_code, hex(resp.function_code)),
         'exception code':
         resp.exception_code,
         'message':
         ModbusExceptions.decode(resp.exception_code)
     }
     return "Exception Response({})".format(err)
Ejemplo n.º 5
0
 def _process_exception(resp):
     if isinstance(resp, ExceptionResponse):
         err = {
             'original_function_code': "{} ({})".format(
                 resp.original_code, hex(resp.original_code)),
             'error_function_code': "{} ({})".format(
                 resp.function_code, hex(resp.function_code)),
             'exception code': resp.exception_code,
             'message': ModbusExceptions.decode(resp.exception_code)
         }
     elif isinstance(resp, ModbusIOException):
         err = {
             'original_function_code': "{} ({})".format(
                 resp.fcode, hex(resp.fcode)),
             'error': resp.message
         }
     else:
         err = {
             'error': str(resp)
         }
     return err