No seu cenário, um tópico está respondendo a um método de leitura/gravação bloqueando, aguardando até que detecte uma palavra -chave ou tempo de saída usando waitkeyword (). Infelizmente, quando o ReadLines () é utilizado para testar o aplicativo, apenas uma pequena parte do arquivo é obtida. Além disso, o ReadLines retorna imediatamente false durante a segunda iteração sem esperar pelo tempo limite. Quando uma sequência de comandos está sendo processada, o ReadLines () lê apenas a primeira parte do arquivo porque não detecta a palavra -chave. Posteriormente, quando é chamado novamente, o readLines () retorna false, pois já iterou sobre todos os dados disponíveis. Isso fornece um método estruturado e confiável para gerenciar o fluxo de comandos e respostas, garantindo que a resposta esperada seja recebida antes de prosseguir. Q_Object AppPipe m_port {nullptr, qiodevice :: readWrite, this}; Estado s_boot {& m_mach, "s_boot"}, s_send {& m_mach, "s_send"}; FinalState S_OK {& m_mach, "S_OK"}, s_failed {& m_mach, "s_failed"}; público: Programador (QObject * pai = 0): StatefulObject (pai) { ConnectSignals (); m_mach.setInitialState (& s_boot); send (& s_boot, & m_port, "boot \ n"); Espere (& s_boot, & m_port, "Boot bem -sucedido", & s_send, 1000, & s_failed); send (& s_send, & m_port, ": hullothere \ n: 00000001ff \ n"); Espere (& s_send, & m_port, "carregar sucesso", & s_ok, 1000, & s_failed); } ApppPipe & Pipe () {return m_port; } };
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3