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.
- wolfhece/PyDraw.py +171 -39
- wolfhece/PyGui.py +2 -3
- wolfhece/PyVertexvectors.py +91 -12
- wolfhece/apps/version.py +1 -1
- wolfhece/coupling/__init__.py +0 -0
- wolfhece/coupling/hydrology_2d.py +1226 -0
- wolfhece/wintab/__init__.py +0 -0
- wolfhece/wintab/wintab.py +248 -0
- {wolfhece-2.1.21.dist-info → wolfhece-2.1.22.dist-info}/METADATA +1 -1
- {wolfhece-2.1.21.dist-info → wolfhece-2.1.22.dist-info}/RECORD +13 -9
- {wolfhece-2.1.21.dist-info → wolfhece-2.1.22.dist-info}/WHEEL +1 -1
- {wolfhece-2.1.21.dist-info → wolfhece-2.1.22.dist-info}/entry_points.txt +0 -0
- {wolfhece-2.1.21.dist-info → wolfhece-2.1.22.dist-info}/top_level.txt +0 -0
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")
|
@@ -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=
|
10
|
-
wolfhece/PyGui.py,sha256=
|
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=
|
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=
|
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
|
274
|
-
wolfhece
|
275
|
-
wolfhece-2.1.
|
276
|
-
wolfhece-2.1.
|
277
|
-
wolfhece-2.1.
|
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,,
|
File without changes
|
File without changes
|