Остановка прослушивающей функции OSC UDP. Приложение Xcode iOS

Я разрабатываю приложение, которое отправляет данные OSC через UDP между хост-программой и iPad. Отправка с iPad на хост-программу была достаточно простой. Однако получение данных из хост-программы на iPad было более проблематичным.

Я дошел до того, что iPad получает данные, но застревает в функции прослушивания пакетов .run (). Насколько я понимаю, .break () прервет функцию и вернется к моей основной программе, но, похоже, она не работает.

Я более опытен в работе с target-c в среде iOS, поэтому, возможно, мое рудиментарное понимание C ++ подводит меня.

Код ниже: (Я использовал библиотеку oscPack для создания этого кода. Доступно здесь: http://www.rossbencina.com/code/oscpack)

в моей основной функции (где точки перерыва () не работают):

ExamplePacketListener listener;
UdpListeningReceiveSocket s(
IpEndpointName( IpEndpointName::ANY_ADDRESS, RECEIVEPORT ),
&listener );

s.RunUntilSigInt();
//s.Run();
s.Break();
s.AsynchronousBreak();

Мой класс прослушивателя пакетов, очень похожий на пример oscPack. С некоторыми изменениями аргумента. Это была еще одна область, которая, как я чувствовал, могла вызвать проблемы. Если мои сообщения osc заполнены неправильно, может ли это остановить функцию run () от возврата?

class ExamplePacketListener : public osc::OscPacketListener {
protected:

virtual void ProcessMessage( const osc::ReceivedMessage& m,
const IpEndpointName& remoteEndpoint )
{
(void) remoteEndpoint; // suppress unused parameter warning

try{
// example of parsing single messages. osc::OsckPacketListener
// handles the bundle traversal.

if( std::strcmp( m.AddressPattern(), "/oscMasterSend" ) == 0 ){
// example #1 -- argument stream interface
osc::ReceivedMessageArgumentStream args = m.ArgumentStream();

bool a1;
args >> a1 >> osc::EndMessage;
NSLog(@"%d",a1);

}
}
}
};

Любой совет будет принята с благодарностью.

Спасибо,
Том.

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]