IBAction qui freeze mon app
jeffadsl
Membre
Salut à tous,
J'ai un petit soucis avec mon code. Il s'agit d'une application qui envoie du "artnet" qui est un protocole réseau (c'est comme du midi mais pour les éclairages professionels)
j'ai une IBaction rattachée à un bouton qui doit m'envoyer un message artnet via mon réseau wifi et un slider qui change un paramètre de ce message.
le signal artnet doit être envoyé en continue dans le réseau wifi mais son contenu doit pouvoir évolué en fonction de la position de mon slider
mon problème c'est que le code qui suit envoie bien le message artnet avec la valeur de position de mon slider, mais une fois lancée l'IBaction m'empêche de modifier la position de mon slider. Le message est bien envoyer en continue, la position initiale du slider est prise en compte mais je pense que ça boucle et ne aucune autre action n'est possible.
si une âme charitable pouvait se pencher sur mon problème.
d'avance, merci
voici le code :
J'ai un petit soucis avec mon code. Il s'agit d'une application qui envoie du "artnet" qui est un protocole réseau (c'est comme du midi mais pour les éclairages professionels)
j'ai une IBaction rattachée à un bouton qui doit m'envoyer un message artnet via mon réseau wifi et un slider qui change un paramètre de ce message.
le signal artnet doit être envoyé en continue dans le réseau wifi mais son contenu doit pouvoir évolué en fonction de la position de mon slider
mon problème c'est que le code qui suit envoie bien le message artnet avec la valeur de position de mon slider, mais une fois lancée l'IBaction m'empêche de modifier la position de mon slider. Le message est bien envoyer en continue, la position initiale du slider est prise en compte mais je pense que ça boucle et ne aucune autre action n'est possible.
si une âme charitable pouvait se pencher sur mon problème.
d'avance, merci
voici le code :
-(IBAction)startartnet
{
artnet_node *artnetNode = artnet_new(ip_addr, 1);
artnet_set_long_name(artnetNode, "ArtPAD");
artnet_set_short_name(artnetNode, "AP");
artnet_set_subnet_addr(artnetNode, subnet_addr) ;
artnet_set_port_type(artnetNode, 0, ARTNET_ENABLE_OUTPUT, ARTNET_PORT_DMX) ;
artnet_set_port_addr(artnetNode, 0, ARTNET_OUTPUT_PORT, port_addr);
if (artnet_start(artnetNode) != 0) {
printf("Error: %s\n", artnet_strerror());
exit(-1);
}
while (YES) {
artnet_send_poll(artnetNode, NULL, ARTNET_TTM_DEFAULT);
int a = 3;
int b = slider1.value;
uint8_t dmxcolor=#2500d8]512[/color = {0};
dmxcolor=#2500d8]9[/color = 127;
dmxcolor=#2500d8]19[/color = 127;
dmx[a] = b;
artnet_send_dmx(artnetNode, 1, sizeof(dmx), dmx);
}
}
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je ferais autrement...
J'aurais un NSTimer qui fire sur un méthode qui dialogue en continue avec, en ayant un paramètre en fonction de la position du slider ?
au fait, je suis gros débutant sous Xcode, aurais-tu un exemple à me proposer pour le NSTimer car je n'ai jamais utilisé.
Merci beaucoup pour ton aide
Pour arrêter ton timer :
une idée?
j'ai crée un bouton ON avec la fonction timer qui déclenche "-(IBAction)startartnet"
et un bouton OFF pour arrêter le timer
T'es motivé ! SdZ + Ici !
- Lire le Stream Programming Guide
- Multithreading (lire les Programming Guides associés)
- Concepts de code synchrone et asynchrone
- Concept d'attente active (à éviter à tout prix), d'attente passive (bien mieux et non bloquante)
- Timers, RunLoop
[font=helvetica, arial, sans-serif]Avec timer et le [/font][font=helvetica, arial, sans-serif]while retiré [/font]
[font=helvetica, arial, sans-serif]et le code corrigé[/font]
[font=helvetica, arial, sans-serif]Merci @ tous[/font]