wolfhece 2.1.21__py3-none-any.whl → 2.1.22__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
File without changes
@@ -0,0 +1,248 @@
1
+ import logging
2
+
3
+ WT_PACKET = 0x7FF0
4
+
5
+ # Information categories
6
+ WTI_INTERFACE = 1
7
+ WTI_STATUS = 2
8
+ WTI_DEFCONTEXT = 3
9
+ WTI_DEFSYSCTX = 4
10
+ WTI_DDCTXS = 400
11
+ WTI_DSCTXS = 500
12
+ WTI_DEVICES = 100
13
+ WTI_CURSORS = 200
14
+ WTI_EXTENSIONS = 300
15
+
16
+ # Hardware capabilities
17
+ HWC_INTEGRATED = 0x0001
18
+ HWC_TOUCH = 0x0002
19
+ HWC_HARDPROX = 0x0004
20
+ HWC_PHYSID_CURSORS = 0x0008
21
+
22
+ # Unit specifiers
23
+ TU_NONE = 0
24
+ TU_INCHES = 1
25
+ TU_CENTIMETERS = 2
26
+ TU_CIRCLE = 3
27
+
28
+ # Cursor capabilities
29
+ CRC_MULTIMODE = 0x0001
30
+ CRC_AGGREGATE = 0x0002
31
+ CRC_INVERT = 0x0004
32
+
33
+ # System button assignment values
34
+ SBN_NONE = 0x00
35
+ SBN_LCLICK = 0x01
36
+ SBN_LDBLCLICK = 0x02
37
+ SBN_LDRAG = 0x03
38
+ SBN_RCLICK = 0x04
39
+ SBN_RDBLCLICK = 0x05
40
+ SBN_RDRAG = 0x06
41
+ SBN_MCLICK = 0x07
42
+ SBN_MDBLCLICK = 0x08
43
+ SBN_MDRAG = 0x09
44
+ # for Pen Windows
45
+ SBN_PTCLICK = 0x10
46
+ SBN_PTDBLCLICK = 0x20
47
+ SBN_PTDRAG = 0x30
48
+ SBN_PNCLICK = 0x40
49
+ SBN_PNDBLCLICK = 0x50
50
+ SBN_PNDRAG = 0x60
51
+ SBN_P1CLICK = 0x70
52
+ SBN_P1DBLCLICK = 0x80
53
+ SBN_P1DRAG = 0x90
54
+ SBN_P2CLICK = 0xA0
55
+ SBN_P2DBLCLICK = 0xB0
56
+ SBN_P2DRAG = 0xC0
57
+ SBN_P3CLICK = 0xD0
58
+ SBN_P3DBLCLICK = 0xE0
59
+ SBN_P3DRAG = 0xF0
60
+
61
+ # Context option values
62
+ CXO_SYSTEM = 0x0001
63
+ CXO_PEN = 0x0002
64
+ CXO_MESSAGES = 0x0004
65
+ CXO_MARGIN = 0x8000
66
+ CXO_MGNINSIDE = 0x4000
67
+ CXO_CSRMESSAGES = 0x0008
68
+
69
+ # Context status values
70
+ CXS_DISABLED = 0x0001
71
+ CXS_OBSCURED = 0x0002
72
+ CXS_ONTOP = 0x0004
73
+
74
+ # Context lock values
75
+ CXL_INSIZE = 0x0001
76
+ CXL_INASPECT = 0x0002
77
+ CXL_SENSITIVITY = 0x0004
78
+ CXL_MARGIN = 0x0008
79
+ CXL_SYSOUT = 0x0010
80
+
81
+ # WTPKT bits
82
+ PK_CONTEXT = 0x0001 # reporting context
83
+ PK_STATUS = 0x0002 # status bits
84
+ PK_TIME = 0x0004 # time stamp
85
+ PK_CHANGED = 0x0008 # change bit vector
86
+ PK_SERIAL_NUMBER = 0x0010 # packet serial number
87
+ PK_CURSOR = 0x0020 # reporting cursor
88
+ PK_BUTTONS = 0x0040 # button information
89
+ PK_X = 0x0080 # x axis
90
+ PK_Y = 0x0100 # y axis
91
+ PK_Z = 0x0200 # z axis
92
+ PK_NORMAL_PRESSURE = 0x0400 # normal or tip pressure
93
+ PK_TANGENT_PRESSURE = 0x0800 # tangential or barrel pressure
94
+ PK_ORIENTATION = 0x1000 # orientation info: tilts */
95
+ PK_ROTATION = 0x2000 # rotation info; 1.1
96
+
97
+ # Packet status values
98
+ TPS_PROXIMITY = 0x0001
99
+ TPS_QUEUE_ERR = 0x0002
100
+ TPS_MARGIN = 0x0004
101
+ TPS_GRAB = 0x0008
102
+ TPS_INVERT = 0x0010
103
+
104
+ # Relative buttons
105
+ TBN_NONE = 0
106
+ TBN_UP = 1
107
+ TBN_DOWN = 2
108
+
109
+
110
+ class Wintab():
111
+
112
+ def __init__(self, hwnd):
113
+ import ctypes
114
+ from ctypes import wintypes, c_char, c_int, POINTER
115
+ from ctypes.wintypes import HWND, UINT, DWORD, LONG, HANDLE, BOOL, LPVOID
116
+
117
+ HCTX = HANDLE
118
+ WTPKT = DWORD
119
+ FIX32 = DWORD
120
+ class LOGCONTEXTA(ctypes.Structure):
121
+ _fields_ = [
122
+ ('lcName', 40*c_char),
123
+ ('lcOptions', UINT),
124
+ ('lcStatus', UINT),
125
+ ('lcLocks', UINT),
126
+ ('lcMsgBase', UINT),
127
+ ('lcDevice', UINT),
128
+ ('lcPktRate', UINT),
129
+ ('lcPktData', WTPKT),
130
+ ('lcPktMode', WTPKT),
131
+ ('lcMoveMask', WTPKT),
132
+ ('lcBtnDnMask', DWORD),
133
+ ('lcBtnUpMask', DWORD),
134
+ ('lcInOrgX', LONG),
135
+ ('lcInOrgY', LONG),
136
+ ('lcInOrgZ', LONG),
137
+ ('lcInExtX', LONG),
138
+ ('lcInExtY', LONG),
139
+ ('lcInExtZ', LONG),
140
+ ('lcOutOrgX', LONG),
141
+ ('lcOutOrgY', LONG),
142
+ ('lcOutOrgZ', LONG),
143
+ ('lcOutExtX', LONG),
144
+ ('lcOutExtY', LONG),
145
+ ('lcOutExtZ', LONG),
146
+ ('lcSensX', FIX32),
147
+ ('lcSensY', FIX32),
148
+ ('lcSensZ', FIX32),
149
+ ('lcSysMode', BOOL),
150
+ ('lcSysOrgX', c_int),
151
+ ('lcSysOrgY', c_int),
152
+ ('lcSysExtX', c_int),
153
+ ('lcSysExtY', c_int),
154
+ ('lcSysSensX', FIX32),
155
+ ('lcSysSensY', FIX32)
156
+ ]
157
+
158
+ # PK_CONTEXT = 0x0001 # reporting context */
159
+ # PK_STATUS = 0x0002 # status bits */
160
+ # PK_TIME = 0x0004 # time stamp */
161
+ # PK_CHANGED = 0x0008 # change bit vector */
162
+ # PK_SERIAL_NUMBER = 0x0010 # packet serial number */
163
+ # PK_CURSOR = 0x0020 # reporting cursor */
164
+ # PK_BUTTONS = 0x0040 # button information */
165
+ # PK_X = 0x0080 # x axis */
166
+ # PK_Y = 0x0100 # y axis */
167
+ # PK_Z = 0x0200 # z axis */
168
+ # PK_NORMAL_PRESSURE = 0x0400 # normal or tip pressure */
169
+ # PK_TANGENT_PRESSURE = 0x0800 # tangential or barrel pressure */
170
+ # PK_ORIENTATION = 0x1000 # orientation info: tilts */
171
+ # PK_ROTATION = 0x2000 # rotation info; 1.1 */
172
+
173
+ lcPktData = (PK_CHANGED | PK_CURSOR | PK_BUTTONS | PK_X | PK_Y | PK_NORMAL_PRESSURE)
174
+ lcPktMode = 0
175
+
176
+ class PACKET(ctypes.Structure):
177
+ _fields_ = [
178
+ ('pkChanged', WTPKT),
179
+ ('pkCursor', UINT),
180
+ ('pkButtons', DWORD),
181
+ ('pkX', LONG),
182
+ ('pkY', LONG),
183
+ ('pkNormalPressure', UINT)
184
+ ]
185
+
186
+ # WTI_DEFCONTEXT = 3
187
+
188
+ # CXO_SYSTEM = 0x0001
189
+ # CXO_PEN = 0x0002
190
+ # CXO_MESSAGES = 0x0004
191
+ # CXO_MARGIN = 0x8000
192
+
193
+ try:
194
+ self.dll = ctypes.WinDLL("wintab32.dll")
195
+ self._wintab = True
196
+
197
+ self.dll.WTInfoA.argtypes = [UINT, UINT, POINTER(LOGCONTEXTA)]
198
+ self.dll.WTInfoA.restype = UINT
199
+
200
+ self.dll.WTOpenA.argtypes = [HWND, POINTER(LOGCONTEXTA), BOOL]
201
+ self.dll.WTOpenA.restype = HCTX
202
+
203
+ self.dll.WTClose.argtypes = [HCTX]
204
+ self.dll.WTClose.restype = BOOL
205
+
206
+ self.dll.WTPacketsGet.argtypes = [HCTX, c_int, POINTER(PACKET)]
207
+ self.dll.WTPacketsGet.restype = c_int
208
+
209
+ self.dll.WTPacket.argtypes = [HCTX, UINT, POINTER(PACKET)]
210
+ self.dll.WTPacket.restype = BOOL
211
+
212
+ self.lc = LOGCONTEXTA()
213
+ rslt = self.dll.WTInfoA(WTI_DEFCONTEXT, 0, self.lc)
214
+
215
+ # logging.info(self.lc.lcOptions)
216
+ self.lc.lcPktData = lcPktData
217
+ self.lc.lcPktMode = lcPktMode
218
+ self.lc.lcOptions = (CXO_SYSTEM | CXO_MESSAGES)
219
+ # logging.info(self.lc.lcOptions)
220
+ self.hctx = self.dll.WTOpenA(HWND(hwnd), self.lc, 1)
221
+
222
+ self.buf = (1*PACKET)()
223
+ except:
224
+ self._wintab = False
225
+
226
+
227
+ def get_xypressure(self):
228
+
229
+ if self._wintab:
230
+ n = self.dll.WTPacketsGet(self.hctx, 1, self.buf)
231
+ if n > 0:
232
+ return self.buf[0].pkX, self.buf[0].pkY, self.buf[0].pkNormalPressure
233
+ else:
234
+ return None, None, None
235
+ else:
236
+ return None, None, None
237
+
238
+
239
+ if __name__ == "__main__":
240
+
241
+ loc = Wintab()
242
+
243
+ while True:
244
+ x, y, p = loc.get_xypressure()
245
+ if x is not None:
246
+ print(x, y, p)
247
+ # else:
248
+ # print("No data")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: wolfhece
3
- Version: 2.1.21
3
+ Version: 2.1.22
4
4
  Author-email: Pierre Archambeau <pierre.archambeau@uliege.be>
5
5
  License: AGPL-v3 License
6
6
  Project-URL: Homepage, https://uee.uliege.be/hece
@@ -6,8 +6,8 @@ wolfhece/ManageParams.py,sha256=Wgt5Zh7QBtyiwTAltPHunSLqt4XuVuRH76GTUrXabS4,219
6
6
  wolfhece/Model1D.py,sha256=-cMz-ePSYzrKVVDidiDOz6cojEZ3y6u9gIb7RPwT6Y8,476593
7
7
  wolfhece/PyConfig.py,sha256=oGSL1WsLM9uinlNP4zGBLK3uHPmBfduUi7R-VtWuRFA,8034
8
8
  wolfhece/PyCrosssections.py,sha256=f4dNYRUGZKePruaaBiTcn5vlrw8TFTj9XwTDrdiF_uU,112450
9
- wolfhece/PyDraw.py,sha256=eZCDOZsiZ9dVFtfeg4Cxep_HHMcyo11kGMK7a4xge-E,384933
10
- wolfhece/PyGui.py,sha256=fqy8f3tLt7myJskVvspTQ_ZO7kaiSNKmcfFLrfr4w7M,103174
9
+ wolfhece/PyDraw.py,sha256=xGMogLlksiVz6o6p9URnkQD9a6w3e92cJN8RgS47aRo,389804
10
+ wolfhece/PyGui.py,sha256=8UWyaYwiHD9juDbPs__pmCXIDoM8r9_bGKLf29xVGZI,103140
11
11
  wolfhece/PyGuiHydrology.py,sha256=r8kcY2eGAQzSwVtLpyMUiBL5xBpMBsi7ovs0PgStGWw,14648
12
12
  wolfhece/PyHydrographs.py,sha256=GKK8U0byI45H9O_e4LAOOi7Aw0Tg7Q0Lx322stPg5IQ,3453
13
13
  wolfhece/PyPalette.py,sha256=Vl5RrBIC_a5-mZKUtBd5kG0mif946B7OtS3fnehkmOc,25012
@@ -15,7 +15,7 @@ wolfhece/PyParams.py,sha256=Aj8kcT044abwBYU_OiEcJWcyNVqxYithNfbzdHyI-QA,97072
15
15
  wolfhece/PyPictures.py,sha256=-mJB0JL2YYiEK3D7_ssDkvYiMWK4ve9kXhozQXNeSx8,2216
16
16
  wolfhece/PyTranslate.py,sha256=4appkmNeHHZLFmUtaA_k5_5QL-5ymxnbVN4R2OblmtE,622
17
17
  wolfhece/PyVertex.py,sha256=dHTjyYYTn0F_NWerlAOBKHV79RUzEEtMJMldQtVc1Cs,40092
18
- wolfhece/PyVertexvectors.py,sha256=YcLs8xwmD3UqGDxfjzRedZolLN3SCHotoXxzP2U4HkU,226029
18
+ wolfhece/PyVertexvectors.py,sha256=E82Xz9OMg7_k1IDyTIgR4owLTl2JJGBTCeq7gSYfHPw,228447
19
19
  wolfhece/PyWMS.py,sha256=pV7JdzbreQGXCg3E6PwllchEUYu2YiPZEIua2ppJorA,4304
20
20
  wolfhece/RatingCurve.py,sha256=f6IGLS5aJBJD_t_k903m_yRZ60MzKNKanzD6njXZxa8,22200
21
21
  wolfhece/RatingCurveData.py,sha256=5UvnIm89BwqjnEbLCcY3CA8WoFd_xHJbooNy62fX5iY,57660
@@ -66,7 +66,7 @@ wolfhece/apps/check_install.py,sha256=jrKR-njqnpIh6ZJqvP6KbDUPVCfwTNQj4glQhcyzs9
66
66
  wolfhece/apps/curvedigitizer.py,sha256=avWERHuVxPnJBOD_ibczwW_XG4vAenqWS8W1zjhBox8,4898
67
67
  wolfhece/apps/isocurrent.py,sha256=4XnNWPa8mYUK7V4zdDRFrHFIXNG2AN2og3TqWKKcqjY,3811
68
68
  wolfhece/apps/splashscreen.py,sha256=LkEVMK0eCc84NeCWD3CGja7fuQ_k1PrZdyqD3GQk_8c,2118
69
- wolfhece/apps/version.py,sha256=vzfNBTFSbty1piUlbNtlxS283UUEd8VsyNhwhWSDzS0,388
69
+ wolfhece/apps/version.py,sha256=zxkGhL5-N1mwERa9B0LJ3RZUGCtqNlavCXcY1H1TFx0,388
70
70
  wolfhece/apps/wolf.py,sha256=gqfm-ZaUJqNsfCzmdtemSeqLw-GVdSVix-evg5WArJI,293
71
71
  wolfhece/apps/wolf2D.py,sha256=gWD9ee2-1pw_nUxjgRaJMuSe4kUT-RWhOeoTt_Lh1mM,267
72
72
  wolfhece/apps/wolf_logo.bmp,sha256=ruJ4MA51CpGO_AYUp_dB4SWKHelvhOvd7Q8NrVOjDJk,3126
@@ -84,6 +84,8 @@ wolfhece/blender/ply.py,sha256=jTRUqRGD_XyGdE865Iv214DE8-m_ZscqlfTJP99lUOE,555
84
84
  wolfhece/blender/quads.py,sha256=gBoXN-BASPivcGhCIlWgsELCaEO-NH0rhywA7BXY_1Q,11704
85
85
  wolfhece/clientserver/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
86
  wolfhece/clientserver/clientserver.py,sha256=xXKc8gKjEYilIK8o_xeslbVu9Ouklmk4vkR8Ppy3HYM,2500
87
+ wolfhece/coupling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
+ wolfhece/coupling/hydrology_2d.py,sha256=RN8fiDuJS3hTf9DgaGdqStSHHESR9thRFIfuu5PoxWg,48263
87
89
  wolfhece/eva/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
90
  wolfhece/eva/bootstrap.py,sha256=xHbIAZzFuaKLwiRpgvsLi5OZYqwaxYACqsAU-FnB6Pc,605
89
91
  wolfhece/eva/hydrogramme_mono.py,sha256=uZFIgJJ-JogMFzt7D7OnyVaHvgxCQJPZz9W9FgnuthA,8138
@@ -270,8 +272,10 @@ wolfhece/sounds/sonsw2.wav,sha256=pFLVt6By0_EPQNt_3KfEZ9a1uSuYTgQSX1I_Zurv9Rc,11
270
272
  wolfhece/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
271
273
  wolfhece/ui/wolf_multiselection_collapsiblepane.py,sha256=yGbU_JsF56jsmms0gh7mxa7tbNQ_SxqhpAZxhm-mTy4,14860
272
274
  wolfhece/ui/wolf_times_selection_comparison_models.py,sha256=wCxGRnE3kzEkWlWA6-3X8ADOFux_B0a5QWJ2GnXTgJw,4709
273
- wolfhece-2.1.21.dist-info/METADATA,sha256=ANQmVNuOvZofxG3nqK3bG02bjcuvPb9e1KhL1pqroUQ,2307
274
- wolfhece-2.1.21.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
275
- wolfhece-2.1.21.dist-info/entry_points.txt,sha256=AIu1KMswrdsqNq_2jPtrRIU4tLjuTnj2dCY-pxIlshw,276
276
- wolfhece-2.1.21.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
277
- wolfhece-2.1.21.dist-info/RECORD,,
275
+ wolfhece/wintab/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
276
+ wolfhece/wintab/wintab.py,sha256=8A-JNONV6ujgsgG3lM5Uw-pVgglPATwKs86oBzzljoc,7179
277
+ wolfhece-2.1.22.dist-info/METADATA,sha256=JUhQi9mzKdTMu9aWvC1QPRi78EWvlHpyKguRgwKccI4,2307
278
+ wolfhece-2.1.22.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
279
+ wolfhece-2.1.22.dist-info/entry_points.txt,sha256=AIu1KMswrdsqNq_2jPtrRIU4tLjuTnj2dCY-pxIlshw,276
280
+ wolfhece-2.1.22.dist-info/top_level.txt,sha256=EfqZXMVCn7eILUzx9xsEu2oBbSo9liWPFWjIHik0iCI,9
281
+ wolfhece-2.1.22.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.2.0)
2
+ Generator: setuptools (70.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5