flush out serial data when too long (#375)
This commit is contained in:
parent
684646d3de
commit
1f2027d0f9
@ -93,7 +93,7 @@ namespace pxsim {
|
|||||||
break;
|
break;
|
||||||
case "serial":
|
case "serial":
|
||||||
let data = (<SimulatorSerialMessage>msg).data || "";
|
let data = (<SimulatorSerialMessage>msg).data || "";
|
||||||
this.serialState.recieveData(data);
|
this.serialState.receiveData(data);
|
||||||
break;
|
break;
|
||||||
case "radiopacket":
|
case "radiopacket":
|
||||||
let packet = <SimulatorRadioPacketMessage>msg;
|
let packet = <SimulatorRadioPacketMessage>msg;
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
namespace pxsim {
|
namespace pxsim {
|
||||||
|
const SERIAL_BUFFER_LENGTH = 16;
|
||||||
export class SerialState {
|
export class SerialState {
|
||||||
serialIn: string[] = [];
|
serialIn: string[] = [];
|
||||||
|
|
||||||
public recieveData(data: string) {
|
public receiveData(data: string) {
|
||||||
this.serialIn.push();
|
this.serialIn.push();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -13,18 +14,15 @@ namespace pxsim {
|
|||||||
|
|
||||||
serialOutBuffer: string = "";
|
serialOutBuffer: string = "";
|
||||||
writeSerial(s: string) {
|
writeSerial(s: string) {
|
||||||
for (let i = 0; i < s.length; ++i) {
|
this.serialOutBuffer += s;
|
||||||
let c = s[i];
|
if (/\n/.test(this.serialOutBuffer) || this.serialOutBuffer.length > SERIAL_BUFFER_LENGTH) {
|
||||||
this.serialOutBuffer += c;
|
Runtime.postMessage(<SimulatorSerialMessage>{
|
||||||
if (c == "\n") {
|
type: 'serial',
|
||||||
Runtime.postMessage(<SimulatorSerialMessage>{
|
data: this.serialOutBuffer,
|
||||||
type: "serial",
|
id: runtime.id,
|
||||||
data: this.serialOutBuffer,
|
sim: true
|
||||||
id: runtime.id
|
})
|
||||||
})
|
this.serialOutBuffer = '';
|
||||||
this.serialOutBuffer = ""
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user