flush out serial data when too long (#375)
This commit is contained in:
		@@ -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;
 | 
					 | 
				
			||||||
                if (c == "\n") {
 | 
					 | 
				
			||||||
                Runtime.postMessage(<SimulatorSerialMessage>{
 | 
					                Runtime.postMessage(<SimulatorSerialMessage>{
 | 
				
			||||||
                        type: "serial",
 | 
					                    type: 'serial',
 | 
				
			||||||
                    data: this.serialOutBuffer,
 | 
					                    data: this.serialOutBuffer,
 | 
				
			||||||
                        id: runtime.id
 | 
					                    id: runtime.id,
 | 
				
			||||||
 | 
					                    sim: true
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
                    this.serialOutBuffer = ""
 | 
					                this.serialOutBuffer = '';
 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user