Gpib.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import gpib
  2. RQS = (1<<11)
  3. SRQ = (1<<12)
  4. TIMO = (1<<14)
  5. class Gpib:
  6. '''Three ways to create a Gpib object:
  7. Gpib("name")
  8. returns a board or device object, from a name in the config file
  9. Gpib(board_index)
  10. returns a board object, with the given board number
  11. Gpib(board_index, pad[, sad[, timeout[, send_eoi[, eos_mode]]]])
  12. returns a device object, like ibdev()'''
  13. def __init__(self, name = 'gpib0', pad = None, sad = 0, timeout = 13, send_eoi = 1, eos_mode = 0):
  14. self._own = False
  15. if isinstance(name, basestring):
  16. self.id = gpib.find(name)
  17. self._own = True
  18. elif pad is None:
  19. self.id = name
  20. else:
  21. self.id = gpib.dev(name, pad, sad, timeout, send_eoi, eos_mode)
  22. self._own = True
  23. # automatically close descriptor when instance is deleted
  24. def __del__(self):
  25. if self._own:
  26. gpib.close(self.id)
  27. def __repr__(self):
  28. return "%s(%d)" % (self.__class__.__name__, self.id)
  29. def command(self,str):
  30. gpib.command(self.id, str)
  31. def config(self,option,value):
  32. self.res = gpib.config(self.id,option,value)
  33. return self.res
  34. def interface_clear(self):
  35. gpib.interface_clear(self.id)
  36. def write(self,str):
  37. gpib.write(self.id, str)
  38. def write_async(self,str):
  39. gpib.write_async(self.id, str)
  40. def read(self,len=512):
  41. self.res = gpib.read(self.id,len)
  42. return self.res
  43. def listener(self,pad,sad=0):
  44. self.res = gpib.listener(self.id,pad,sad)
  45. return self.res
  46. def ask(self,option):
  47. self.res = gpib.ask(self.id,option)
  48. return self.res
  49. def clear(self):
  50. gpib.clear(self.id)
  51. def wait(self,mask):
  52. gpib.wait(self.id,mask)
  53. def serial_poll(self):
  54. self.spb = gpib.serial_poll(self.id)
  55. return self.spb
  56. def trigger(self):
  57. gpib.trigger(self.id)
  58. def remote_enable(self,val):
  59. gpib.remote_enable(self.id,val)
  60. def ibsta(self):
  61. self.res = gpib.ibsta()
  62. return self.res
  63. def ibcnt(self):
  64. self.res = gpib.ibcnt()
  65. return self.res
  66. def timeout(self,value):
  67. return gpib.timeout(self.id,value)