質問編集履歴

2

コード追加

2021/01/27 04:23

投稿

tomoyuki500219
tomoyuki500219

スコア21

test CHANGED
File without changes
test CHANGED
@@ -59,3 +59,101 @@
59
59
  追記
60
60
 
61
61
  unsigned charへの変換方法がわかれば解決できそうですがどうすれば良いでしょうか?
62
+
63
+
64
+
65
+
66
+
67
+ 追記2:もう少しコード流れ詳細を記載してみます
68
+
69
+
70
+
71
+ ```ここに言語を入力
72
+
73
+ pkno = int(sys.argv[1]) #unsigned short
74
+
75
+ gno = int(sys.argv[2]) #long
76
+
77
+ name = sys.argv[3] #unsigned char ← これが問題
78
+
79
+
80
+
81
+ #構造体利用
82
+
83
+ set_data = sms.MAZ_TDALL()
84
+
85
+
86
+
87
+ set_data.tdata[0].td_common.pkno = pkno
88
+
89
+ set_data.tdata[0].td_common.gno = gno
90
+
91
+ set_data.tdata[0].td_common.name = name ← これが問題
92
+
93
+
94
+
95
+ w_td = sdk.maz_set_tool_data(0, tno, set_data) 
96
+
97
+
98
+
99
+ ※構造体定義は下記のような感じ(抜粋)
100
+
101
+ class MAZ_TD_COMMON(Structure):
102
+
103
+ _fields_ = [("name", c_ubyte),
104
+
105
+ ("pkno", c_ushort),
106
+
107
+ ("gno", c_long),
108
+
109
+
110
+
111
+
112
+
113
+ ※上記、利用先のmaz_set_tool_data関数
114
+
115
+ def maz_set_tool_data(self, head, tno, data):
116
+
117
+ result_dict = {
118
+
119
+ "status": None,
120
+
121
+ "error": None
122
+
123
+ }
124
+
125
+
126
+
127
+ self.sdk.MazSetToolData.retype = c_int
128
+
129
+ self.sdk.MazSetToolData.argtypes = (
130
+
131
+ c_ushort, c_ushort, c_ushort,
132
+
133
+ POINTER(sms.MAZ_TDALL), POINTER(sms.MAZ_TD_ERRORALL))
134
+
135
+
136
+
137
+ error = sms.MAZ_TD_ERRORALL()
138
+
139
+
140
+
141
+ result_dict["status"] = self.sdk.MazSetToolData(
142
+
143
+ self.hndl, head, tno, byref(data), byref(error))
144
+
145
+
146
+
147
+ result_dict["error"] = error
148
+
149
+
150
+
151
+ return result_dict
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+ ```

1

コメント追記

2021/01/27 04:23

投稿

tomoyuki500219
tomoyuki500219

スコア21

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,9 @@
53
53
  gno = 0
54
54
 
55
55
  ```
56
+
57
+
58
+
59
+ 追記
60
+
61
+ unsigned charへの変換方法がわかれば解決できそうですがどうすれば良いでしょうか?