Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.8.0 - Qt Creator : 4.3.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

WorkerScript

August 2015 modifié dans Qt / Free / Freebox
Bonjour à tous,

Quelqu'un a t-il fait marcher les WorkerScripts sur freebox v6 ?

Avec l'émulateur cela fonctionne, mais pas avec la freebox .... (arrrrrgh)

Y a t-il une astuce ? (Il semblerait que même l'auteur de la lib freebox ait reculé, car il n'a pas référencé ses WorkerScipts dans le qmldir !!)

Un avis ?

Olivier

Réponses

  • (HS : je ne sais pas si tu t'es présenté sur le forum Présentation. Si ce n'est pas le cas, il faut le faire)

    Salut et bienvenu sur le forum

    Le SDK de la Freebox ne contient pas (volontairement, pour des raisons de sécurité) tout le SDK de Qt. Et a ma connaissance, il n'y a aucune documentation de ce qui est dans le SDK Freebox ou pas. Donc difficile de te répondre.

    Pour être plus précis, tu as :
    - le SDK Qt officiel, qui est fournit par qtproject (lq documentation de Qt en ligne est basé dessus)
    - le SDK Qt installée dans la Freebox, qui est le SDK Qt moins les fonctions désactivées pour la sécurité
    - le SDK Freebox (appelé libfbxqml), qui sont les classes QML fournit par Freebox, pour étendre les fonctionnalités du Qt SDK

    Sur ton ordi, tu exécutes un programme QML, utilisant le SDK Freebox et le Qt SDK officiel. Sur la Freebox, le programme tourne avec le SDK Qt bridée de la Freebox, ce qui peut expliquer la différence de comportement.
    Si c'est le cas, tu ne peux rien faire, cette fonctionnalité est bridée.

    Cela peut aussi venir d'une erreur dans le code, ou d'une gestion différente des fichiers sur la Freebox (il faut par exemple avoir un fichier qmldir dans certains cas). Mais difficile d'aider plus aussi dans ce cas, il n'y a pas trop de moyens de déboguer correctement avec la Freebox. Il faut faire les choses a tâtons.

    Si la demande des utilisateurs est suffisantes, vous pouvez également contacter les devs Freebox. Mais vous vous doutez bien qu'ils n'auront pas le temps de faire du support technique pour chaque demande individuelle (ou qui concerne 2 ou 3 personnes)

    Tu voulais utiliser les WorkerScript pour faire quoi en particulier ? Il y a peut être moyen de contourner
  • Salut,

    J'ai besoin d'un parser XML qui gère les namespaces, et comme QT fournit le strict minimum (et encore je suis gentil en disant cela),
    et que je ne peux faire sans les namespaces : ma seule solution est d'en implémenter/adapter un !

    Seul problème: le temps de parsing. En effet, ayant des fichiers un peu gros, je mets plus de 1,5~2,5 secondes à les analyser ... résultat l'UI est figé pendant le parsing ! (normal me direz-vous !)

    Faire cette analyse en tache de fond sur un autre Thread, est très séduisante, et fonctionne parfaitement dans l'émulateur ! (donc j'en rage sévère !!!!)

    De plus, faire un parser fonctionnant sur un Timer de 10ms serait franchement pénible ...
    D'ou ma question avant que je ne me fasse violence !

    Quelqu'un aurait-il une ASTUCE pour faire fonctionner ces p****n de WorkerScript sur freebox ?

    Merci ;-p

    PS: Je suis au courant pour les limitations, mais quand même, les WorkerScripts ne me paraissent pas spécialement dangereux !
    Et il y a peut-être une astuce ? qui sait ?
    Entre-nous, quand j'ai vu que le qmldir ne contenait pas le deferred_worker.qml ... je savais déjà que cela sentait pas très bon, mais l'espoir fait vivre !
  • Cela ne sert a rien de rager pour rien. On fait avec ce que l'on a et si on peut pas, on fait pas.

    Les Xml Query ne gèrent pas les namespaces ? (je n'ai aucune idée de ce que sont ces namespaces)

    Et les fonctions asynchrones du SDK Freebox ne fonctionnent pas dans ce cas ?
  • "j'en rage", c'est surtout que la mise en place des WorkerScript était finie, bien sympa, jolie et marchait bien !
    Mais ça ne sera pas non plus la première fois que je dois recommencer quelque chose ... bref ....

    Aux dernières nouvelles, le parser XML associé au XmlHtppRequest est une implémentation minimum et il ne gère pas les namespaces d'après mes tests.

    C'est même écrit dans la doc :
    "Additionally, the responseXML XML DOM tree currently supported by QML is a reduced subset of the DOM Level 3 Core API supported in a web browser."

    Mais quand même .... j'en attendais un peu plus ! (Surtout que le DOM level 3 contient les namespaces)


    Sinon, je ne vois pas de quoi tu parles avec "les fonctions asynchrones" ?

    Olivier
  • Je pensais plus aux XmlListModel qu'au XmlHtppRequest

    Pour les asynchrones, je pensais a : http://dev.freebox.fr/sdk/libfbxqml/async/#fbx-async (mais je n'ai pas encore testé).

    On ne connait pas le bridage du SDK de la Freebox. Avant de prendre du temps a implémenter quelques choses (ScriptWorker), il faut tester pour voir si la fonctionnalité est dispo
  • Oui ben justement,

    si tu regardes le package, tu vas trouver le fameux "deferred_worker_script.js" une sorte de ScriptWorker avorté (car il n’apparaît pas dans le qmldir) !

    Sinon, il faudrait se faire rapidement une liste des trucs incompatibles ! (J'ai repéré des différences de comportement du player audio)

    Personnellement, Je n'ai pas toujours une freebox v6 à dispo, et à défaut, je code selon les standards QML Quick et l'émulateur !

    Sinon aurais-tu des nouvelles du portail développeurs pour les soumissions ? (septembre ?)

    Olivier
  • gbdivers said:
    Je pensais plus aux XmlListModel qu'au XmlHtppRequest
    Mais... vive l'Ajax !
  • arg.....
  • Bonjour,

    À ma connaissance, nous n'avons mis aucune limitation sur les WorkerScripts. Ils sont donc utilisables sur la box. Attention cependant aux limitations inhérentes à ceux-ci, lisez bien la doc de Qt à ce sujet.
  • Moi, je rage de voir les nouveaux ne pas daigner se présenter !

    Oeuillot, je j'en joint à faire un petit détour par la rubrique http://forum.qtfr.org/categories/le-coin-des-membres pour te présenter…
  • @mid: J'ai un workerScript qui fonctionne sur l'émulateur mais pas sur la box, puis-je considérer cela comme un bug ?
    Ou une mauvais façon de faire ?

    Avez-vous un exemple fonctionnel à me (nous) fournir !!!!
    Ca serait génial pour mon appli !

    Merci

    Olivier

    PS: Pour la description, j'en ai fait une dans un thread, il faut que je le retrouve !
  • Bonjour,

    @oeuillot: le mieux est de réduire votre code à sa plus simple expression et le poster sur un pastebin quelconque, qu'on puisse tester / regarder.
  • hou la la ....
    J'y croyais tellement plus, que j'ai tout effacé depuis belle lurette :-p

    Ok je vous prépare ça !

    Merci,

    Olivier
Connectez-vous ou Inscrivez-vous pour répondre.