function readformatEvent() local b = readCount() local a = 0 local results = {} local tableRes = {} local code local preset = '' local presetLowQty = '' local i = 0 local j = 0 local data = {} local middle = 0 local k = 0 local dato local centerCoords local posX, posY -- Contar códigos válidos for i = 1, b do code = readResult(i):readData() if (code ~= 'ERROR') then a = a + 1 presetLowQty = code end end -- CASO 1: Un solo código if (a == 1) then dato = readResult():readData() centerCoords = readResult():centerCoordinate() table.insert(tableRes, dato .. ':001:' .. centerCoords) return table.concat(tableRes, ',') -- CASO 2: Dos códigos elseif (a == 2) then for i = 1, a do data[i] = readResult(i):readData() end if (data[1] == data[2]) then for i = 1, 2 do centerCoords = readResult(i):centerCoordinate() local pos = i if pos < 10 then pos = '00' .. pos elseif pos < 100 then pos = '0' .. pos else pos = tostring(pos) end table.insert(tableRes, data[i] .. ':' .. pos .. ':' .. centerCoords) end return table.concat(tableRes, ',') else return 'Mezclado' end -- CASO 3: Caja vacía elseif (a == 0) then return 'Caja vacia' -- CASO 4: Más de 2 códigos else middle = math.floor(a / 2) -- Leer todos los códigos for i = 1, b do code = readResult(i):readData() if (code ~= 'ERROR') then table.insert(data, code) end end -- Determinar el código preset (más repetido) preset = '' local maxCount = 0 for i = 1, #data do if (data[i] ~= 'ERROR') then k = 0 for j = 1, #data do if (data[j] == data[i]) then k = k + 1 end end if (k > maxCount) then maxCount = k preset = data[i] end end end -- Si no hay preset, tomar el primero válido if (preset == '' or preset == nil) then for i = 1, #data do if (data[i] ~= 'ERROR' and data[i] ~= nil) then preset = data[i] break end end end -- Generar resultados for i = 1, b do code = readResult(i):readData() if (code ~= 'ERROR' and code ~= nil) then centerCoords = readResult(i):centerCoordinate() -- Formatear posición con 3 dígitos local pos = i if pos < 10 then pos = '00' .. pos elseif pos < 100 then pos = '0' .. pos else pos = tostring(pos) end table.insert(results, code .. ':' .. pos .. ':' .. centerCoords) else table.insert(results, 'ERROR') end end return table.concat(results, ',') end end function nameformatEvent() return 'Captura_Scanner' end