Skip to content
This repository was archived by the owner on Aug 19, 2024. It is now read-only.

Commit f185c3f

Browse files
author
TAHRI Ahmed
committed
Corrections, programme entièrement fonctionnel.
1 parent d884e0a commit f185c3f

4 files changed

Lines changed: 30 additions & 9 deletions

File tree

ba63/ba63.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from ba63.simple_hid import SimpleHID
33
from ba63.constant import SEQUENCE_MARQUEUR_DEBUT, SEQUENCES_CURSEUR, SEQUENCE_NETTOYAGE, SEQUENCE_SET_CHARSET, TAILLE_MESSAGE_MAX, NOMBRE_CARACTERES_PAR_LIGNE
44
from unidecode import unidecode
5-
import platform
5+
import hexdump
66

77

88
class FormatDonneesInvalideBA63(Exception):
@@ -43,7 +43,7 @@ def _paquet(self, donnees):
4343
raise TailleMessageTropGrande('La construction de paquet a échoué car votre message est de taille %i '
4444
'octets mais la taille maximale est de %i octets' % (len(donnees),
4545
TAILLE_MESSAGE_MAX))
46-
return SEQUENCE_MARQUEUR_DEBUT + bytes(len(donnees)) + donnees
46+
return SEQUENCE_MARQUEUR_DEBUT + bytes(chr(len(donnees)), 'ascii') + donnees
4747

4848
def imprimer(self, numero_ligne, message):
4949
"""
@@ -100,12 +100,11 @@ def get(identifiant_vendeur=2727, identifiant_materiel=512, interface_cible=1):
100100
:rtype: BA63
101101
"""
102102
hid_disponible = enumerate()
103-
noyau_systeme = platform.system()
104103

105104
for dev in hid_disponible:
106105
if dev['vendor_id'] == identifiant_vendeur and dev['product_id'] == identifiant_materiel and dev['interface_number'] == interface_cible:
107106
return BA63(dev['path'])
108-
elif dev['vendor_id'] == identifiant_vendeur and dev['product_id'] == identifiant_materiel and dev['interface_number'] == -1:
109-
pass # TODO: Vérifier le cas Darwin -> noyau_systeme
107+
elif dev['vendor_id'] == identifiant_vendeur and dev['product_id'] == identifiant_materiel and dev['interface_number'] == -1 and dev['usage'] == 9216:
108+
return BA63(dev['path'])
110109

111110
return None

ba63/constant.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
}
1414

1515
NOMBRE_CARACTERES_PAR_LIGNE = 20
16-
NOMBRE_LIGNE = 2
16+
NOMBRE_LIGNE = 2

ba63/simple_hid.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,37 @@ class SimpleHID:
1313

1414
def __init__(self, chemin):
1515

16+
self._chemin = chemin
1617
self._device = hid.device()
17-
self._device.open_path(chemin)
18+
self._device.open_path(self._chemin)
19+
20+
@property
21+
def chemin(self):
22+
return self._chemin
23+
24+
def ouvrir(self):
25+
"""
26+
Ouverture de l'appareil HID si disponible
27+
:return: None
28+
"""
29+
if self._device is None:
30+
self._device.open_path(self._chemin)
1831

1932
def fermer(self):
33+
"""
34+
Fermeture de la communication avec l'appareil HID
35+
:return: None
36+
"""
2037
if self._device is not None:
2138
self._device.close()
2239
self._device = None
2340

2441
def ecrire(self, donnees):
42+
"""
43+
Écriture de données raw sur le port de communication HID
44+
:param bytes donnees: Les données brutes
45+
:return: None
46+
"""
2547
if not isinstance(donnees, bytes):
2648
raise MauvaisTypeDonneesHID('Il faut obligatoirement faire passer un tableau de bytes !')
2749
if self._device is None:

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
setup(
44
name='pyBA63',
55
packages=['ba63'],
6-
version='0.1',
6+
version='0.1.5',
77
description='Manage BA63 USB HID line display easily',
88
author='Ahmed TAHRI',
99
author_email='ahmed@tahri.space',
@@ -12,4 +12,4 @@
1212
keywords=['wincor nixdorf', 'line display', 'ba63', 'hid'],
1313
classifiers=[],
1414
requires=['unidecode', 'cython', 'hidapi']
15-
)
15+
)

0 commit comments

Comments
 (0)