forked from esitarski/CrossMgr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
OrionImport.py
41 lines (35 loc) · 1.06 KB
/
OrionImport.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import wx
import datetime
import Utils
import Model
import JChip
from ChipImport import ChipImportDialog
def parseTagTime( line, lineNo, errors ):
try:
fields = line.split(';' if ';' in line else ',')
msg = fields[0]
if msg != '$P':
return None, None
tag = fields[2]
tStr = fields[5]
except IndexError:
errors.append( u'{} {}: {}'.format(_('line'), lineNo, _('unrecognised input')) )
return None, None
try:
secs = int(tStr) / 1000.0 # Convert from 1000's of a second.
except ValueError:
errors.append( u'{} {}: {}'.format( _('line'), lineNo, _('invalid time')) )
return None, None
else:
t = datetime.datetime.combine( JChip.dateToday, datetime.time() ) + datetime.timedelta( seconds = secs )
return tag, t
def OrionImportDialog( parent, id = wx.ID_ANY ):
return ChipImportDialog( 'Orion', parseTagTime, parent, id )
if __name__ == '__main__':
app = wx.App(False)
mainWin = wx.Frame(None,title="CrossMan", size=(600,400))
Model.setRace( Model.Race() )
mainWin.Show()
dlg = OrionImportDialog( mainWin )
dlg.ShowModal()
dlg.Destroy()