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:
parent
84207e1f36
commit
8769b8040c
19 changed files with 433 additions and 181 deletions
|
@ -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
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue