Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1877)

Unified Diff: chrome/browser/extensions/api/serial/serial_api.cc

Issue 22804008: Adds Serial API to set data bits, parity, stop bits. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/serial/serial_api.cc
===================================================================
--- chrome/browser/extensions/api/serial/serial_api.cc (revision 218161)
+++ chrome/browser/extensions/api/serial/serial_api.cc (working copy)
@@ -12,6 +12,8 @@
using content::BrowserThread;
+namespace serial = extensions::api::serial;
+
namespace extensions {
const char kConnectionIdKey[] = "connectionId";
@@ -19,6 +21,9 @@
const char kBytesReadKey[] = "bytesRead";
const char kBytesWrittenKey[] = "bytesWritten";
const char kBitrateKey[] = "bitrate";
+const char kDataBitKey[] = "dataBit";
+const char kParityKey[] = "parityBit";
+const char kStopBitKey[] = "stopBit";
const char kSuccessKey[] = "success";
const char kDcdKey[] = "dcd";
const char kCtsKey[] = "cts";
@@ -83,7 +88,9 @@
// But we'd like to pick something that has a chance of working, and 9600 is a
// good balance between popularity and speed. So 9600 it is.
SerialOpenFunction::SerialOpenFunction()
- : bitrate_(9600) {
+ : bitrate_(9600), databit_(serial::DATA_BIT_EIGHTBIT),
+ parity_(serial::PARITY_BIT_NOPARITY),
+ stopbit_(serial::STOP_BIT_ONESTOPBIT) {
}
SerialOpenFunction::~SerialOpenFunction() {
@@ -99,6 +106,24 @@
scoped_ptr<base::DictionaryValue> options = params_->options->ToValue();
if (options->HasKey(kBitrateKey))
EXTENSION_FUNCTION_VALIDATE(options->GetInteger(kBitrateKey, &bitrate_));
+ if (options->HasKey(kDataBitKey)) {
+ std::string data;
+ options->GetString(kDataBitKey, &data);
+ if (!data.empty())
+ databit_ = serial::ParseDataBit(data);
+ }
+ if (options->HasKey(kParityKey)) {
+ std::string parity;
+ options->GetString(kParityKey, &parity);
+ if (!parity.empty())
+ parity_ = serial::ParseParityBit(parity);
+ }
+ if (options->HasKey(kStopBitKey)) {
+ std::string stopbit;
+ options->GetString(kStopBitKey, &stopbit);
+ if (!stopbit.empty())
+ stopbit_ = serial::ParseStopBit(stopbit);
+ }
}
return true;
@@ -116,6 +141,9 @@
SerialConnection* serial_connection = CreateSerialConnection(
params_->port,
bitrate_,
+ databit_,
+ parity_,
+ stopbit_,
extension_->id());
CHECK(serial_connection);
int id = manager_->Add(serial_connection);
@@ -143,8 +171,12 @@
SerialConnection* SerialOpenFunction::CreateSerialConnection(
const std::string& port,
int bitrate,
+ serial::DataBit databit,
+ serial::ParityBit parity,
+ serial::StopBit stopbit,
const std::string& owner_extension_id) {
- return new SerialConnection(port, bitrate, owner_extension_id);
+ return new SerialConnection(port, bitrate, databit, parity, stopbit,
+ owner_extension_id);
}
bool SerialOpenFunction::DoesPortExist(const std::string& port) {
« no previous file with comments | « chrome/browser/extensions/api/serial/serial_api.h ('k') | chrome/browser/extensions/api/serial/serial_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698