def list_to_string(param_list): if not len(param_list): return VistaUtils.str_pack('', RpcParameter.COUNT_WIDTH) + 'f' param_string = "" for param in param_list: if param[1] == "": param[1] = "\x01" param_string += VistaUtils.str_pack(param[0], RpcParameter.COUNT_WIDTH) + \ VistaUtils.str_pack(param[1], RpcParameter.COUNT_WIDTH) + 't' return param_string[0:-1] + 'f'
def prepare_param_str(params): param_str = '5' if params: for param in params: if param.type == RpcParameter.LITERAL: param_str += '0' + VistaUtils.str_pack(param.value, VistaRpc.COUNT_WIDTH) + 'f' elif param.type == RpcParameter.REFERENCE: param_str += '1' + VistaUtils.str_pack(param.value, VistaRpc.COUNT_WIDTH) + 'f' elif param.type == RpcParameter.LIST: param_str += '2' + RpcParameter.list_to_string(param.value) else: raise VistaException('Invalid param type') if param_str == '5' : param_str += '4f' return param_str
def prepare_param_str(params): param_str = '5' if params: for param in params: if param.type == RpcParameter.LITERAL: param_str += '0' + VistaUtils.str_pack( param.value, VistaRpc.COUNT_WIDTH) + 'f' elif param.type == RpcParameter.REFERENCE: param_str += '1' + VistaUtils.str_pack( param.value, VistaRpc.COUNT_WIDTH) + 'f' elif param.type == RpcParameter.LIST: param_str += '2' + RpcParameter.list_to_string(param.value) else: raise VistaException('Invalid param type') if param_str == '5': param_str += '4f' return param_str
def test_str_pack(self): expected = "0000000015something!5here" actual = VistaUtils.str_pack("something!5here", 10) self.assertEqual(expected, actual)
def __connect_rpc(params): return "[XWB]10304\x0ATCPConnect50" + VistaUtils.str_pack(params[0].value, VistaRpc.COUNT_WIDTH) + \ "f0" + VistaUtils.str_pack('0', VistaRpc.COUNT_WIDTH) + \ "f0" + VistaUtils.str_pack(params[1].value, VistaRpc.COUNT_WIDTH) + \ "f" + VistaRpc.EOT