Я пытаюсь изменить выходное значение усиления на UHD: USRP Sink из некоторого кода C ++ через источник сообщений ZMQ. В данный момент я пытаюсь сделать это с помощью сокета ZMQ_PUSH, подключенного к «источнику сообщений ZMQ PULL». В блок-схеме GRC для облегчения тестирования я подключил выход источника ко всем трем входам блока отладки сообщений. Тогда:
_zmqCtx = new zmq::context_t(1);
zmq::socket_t* _zmqGainSocket;
_zmqGainSocket = new zmq::socket_t(*_zmqCtx, ZMQ_PUSH);
_zmqGainSocket->setsockopt(ZMQ_IDENTITY, "N");
_zmqGainSocket->setsockopt(ZMQ_CONNECT_TIMEOUT, 1000);
_zmqGainSocket->setsockopt(ZMQ_RCVTIMEO, 1000);
_zmqGainSocket->connect("tcp://127.0.0.1:3002");
Как только это настроено, в другом месте кода:
zmq::message_t zGainMsg (5);
memcpy (zGainMsg.data (), "True", 4);
try {
_zmqGainSocket->send (zGainMsg);
} catch (std::exception& e) {
// Just checking for debug
auto a = e.what();
}
Этот код не выводит никаких данных, но также не выдает никаких ошибок или исключений. Я что-то здесь не так сделал?
Наконец, после того, как это решено, я не смог найти никакой документации о том, как отформатировать сообщение, чтобы контролировать усиление в приемнике USRP. У вас есть пример того, как это сообщение должно выглядеть?
Спасибо.