Ola Pessoal
Estou utilizando Ncl e Lua para criar uma aplicacao e estou recebendo o seguinte erro : /Controller.lua:34: bad argument #-2 to 'post' (strin
g expected, got nil))
CODIGO FONTE::
require "StoreClient"
require "ProductParser"
require "MockHttpClient"
Controller = {}
function Controller:new(evt, storeClient)
local instance = {}
setmetatable(instance, self)
self.__index = Controller
instance.event = evt;
instance.storeClient = storeClient;
return instance
end
function Controller:handle(event)
numberOfProducts = #self.storeClient:getProducts()
local productCountEventStart = {
class = "ncl",
type = "attribution",
property = "productsCount",
value = numberOfProducts,
action = 'start',
}
local productCountEventStop = {
class = "ncl",
type = "attribution",
property = "productsCount",
value = numberOfProducts,
action = 'stop',
}
self.event.post(productCountEventStart)
self.event.post(productCountEventStop)
end
----------------------
-- only registers event handler when event is present (to avoid errors while testing)
if (event ~= nil) then
local jsonParser = ProductParser:new()
local mockHttp = MockHttpClient:new()
local storeClient = StoreClient:new(jsonParser, mockHttp)
local ctrl = Controller:new(event, storeClient)
local function gingaEventHandler(evt)
ctrl:handle(evt)
end
event.register(gingaEventHandler)
end
OBS: Botei em negrito a linha do erro. Tentei tb utilizar o event.post passando "out" como parametro, mas tb nao funcionou.
Alguem sabe o que estou fazendo de errado?
valeu!
Autor: Bruno Ledesma
66 comentários
, got nil))
interface/output/dfb/DFBWindow.cpp <447>:
interface/output/dfb/DFBWindow.cpp <454>:
interface/output/dfb/DFBWindow.cpp <457>:
(!) [ 2992: 0.000] --> Caught signal 11 (at (nil), invalid address) <--
class = 'ncl',
type = 'attribution',
property = 'inc',
action = 'start',
value = '1',
} Mas no código que tem pra baixar faz assim: evt = {
class = 'ncl',
type = 'attribution',
name = 'inc',
action = 'start',
value = '1',
}
E na norma, disponível aqui: www.abnt.org.br/imagens/Normalizacao_TV_Digital/ABNTNBR15606-2_2007Vc_2008.pdf ,na página 146 (154 do pdf), na seção 10.3.4.3, menciona isso aqui: evt = { class='ncl', type='attribution', area='?', action='set' } Utilizando da forma como está no código disponível para download, tem funcionado. Existem outras inconsistências entre normas, exemplos e implementações, como por exemplo na classe de eventos tcp.