Skip to content

Commit 5062677

Browse files
committed
working
1 parent 8a38074 commit 5062677

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

compile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
tsc --out build sos-client.ts
3+

plugins/bamboo.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export class Bamboo extends PluginBase.PluginBase {
4444
if(state == 'successful') {
4545
return PluginBase.PollResultStatus.SUCCESS;
4646
}
47+
console.error("unknown bamboo state:", state);
4748
return PluginBase.PollResultStatus.FAILURE;
4849
}
4950
}

sos-client.ts

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import sos = module('sos-device');
88
import PluginBase = module('plugin');
99
import Bamboo = module('plugins/bamboo');
1010

11-
var useMockDevice: boolean = true;
11+
var useMockDevice: boolean = false;
1212

1313
interface ConfigBuild {
1414
name: string;
@@ -43,6 +43,9 @@ function poll(callback: (err?: Error) => void, startupData: StartupData): void {
4343
startupData.config.builds.forEach((build) => {
4444
build.interval = build.interval || 30000;
4545
build.name = build.name || (build.type + (nameId++));
46+
build.lastPollResult = build.lastPollResult || {
47+
status: PluginBase.PollResultStatus.SUCCESS
48+
};
4649
switch(build.type) {
4750
case 'bamboo':
4851
build.plugin = new Bamboo.Bamboo();
@@ -62,9 +65,11 @@ function pollBuild(build: ConfigBuild, startupData: StartupData): void {
6265
console.error('Failed to poll: ' + build.name, err);
6366
}
6467
if(pollResult) {
65-
build.lastPollResult = pollResult;
66-
console.log('New poll results:', pollResult);
67-
updateSiren(startupData.sosDevice, startupData.sosDeviceInfo, build.lastPollResult);
68+
if(pollResult.status != build.lastPollResult.status) {
69+
build.lastPollResult = pollResult;
70+
console.log('New poll results:', pollResult);
71+
updateSiren(startupData.sosDevice, startupData.sosDeviceInfo, build.lastPollResult);
72+
}
6873
}
6974
setTimeout(pollBuild.bind(null, build, startupData), build.interval);
7075
});
@@ -74,22 +79,24 @@ function updateSiren(sosDevice: SosDevice, sosDeviceInfo: SosDeviceAllInfo, poll
7479
if(pollResult.status == PluginBase.PollResultStatus.FAILURE) {
7580
var controlPacket: SosDeviceControlPacket = {
7681
audioMode: sosDeviceInfo.audioPatterns[0].id,
77-
audioPlayDuration: 500,
82+
audioPlayDuration: 1000,
7883
ledMode: sosDeviceInfo.ledPatterns[0].id,
79-
ledPlayDuration: 500,
84+
ledPlayDuration: 5000,
8085
};
86+
console.log(controlPacket);
8187
sosDevice.sendControlPacket(controlPacket, function(err?) {
8288
if(err) {
8389
console.error("Could not send SoS control packet", err);
8490
}
8591
});
8692
} else if(pollResult.status == PluginBase.PollResultStatus.SUCCESS) {
8793
var controlPacket: SosDeviceControlPacket = {
88-
audioMode: sosDeviceInfo.audioPatterns[0].id,
89-
audioPlayDuration: 100,
94+
audioMode: sosDeviceInfo.audioPatterns[1].id,
95+
audioPlayDuration: 500,
9096
ledMode: sosDeviceInfo.ledPatterns[0].id,
91-
ledPlayDuration: 100,
97+
ledPlayDuration: 500,
9298
};
99+
console.log(controlPacket);
93100
sosDevice.sendControlPacket(controlPacket, function(err?) {
94101
if(err) {
95102
console.error("Could not send SoS control packet", err);
@@ -172,7 +179,13 @@ function connectToDevice(callback: (err: Error, sosDevice?: SosDevice) => void):
172179
}
173180

174181
function getSosDeviceInfo(callback: (err?: Error, sosDeviceInfo?: SosDeviceAllInfo) => void, startupData: StartupData): void {
175-
return startupData.sosDevice.readAllInfo(callback);
182+
return startupData.sosDevice.readAllInfo(function(err?, deviceInfo?) {
183+
if(err) {
184+
return callback(err);
185+
}
186+
console.log("deviceInfo:", deviceInfo);
187+
return callback(null, deviceInfo);
188+
});
176189
}
177190

178191
run(function(err) {

0 commit comments

Comments
 (0)