rs_232 3.0.0.pre4 → 3.0.0.pre5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f99ca892ac80ba3022c111bccb858a8c96032eaa
4
- data.tar.gz: 4ab0094376909cee30c54e131d8f0d26e7d11525
3
+ metadata.gz: ac888dadace7e7e0225d1c7bb4e9c9b816484493
4
+ data.tar.gz: 09acd44b4e25022e183b1c2aaa111ef69ecc6626
5
5
  SHA512:
6
- metadata.gz: cb8209ffaca8ad0c96863e1d57ba74f11fb26c629842f6b68d7a0979ebb47e0481bc5bcecb04aa54b488d49b80b42b94c91884a33d2767b1ee97b705ccef4476
7
- data.tar.gz: 5230eef3039911b7a34565f7d877e7c5296dc600ad0fdc9ba803196a5767900279546689018f7a2ffef9ef78c1a42b800c141162f03f20f6096947aa8b9d9c7b
6
+ metadata.gz: 566e436963f3bd808566f27fabaab010fea424f3a88de1ba99cb0635627d9fd580300516cc8a1420580b78c3d8175fee3ac827be8564f55cb3f38bb69782236e
7
+ data.tar.gz: bd1dfb14e6f7308c34eeba95622fd7d662e137692ead69ea4c53c0f4cc733f465afd18874f98735bc77a4e4ab8eaa59f62f6f2b348c9ebd29792544a67dc6d46
@@ -15,25 +15,24 @@ $CFLAGS << ' -Wall -g'
15
15
  $warnflags = '-Wall'
16
16
 
17
17
  OS = case RbConfig::CONFIG['host_os'].downcase
18
- when /linux/
19
- 'linux'
20
- when /darwin/
21
- 'darwin'
22
- when /freebsd/
23
- 'freebsd'
24
- when /openbsd/
25
- 'openbsd'
26
- when /sunos|solaris/
27
- 'solaris'
28
- when /mswin|mingw/
29
- 'windows'
30
- else
31
- RbConfig::CONFIG['host_os'].downcase
18
+ when /linux/
19
+ 'linux'
20
+ when /darwin/
21
+ 'darwin'
22
+ when /freebsd/
23
+ 'freebsd'
24
+ when /openbsd/
25
+ 'openbsd'
26
+ when /sunos|solaris/
27
+ 'solaris'
28
+ when /mswin|mingw/
29
+ 'windows'
30
+ else
31
+ RbConfig::CONFIG['host_os'].downcase
32
32
  end
33
33
 
34
34
  have_header('ruby.h')
35
35
  have_header('stdio.h')
36
- have_library( 'stdc++' )
37
36
 
38
37
  if OS == 'windows'
39
38
  $VPATH << '$(srcdir)/windows'
@@ -167,7 +167,6 @@ void updateSettings(PortDescriptor *port)
167
167
  static int queryStatusIO(VALUE self)
168
168
  {
169
169
  PortDescriptor *port = NULL;
170
-
171
170
  Data_Get_Struct(self, PortDescriptor, port);
172
171
 
173
172
  return port->status;
@@ -176,7 +175,7 @@ static int queryStatusIO(VALUE self)
176
175
 
177
176
  VALUE isOpenIO(VALUE self)
178
177
  {
179
- return queryStatusIO(self) != PORT_OPEN ? Qtrue : Qfalse;
178
+ return queryStatusIO(self) != PORT_OPEN ? Qfalse : Qtrue;
180
179
  }
181
180
 
182
181
 
@@ -228,15 +227,12 @@ VALUE openIO(VALUE self)
228
227
 
229
228
  if (port->fd == INVALID_HANDLE_VALUE)
230
229
  {
231
-
232
230
  port->status = PORT_CLOSED;
233
231
  rb_raise(rb_eIOError, "Unable to open comport: `%s`", port->settings.ComPort);
234
232
 
235
- } else
236
- {
237
-
233
+ } else {
238
234
  port->status = PORT_OPEN;
239
- rb_iv_set(self, "@open", INT2FIX(port->status));
235
+ rb_iv_set(self, "@open", isOpenIO(self));
240
236
 
241
237
  GetCommConfig(port->fd, &port->commConfig, &conf_length);
242
238
  GetCommState(port->fd, &(port->commConfig.dcb));
@@ -261,7 +257,6 @@ VALUE openIO(VALUE self)
261
257
 
262
258
  VALUE writeIO(VALUE self, VALUE message)
263
259
  {
264
-
265
260
  int recv;
266
261
  int len;
267
262
  PortDescriptor *port = NULL;
@@ -275,31 +270,23 @@ VALUE writeIO(VALUE self, VALUE message)
275
270
  strcpy(cStr, RSTRING_PTR(message));
276
271
 
277
272
  if (!WriteFile(port->fd, cStr, len, (LPDWORD)((void *) &recv), NULL))
278
- {
279
- rb_raise(rb_eIOError, "IO: writing of the %d bytes has been failed", len);
280
- }
281
-
282
- return (INT2FIX(recv));
273
+ rb_raise(rb_eIOError, "IO: writing of the %d bytes has been failed. Error #%d", len, (int) GetLastError());
283
274
 
275
+ return INT2FIX(recv);
284
276
  }
285
277
 
286
-
287
278
  VALUE readIO(VALUE self, VALUE rb_int)
288
279
  {
289
-
290
- {
291
- Check_Type(rb_int, T_FIXNUM);
292
- }
293
-
280
+ Check_Type(rb_int, T_FIXNUM);
294
281
  PortDescriptor *port = NULL;
295
-
296
282
  Data_Get_Struct(self, PortDescriptor, port);
297
283
 
298
284
  int n;
299
285
  int len = FIX2INT(rb_int);
300
286
  char buf[len];
301
287
 
302
- ReadFile(port->fd, &buf, len, (LPDWORD)((void *) &n), NULL);
288
+ if(!ReadFile(port->fd, &buf, len, (LPDWORD)((void *) &n), NULL))
289
+ rb_raise(rb_eIOError, "IO: reading of %d bytes has been failed. Error #%d", len, (int) GetLastError());
303
290
 
304
291
  if (n > 0)
305
292
  return rb_str_new(buf, n);
@@ -310,19 +297,17 @@ VALUE readIO(VALUE self, VALUE rb_int)
310
297
 
311
298
  VALUE closeIO(VALUE self)
312
299
  {
313
-
314
300
  PortDescriptor *port = NULL;
315
-
316
301
  Data_Get_Struct(self, PortDescriptor, port);
317
302
 
318
- flushIO(self);
319
- port->status = CloseHandle(port->fd);
320
- port->fd = INVALID_HANDLE_VALUE;
321
-
322
- rb_iv_set(self, "@open", INT2FIX(port->status));
323
-
324
- return INT2FIX(port->status);
303
+ if (port->fd != INVALID_HANDLE_VALUE) {
304
+ flushIO(self);
305
+ port->status = CloseHandle(port->fd);
306
+ port->fd = INVALID_HANDLE_VALUE;
307
+ rb_iv_set(self, "@open", isOpenIO(self));
308
+ }
325
309
 
310
+ return !isOpenIO(self);
326
311
  }
327
312
 
328
313
 
@@ -1,3 +1,3 @@
1
1
  module Rs232
2
- VERSION = '3.0.0.pre4'.freeze
2
+ VERSION = '3.0.0.pre5'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rs_232
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.pre4
4
+ version: 3.0.0.pre5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Lishtaba