OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // File-level comment to appease parser. Eventually this will not be necessary. | |
6 | |
7 namespace experimental.serial { | |
8 | |
9 callback GetPortsCallback = void (DOMString[] ports); | |
10 | |
11 dictionary OpenOptions { | |
12 // The requested bitrate of the connection to be opened. For compatibility | |
13 // with the widest range of hardware, this number should match one of | |
14 // commonly-available bitrates, such as 110, 300, 1200, 2400, 4800, 9600, | |
15 // 14400, 19200, 38400, 57600, 115200. There is no guarantee, of course, | |
16 // that the device connected to the serial port will support the requested | |
17 // bitrate, even if the port itself supports that bitrate. | |
18 long bitrate; | |
19 }; | |
20 | |
21 dictionary OpenInfo { | |
22 // The id of the opened connection. | |
23 long connectionId; | |
24 }; | |
25 | |
26 callback OpenCallback = void (OpenInfo openInfo); | |
27 | |
28 // Returns true if operation was successful. | |
29 callback CloseCallback = void (boolean result); | |
30 | |
31 dictionary ReadInfo { | |
32 // The number of bytes received, or a negative number if an error occurred. | |
33 // This number will be smaller than the number of bytes requested in the | |
34 // original read call if the call would need to block to read that number | |
35 // of bytes. | |
36 long bytesRead; | |
37 | |
38 // The data received. | |
39 ArrayBuffer data; | |
40 }; | |
41 | |
42 callback ReadCallback = void (ReadInfo readInfo); | |
43 | |
44 dictionary WriteInfo { | |
45 // The number of bytes written. | |
46 long bytesWritten; | |
47 }; | |
48 | |
49 callback WriteCallback = void (WriteInfo writeInfo); | |
50 | |
51 // Returns true if operation was successful. | |
52 callback FlushCallback = void (boolean result); | |
53 | |
54 // Boolean true = mark signal (negative serial voltage). | |
55 // Boolean false = space signal (positive serial voltage). | |
56 // | |
57 // For SetControlSignals, include the sendable signals that you wish to | |
58 // change. Signals not included in the dictionary will be left unchanged. | |
59 // | |
60 // GetControlSignals includes all receivable signals. | |
61 dictionary ControlSignalOptions { | |
62 // Serial control signals that your machine can send. Missing fields will | |
63 // be set to false. | |
64 boolean? dtr; | |
65 boolean? rts; | |
66 | |
67 // Serial control signals that your machine can receive. If a get operation | |
68 // fails, success will be false, and these fields will be absent. | |
69 // | |
70 // DCD (Data Carrier Detect) is equivalent to RLSD (Receive Line Signal | |
71 // Detect) on some platforms. | |
72 boolean? dcd; | |
73 boolean? cts; | |
74 }; | |
75 | |
76 // Returns a snapshot of current control signals. | |
77 callback GetControlSignalsCallback = void (ControlSignalOptions options); | |
78 | |
79 // Returns true if operation was successful. | |
80 callback SetControlSignalsCallback = void (boolean result); | |
81 | |
82 interface Functions { | |
83 // Returns names of valid ports on this machine, each of which is likely to | |
84 // be valid to pass as the port argument to open(). The list is regenerated | |
85 // each time this method is called, as port validity is dynamic. | |
86 // | |
87 // |callback| : Called with the list of ports. | |
88 static void getPorts(GetPortsCallback callback); | |
89 | |
90 // Opens a connection to the given serial port. | |
91 // |port| : The name of the serial port to open. | |
92 // |options| : Connection options. | |
93 // |callback| : Called when the connection has been opened. | |
94 static void open(DOMString port, | |
95 optional OpenOptions options, | |
96 OpenCallback callback); | |
97 | |
98 // Closes an open connection. | |
99 // |connectionId| : The id of the opened connection. | |
100 // |callback| : Called when the connection has been closed. | |
101 static void close(long connectionId, | |
102 CloseCallback callback); | |
103 | |
104 // Reads a byte from the given connection. | |
105 // |connectionId| : The id of the connection. | |
106 // |bytesToRead| : The number of bytes to read. | |
107 // |callback| : Called when all the requested bytes have been read or | |
108 // when the read blocks. | |
109 static void read(long connectionId, | |
110 long bytesToRead, | |
111 ReadCallback callback); | |
112 | |
113 // Writes a string to the given connection. | |
114 // |connectionId| : The id of the connection. | |
115 // |data| : The string to write. | |
116 // |callback| : Called when the string has been written. | |
117 static void write(long connectionId, | |
118 ArrayBuffer data, | |
119 WriteCallback callback); | |
120 | |
121 // Flushes all bytes in the given connection's input and output buffers. | |
122 // |connectionId| : The id of the connection. | |
123 // |callback| : Called when the flush is complete. | |
124 static void flush(long connectionId, | |
125 FlushCallback callback); | |
126 | |
127 static void getControlSignals(long connectionId, | |
128 GetControlSignalsCallback callback); | |
129 | |
130 static void setControlSignals(long connectionId, | |
131 ControlSignalOptions options, | |
132 SetControlSignalsCallback callback); | |
133 }; | |
134 | |
135 }; | |
OLD | NEW |