Aller au contenu

Messages recommandés

Posté(e) (modifié)

Ouais t'as bien fait, j'étais sur la page justement, mais je comprends pas bien comment ça marche.

SI je fais ça

local tab = split("HDMI 2,DTS,48 kHz,5.1 ch,DTS,5.1 ch,\0x1A\r\n",",");

ça bug :/ Il devrait pas me sortir un tableau pourtant ?

 

EDIT : On a quelle version de LUA ? Je me demande si la fonction split est implémentée ?

Modifié par BenjyNet
Posté(e)

Essaye plutot un truc comme sa mais modifie le pour les virgules

local example = "an example string"
for i in string.gmatch(example, "%S+") do
print(i)
end

-- output:
-- an
-- example
-- string
Posté(e)

Ou sinon tu fais ta propre fonction split :

function split(pString, pPattern)
   local Table = {}
   local fpat = "(.-)" .. pPattern
   local last_end = 1
   local s, e, cap = pString:find(fpat, 1)
   while s do
          if s ~= 1 or cap ~= "" then
          table.insert(Table,cap)
          end
          last_end = e+1
          s, e, cap = pString:find(fpat, last_end)
   end
   if last_end <= #pString then
          cap = pString:sub(last_end)
          table.insert(Table, cap)
   end
   return Table
end
Posté(e)

Désolé je viens juste de récupérer du réseau :-(

Tu as raison Benjy car la méthode split n'existe pas en LUA en tout cas pas en natif ;-) il me semble bien... J'ai aussi fait une fonction split perso ou sinon tu peux faire un :match("([^,]+),([^,]+ et etc. )"...

Dsl sur mon tel c'est pas simple ;-)

Envoyé de mon iPhone àl'aide de Tapatalk

Posté(e)

tu peux faire ça en plus simple:

function split(s)
  if (string.len(s)>0) then
    local _a, returnvalue = nil, {};
    for _a in string.gmatch(s, "([^,]+)") do
      fibaro:debug(string.format("%s", tostring(_a)));
      table.insert(returnvalue, tostring(_a));
    end
    return returnvalue;
  end
  return nil;
end

split("HDMI 2,DTS,48 kHz,5.1 ch,DTS,5.1 ch,\0x1A\r\n");

ou si tu es sur que la chaîne est toujours identique il y a mieux:

function decode(s)
  return s:match("([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+)")
end

local a, b, c, d, e, f = decode("HDMI 2,DTS,48 kHz,5.1 ch,DTS,5.1 ch,\0x1A\r\n");

fibaro:debug(a);
fibaro:debug(;
--etc...

:)

Posté(e) (modifié)

Moi je parie sur cédric qui va me dire que ça marche pas :rolleyes:

 

EDIT : On dirait que le mainloop plantouille au bout d'un moment. Dites moi de votre côté ce que ça donne.

Modifié par BenjyNet
Posté(e)

J'ai pas regarder ton code, mais je te conseille de mettre tout ton code dans un bouton , et d'appeller celui-ci avec le main loop ;)

Posté(e)

Bah pourquoi  Shad ? Je vais pas rajouter un bouton qui sert à  rien, sauf checker l'etat de l'ampli :/

 

EDIT : Pour le moment ça tiens : [DEBUG] 14:36:22: Process #182 is finish!

Posté(e)

Moi je me suis aperçue que le main loop planté souvent pour ma part.

Donc c'est la seul solution que j'ai trouvé.

Posté(e)

@Shad, je veux pas faire mon lourd mais sauf cas vraiment très particulier je n'ai pas de plantage de MainLoop, mon code pour le VD Pioneer tourne depuis des mois et n'a jamais planté et je suis prêt a parier que l'adaptation de Benjy tournera sans problèmes ;).

 

ps: ce qui fait planter le main loop dans 99.9% des cas c'est cette maudite librairie json et le T_END de la mort :angry: qui pète la sandbox du mainloop d’où le besoin de redémarrage du vd mais encore tout cela dans des cas bien précis :mellow: . J'ai un petit hack pour régler le problème, le coup du PUT en lua mais comme la librairie json est buggé cela ne marche qu'avec des codes de petites tailles...

 

http://buildd-clang.debian.net/fetch.php?pkg=lua-cjson&arch=amd64&ver=2.1.0%2Bdfsg-2&stamp=1366389325

http://bugzilla.fibaro.com/view.php?id=1226

Posté(e)

Désolé, j'étais en déplacement, pas pu tester avant :( Mais je viens de tester la dernière version ce soir, et tout a l'air de parfaitement fonctionner, cette fois ! Quand je change quelque chose sur l'ampli l'état remonte correctement: sortie utilisée, niveau du volume, etc... Je crois que cette fois c'est la bonne :D

Posté(e)

Oh ! C'est pas vrai cédric ? Tiens moi au courant si c'est stable.

Tu pourras jeter un oeil sur un MP que je t'ai envoyé ?

Posté(e)

hello,

 

L'ancienne version ne fonctionnait plus, pourquoi je ne sais pas, enfin si, mais le bouton ON ne voulait plus rien faire.

J'essaye cette version pour voir ;)

Posté(e)

Teste, tu verras bien, moi ici ça roule.

Ou alors tu attends la sortie de la v4, Fibaro annonce la compatibilité avec onkyo & co. Je me demande ce qu'ils vont sortir.

×
×
  • Créer...