Skip to content

Let tachograph.lua work with lua5.3 while being backwards compatible. #110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dot_cardpeek_dir/scripts/lib/apdu.lua
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ function card.tree_startup(title)

atrnode = mycard:append({ classname="atr",
label="cold ATR",
size=#atr,
size=math.tointeger(#atr),
val=atr })

if candidates then
Expand Down
35 changes: 18 additions & 17 deletions dot_cardpeek_dir/scripts/tachograph.lua
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ function Count_NoOfEventsPerType()
end

function Count_ActivityStructureLength()
return activityStructureLength
return math.tointeger(activityStructureLength)
end

function Count_NoOfCardVehicleRecords()
Expand Down Expand Up @@ -281,9 +281,10 @@ end

function Tacho_TEXT_8859(data,node)
global('iconv')
local part = math.tointeger(data[0])

if iconv and data[0]>0 then
local format = "ISO-8859-"..data[0]
if iconv and part>0 then
local format = "ISO-8859-"..part
local conversion = iconv.open(format,"UTF-8")
local converted = conversion:iconv(data:sub(1):format("%C"))
if converted then
Expand All @@ -292,9 +293,9 @@ function Tacho_TEXT_8859(data,node)
end
end

if data[0]==1 then
if part==1 then
node:set_attribute("alt",data:sub(1):format("%P"))
elseif data[0]==0 then
elseif part==0 then
node:set_attribute("alt","(empty)")
end
end
Expand All @@ -305,7 +306,7 @@ function Tacho_DATEF(data,node)
end

function Tacho_NUMERIC(data,node)
node:set_attribute("alt",data:tonumber())
node:set_attribute("alt",math.tointeger(data:tonumber()))
end

function Tacho_REGION_NUMERIC(data,node)
Expand All @@ -327,7 +328,7 @@ function Tacho_ActivityChangeInfo(data,node)
local time = bit.AND(data:tonumber(),0x07FF)
local sub_node = node:append({ classname='record',
label='Change',
id=string.format("%02u:%02u",time/60,time%60),
id=string.format("%02u:%02u",math.floor(time/60),time%60),
val=data,
size=2 })
local activity = bit.SHR(bit.AND(data[0],0x18),3)
Expand Down Expand Up @@ -412,30 +413,30 @@ function Tacho_ACTIVITY_RECORDS(data,node)
local cat_cur = 0
local rec_date = os.date("!%d/%m/%Y", subpart(data,ptr+4,ptr+7):tonumber())

subnode = node:append({classname='record',label='CardActivityDailyRecord', size=rec_len, id=counter})
subnode = node:append({classname='record',label='CardActivityDailyRecord', size=math.tointeger(rec_len), id=counter})
subnode:append({classname='item',
label='activityRecordLength',
val=subpart(data,ptr+2,ptr+3),
alt=string.format("%d (address:%s)",rec_len,ptr)})
alt=string.format("%d (address:%s)",rec_len,math.tointeger(ptr))})
subnode:append({classname='item',
label='activityPreviousRecordLength',
val=subpart(data,ptr,ptr+1),
alt=subpart(data,ptr,ptr+1):tonumber()})
alt=math.tointeger(subpart(data,ptr,ptr+1):tonumber())})
subnode:append({classname='item',
label='activityRecordDate',
val=subpart(data,ptr+4,ptr+7),
alt=rec_date})
subnode:append({classname='item',
label='dailyPresenceCounter',
val=subpart(data,ptr+8,ptr+9),
alt=subpart(data,ptr+8,ptr+9):tonumber() })
alt=math.tointeger(subpart(data,ptr+8,ptr+9):tonumber()) })
subnode:append({classname='item',
label='activityDayDistance',
val=subpart(data,ptr+10,ptr+11),
alt=subpart(data,ptr+10,ptr+11):tonumber() .. " km"})
alt=math.tointeger(subpart(data,ptr+10,ptr+11):tonumber()) .. " km"})
subsub_node = subnode:append({classname='record',
label='activityChangeInfo',
size=#activity,
size=math.tointeger(#activity),
val=activity})

if #activity>0 then
Expand All @@ -452,10 +453,10 @@ function Tacho_ACTIVITY_RECORDS(data,node)
subnode:set_attribute("alt",string.format("%s: %d km\n %dh%02d break, %dh%02d availability, %dh%02d work, %dh%02d drive",
rec_date,
subpart(data,ptr+10,ptr+11):tonumber(),
cat_total[1]/60, cat_total[1]%60,
cat_total[2]/60, cat_total[2]%60,
cat_total[3]/60, cat_total[3]%60,
cat_total[4]/60, cat_total[4]%60))
math.floor(cat_total[1]/60), cat_total[1]%60,
math.floor(cat_total[2]/60), cat_total[2]%60,
math.floor(cat_total[3]/60), cat_total[3]%60,
math.floor(cat_total[4]/60), cat_total[4]%60))
else
subnode:set_attribute("alt","(no activity)")
end
Expand Down