Skip to content

Commit 2c3c75e

Browse files
committed
fix
1 parent 936ac5f commit 2c3c75e

File tree

2 files changed

+27
-25
lines changed

2 files changed

+27
-25
lines changed

lib/register_serial_functions.ts

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,77 +11,77 @@ export function registerSerialFunctions(
1111
// Port
1212
'buffer',
1313
// Baudrate
14-
'u32',
14+
'i32',
1515
// Data Bits
16-
'u32',
16+
'i32',
1717
// Parity
18-
'u32',
18+
'i32',
1919
// Stop Bits
20-
'u32'
20+
'i32'
2121
],
2222
// Status code
2323
result: 'void'
2424
},
2525
'serialClose': {
2626
parameters: [],
2727
// Status code
28-
result: 'u32'
28+
result: 'i32'
2929
},
3030
'serialRead': {
3131
parameters: [
3232
// Buffer
3333
'buffer',
3434
// Buffer Size
35-
'u32',
35+
'i32',
3636
// Timeout
37-
'u32',
37+
'i32',
3838
// Multiplier
39-
'u32'
39+
'i32'
4040
],
4141
// Bytes read
42-
result: 'u32'
42+
result: 'i32'
4343
},
4444
'serialReadUntil': {
4545
parameters: [
4646
// Buffer
4747
'buffer',
4848
// Buffer Size
49-
'u32',
49+
'i32',
5050
// Timeout
51-
'u32',
51+
'i32',
5252
// Multiplier
53-
'u32',
53+
'i32',
5454
// SearchString
5555
'buffer'
5656
],
5757
// Bytes read
58-
result: 'u32'
58+
result: 'i32'
5959
},
6060
'serialWrite': {
6161
parameters: [
6262
// Buffer
6363
'buffer',
6464
// Buffer Size
65-
'u32',
65+
'i32',
6666
// Timeout
67-
'u32',
67+
'i32',
6868
// Multiplier
69-
'u32'
69+
'i32'
7070
],
7171
// Bytes written
72-
result: 'u32'
72+
result: 'i32'
7373
},
7474
'serialGetPortsInfo': {
7575
parameters: [
7676
// Buffer
7777
'buffer',
7878
// Buffer Size
79-
'u32',
79+
'i32',
8080
// Separator
8181
'buffer'
8282
],
8383
// Amount of ports
84-
result: 'u32'
84+
result: 'i32'
8585
},
8686
'serialOnError': {
8787
// on error callback function
@@ -109,21 +109,21 @@ export function registerSerialFunctions(
109109
getPortsInfo: serialFunctions.serialGetPortsInfo,
110110
onError: (callback) => {
111111
serialFunctions.serialOnError(new Deno.UnsafeCallback({
112-
parameters: ['u32'],
112+
parameters: ['i32'],
113113
result: "void",
114114
} as const,
115115
(errorCode) => {callback(errorCode)}).pointer)
116116
},
117117
onRead: (callback) => {
118118
serialFunctions.serialOnRead(new Deno.UnsafeCallback({
119-
parameters: ['u32'],
119+
parameters: ['i32'],
120120
result: "void",
121121
} as const,
122122
(bytes) => {callback(bytes)}).pointer)
123123
},
124124
onWrite: (callback) => {
125125
serialFunctions.serialOnWrite(new Deno.UnsafeCallback({
126-
parameters: ['u32'],
126+
parameters: ['i32'],
127127
result: "void",
128128
} as const,
129129
(bytes) => {callback(bytes)}).pointer)

src/src/serial_unix.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
#include <fcntl.h> // File control definitions
66
#include <sys/ioctl.h> // Used for TCGETS2, which is required for custom baud rates
77
#include <asm/termbits.h>
8+
#include <cerrno>
9+
#include <cstring>
810
// #include <filesystem>
911

1012

@@ -142,15 +144,15 @@ auto serialWrite(
142144
const int multiplier
143145
) -> int {
144146

145-
std::string tmp(static_cast<char*>(buffer), bufferSize);
147+
const char* tmp = static_cast<char*>(buffer);
146148

147-
int bytesWritten = write(hSerialPort, tmp.c_str(), tmp.length() + 1);
149+
int bytesWritten = write(hSerialPort, tmp, bufferSize);
148150

149151
if (bytesWritten > 0){
150152
return bytesWritten;
151153
}
152154

153-
std::ofstream("log.log", std::ios::out) << bytesWritten;
155+
std::ofstream("log.log", std::ios::out) << strerror(errno);
154156

155157
errorCallback(status(StatusCodes::WRITE_ERROR));
156158
return 0;

0 commit comments

Comments
 (0)