#!/usr/bin/python # -*- coding: utf-8 -*- import sys, time, os import platform if platform.system().strip() == 'Windows': pass else: import portio import ctypes from numpy import * from pylab import * from time import * # ------------------------------------------------------------------------------------ # Basic I/O routines - These can be used in the Python shell. def Inp(addr) : if platform.system().strip() == 'Windows': return ctypes.windll.inpout32.Inp32(addr) # Read byte from io address addr else: # check for root privileges if os.getuid(): print('You need to be root! Exiting.') sys.exit() # acquire permission for I/O on lp0 status = portio.ioperm(addr, 1, 1) if status: print('ioperm:',os.strerror(status)) sys.exit() return portio.inb(addr) def Out(addr, data) : if platform.system().strip() == 'Windows': ctypes.windll.inpout32.Out32(addr, data) # Send byte to io address addr else: # check for root privileges if os.getuid(): print('You need to be root! Exiting.') sys.exit() # acquire permission for I/O on lp0 status = portio.ioperm(addr, 1, 1) if status: print('ioperm:',os.strerror(status)) sys.exit() portio.outb(data,addr) def cmdMAX187(): """ """ #************************************************ # ici définition de l'adresse du port de communication AdresseDeBase = 0x3BC LecturePort = AdresseDeBase + 1 # cs haut (9//) Out(AdresseDeBase, 128) # début de conversion Out( AdresseDeBase, 0) # attente fin de conversion print "attente fin de conversion" while((Inp(LecturePort) and 128) == 0): pass # forçage avant transmission des datas # Forçage horloge haut Out( AdresseDeBase, 1) # Forçage horloge bas Out( AdresseDeBase, 0) # transmission des datas signalsismo = 0 # 12 tops d'horloge print "12 tops d'horloge" for Horloge in xrange(11,0,-1): # top = niveau haut Out( AdresseDeBase, 1) ValeurVraie = (not (Inp(LecturePort)) and 128) # inversion pour atteindre la valeur vraie if (ValeurVraie != 0): signalsismo = (2 ** Horloge) + signalsismo # tops bas horloge Out( AdresseDeBase, 0) print "signalsismo",signalsismo # Execute this code only if this module is run as a Python program. if __name__ == '__main__' : cmdMAX187()