1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 19:42:01 +02:00

Initial version of transactions. Shell command implemented as an example. Still needs channel cleanup on app side, handling a device dying in the middle of a transaction, and getting device list back to normal.

This commit is contained in:
Simo Kinnunen 2014-02-21 11:43:51 +09:00
parent 84207e1f36
commit 8769b8040c
19 changed files with 433 additions and 181 deletions

View file

@ -8,6 +8,9 @@ wire.ReverseMessageType = Object.keys(wire.MessageType)
.reduce(
function(acc, type) {
var code = wire.MessageType[type]
if (!wire[type]) {
throw new Error('wire.MessageType has unknown value "' + type + '"')
}
wire[type].$code = wire[type].prototype.$code = code
acc[code] = type
return acc

View file

@ -34,10 +34,14 @@ Router.prototype.handler = function() {
if (type) {
this.emit(
wrapper.type
, channel
, wrapper.channel || channel
, wire[type].decode(wrapper.message)
, data
)
this.emit(
'message'
, channel
)
}
else {
log.warn(

View file

@ -29,6 +29,14 @@ var wireutil = {
, envelope: function(message) {
return new wire.Envelope(message.$code, message.encode()).encodeNB()
}
, transaction: function(channel, message) {
return new wire.Envelope(
message.$code
, message.encode()
, channel
)
.encodeNB()
}
, makeDeviceLogMessage: function(serial, entry) {
return wireutil.envelope(new wire.DeviceLogMessage(
serial

View file

@ -10,9 +10,8 @@ enum MessageType {
LeaveGroupMessage = 7;
ProbeMessage = 8;
ShellCommandMessage = 9;
ShellCommandDataMessage = 10;
ShellCommandDoneMessage = 11;
ShellCommandFailMessage = 12;
TransactionProgressMessage = 10;
TransactionDoneMessage = 11;
DeviceIdentityMessage = 13;
DeviceLogMessage = 14;
DevicePresentMessage = 16;
@ -28,11 +27,26 @@ enum MessageType {
DeviceRegisteredMessage = 26;
DeviceLogcatEntryMessage = 27;
LogcatApplyFiltersMessage = 28;
ShellKeepAliveMessage = 29;
}
message Envelope {
required MessageType type = 1;
required bytes message = 2;
optional string channel = 3;
}
message TransactionProgressMessage {
required string serial = 1;
required uint32 seq = 2;
optional string data = 3;
}
message TransactionDoneMessage {
required string serial = 1;
required uint32 seq = 2;
required bool success = 3;
optional string data = 4;
}
// Logging
@ -257,21 +271,10 @@ message LogcatApplyFiltersMessage {
// Commands
message ShellCommandMessage {
required string channel = 1;
repeated string command = 2;
required string command = 1;
required uint32 timeout = 2;
}
message ShellCommandDataMessage {
required string serial = 1;
required uint32 seq = 2;
required bytes data = 3;
}
message ShellCommandDoneMessage {
required string serial = 1;
}
message ShellCommandFailMessage {
required string serial = 1;
required string reason = 2;
message ShellKeepAliveMessage {
required uint32 timeout = 1;
}