fixes to pynorm for Python3 and normMsgr.py and normFileSend.py examples

pull/68/head
bebopagogo 2022-05-22 22:01:47 -04:00
parent 972b1a3e0b
commit 5cd6498c39
3 changed files with 23 additions and 23 deletions

View File

@ -28,7 +28,7 @@ def main(argv):
(opts, args) = get_option_parser().parse_args(argv)
if len(args) != 2:
print get_option_parser().get_usage()
print(get_option_parser().get_usage())
return 1
path = os.path.abspath(args[1])
@ -45,26 +45,26 @@ def main(argv):
for event in instance:
if event == 'NORM_RX_OBJECT_INFO':
event.object.filename = os.path.join(path, event.object.info)
print 'Downloading file %s' % event.object.filename
print('Downloading file %s' % event.object.filename)
elif event == 'NORM_RX_OBJECT_UPDATED':
print 'File %s - %i bytes left to download' % (
event.object.filename, event.object.bytesPending)
print('File %s - %i bytes left to download' % (
event.object.filename, event.object.bytesPending))
elif event == 'NORM_RX_OBJECT_COMPLETED':
print 'File %s completed' % event.object.filename
print('File %s completed' % event.object.filename)
return 0
elif event == 'NORM_RX_OBJECT_ABORTED':
print 'File %s aborted' % event.object.filename
print('File %s aborted' % event.object.filename)
return 1
else:
print event
print(event)
except KeyboardInterrupt:
pass
print 'Exiting.'
print('Exiting.')
return 0
if __name__ == '__main__':

View File

@ -48,19 +48,19 @@ class Instance(object):
libnorm.NormRestartInstance(self)
def setCacheDirectory(self, path):
libnorm.NormSetCacheDirectory(self, path)
libnorm.NormSetCacheDirectory(self, path.encode('utf-8'))
def setDebugLevel(self, level):
libnorm.NormSetDebugLevel(level)
def openDebugLog(self, path):
libnorm.NormOpenDebugLog(self, path)
libnorm.NormOpenDebugLog(self, path.encode('utf-8'))
def closeDebugLog(self):
libnorm.NormCloseDebugLog(self)
def openDebugPipe(self, pipeName):
libnorm.NormOpenDebugPipe(self, pipeName)
libnorm.NormOpenDebugPipe(self, pipeName.encode('utf-8'))
def getNextEvent(self, timeout=None):
# Use python's select because letting the C NormGetNextEvent block

View File

@ -33,11 +33,11 @@ class Object(object):
if length == 0:
raise NormError("No object info received yet.")
buffer = ctypes.create_string_buffer(length)
recv = libnorm.NormObjectGetInfo(self, buffer, length)
buf = ctypes.create_string_buffer(length)
recv = libnorm.NormObjectGetInfo(self, buf, length)
if recv == 0:
raise NormError("No object info received yet.")
return buffer.value
return buf.value
def getSize(self):
return libnorm.NormObjectGetSize(self)
@ -49,12 +49,12 @@ class Object(object):
libnorm.NormObjectCancel(self)
def getFileName(self):
buffer = ctypes.create_string_buffer(100)
libnorm.NormFileGetName(self, buffer, ctypes.sizeof(buffer))
return buffer.value
buf = ctypes.create_string_buffer(100)
libnorm.NormFileGetName(self, buf, ctypes.sizeof(buf))
return buf.value
def renameFile(self, name):
libnorm.NormFileRename(self, name)
libnorm.NormFileRename(self, name.encode('utf-8'))
# Because 'ctypes.string_at()' makes a _copy_ of the data, we don't
# support the usual NORM accessData / detachData options. We use
@ -80,7 +80,7 @@ class Object(object):
libnorm.NormStreamClose(self, graceful)
def streamWrite(self, msg):
return libnorm.NormStreamWrite(self, msg, len(msg))
return libnorm.NormStreamWrite(self, msg.encode('utf-8'), len(msg))
def streamFlush(self, eom=False, flushmode=c.NORM_FLUSH_PASSIVE):
libnorm.NormStreamFlush(self, eom, flushmode)
@ -99,10 +99,10 @@ class Object(object):
## Stream receiving functions
def streamRead(self, size):
buffer = ctypes.create_string_buffer(size)
numBytes = ctypes.c_uint(ctypes.sizeof(buffer))
libnorm.NormStreamRead(self, buffer, ctypes.byref(numBytes))
return (numBytes, buffer.value)
buf = ctypes.create_string_buffer(size)
numBytes = ctypes.c_uint(ctypes.sizeof(buf))
libnorm.NormStreamRead(self, buf, ctypes.byref(numBytes))
return (numBytes, buf.value)
def streamSeekMsgStart(self):
return libnorm.NormStreamSeekMsgStart(self)