I am trying to pass some variadic parameters, but I am having no success.
Code:
void Dispositivo::enviarComandoPTZ( AcaoPTZEnum in_acao, DirecaoPTZEnum in_direcao )
{
std::string direcao = direcaoPTZMap[in_direcao];
std::string acao = StringUtil::to_string(in_acao);
char* buf = ByteUtil::hexStringToRawBytes( ComandoUtil::gerarComando( PTZ, m_sessao, acao.c_str(), direcao.c_str(), "4") ); // IT CRASHES HERE
int len = sizeof(buf);
m_pSocket->Write( buf, len );
}
std::string ComandoUtil::gerarComando(TipoComandoEnum in_tipo, std::string in_sessao, ...)
{
va_list parametros;
va_start ( parametros, in_sessao );
std::string payload = obterPayload(in_tipo,parametros);
Requisicao requisicao = Requisicao(in_tipo, payload, in_sessao);
return requisicao.gerarDados();
}
std::string ComandoUtil::obterPayload( TipoComandoEnum tipo, va_list parametros)
{
return (wxString::FormatV(_(payloadMap[tipo]),parametros)).ToStdString();
}
payloadMap is a map which holds the strings I need to format.
I am gettin a segmentation fault at the 3rd line of enviarComandoPTZ();