Tenho um servidor de soquete e estou usando o reactphp para Sua visita nos ajuda a continuar oferecendo o melhor para você! conexões de vários clientes. Precisarei fazer várias solicitações de registro e esperar o retorno de cada uma antes de passar para o próximo registro.
O que está acontecendo na minha realização é que estou fazendo um loop e o resultado não é o esperado. Por exemplo, se eu precisar dos registros 30001, 30004 e 30006, mesmo no loop, com a requisição ($conn->write($rtuPacket))
Sua visita nos ajuda a continuar oferecendo o melhor para você! todos os registros, o retorno final é somente “30001” repetidamente.
Uma vez que posso esperar que cada transação de pergunta/resposta seja concluída antes de passar para a próxima solicitação?
Aquém está segmento do meu código:
for ($i = 0; $i < sizeof($get_index_read_input_registers); $i++) {
$startAddress = $get_index_read_input_registers[$i]["ADDRESS"];
$quantity = $get_index_read_input_registers[$i]["QUANTITY"];
$slaveId = $arr_addr_rs485[$j];
$packet = new ReadInputRegistersRequest($startAddress, $quantity, $slaveId);
$rtuPacket = RtuConverter::toRtu($packet);
$conn->write($rtuPacket);
$receivedData = b'';
$conn->on('data', function ($data) use ($conn, $logger, &$receivedData) {
$logger->debug($conn->getRemoteAddress() . ": RTU received: (in HEX):" . unpack('H*', $data)[1]) . PHP_EOL;
});
//ReactAsyncawait(3.0);
}
Tags:
Crédito: Sua visita nos ajuda a continuar oferecendo o melhor para você! target="_blank" style="color: #1343A2;" rel="noopener">Nascente Original