9
9
MICROBIT_HAL_LOG_TIMESTAMP_NONE ,
10
10
MICROBIT_HAL_LOG_TIMESTAMP_SECONDS ,
11
11
} from "./constants" ;
12
- import { State } from "./state" ;
12
+ import { DataLoggingState , State } from "./state" ;
13
13
14
14
// Determined via a CODAL program dumping logEnd - dataStart in MicroBitLog.cpp.
15
15
// This is only approximate as we don't serialize our state in the same way but
@@ -24,7 +24,7 @@ export class DataLogging {
24
24
private headingsChanged : boolean = false ;
25
25
private headings : string [ ] = [ ] ;
26
26
private row : string [ ] | undefined ;
27
- private logFull : boolean = false ;
27
+ state : DataLoggingState = { type : "dataLogging" , logFull : false } ;
28
28
29
29
constructor (
30
30
private currentTimeMillis : ( ) => number ,
@@ -84,13 +84,13 @@ export class DataLogging {
84
84
if ( entry . data || entry . headings ) {
85
85
const entrySize = calculateEntrySize ( entry ) ;
86
86
if ( this . size + entrySize > maxSizeBytes ) {
87
- if ( ! this . logFull ) {
88
- this . logFull = true ;
87
+ if ( ! this . state . logFull ) {
88
+ this . state = {
89
+ ...this . state ,
90
+ logFull : true ,
91
+ } ;
89
92
this . onChange ( {
90
- dataLogging : {
91
- type : "dataLogging" ,
92
- logFull : true ,
93
- } ,
93
+ dataLogging : this . state ,
94
94
} ) ;
95
95
}
96
96
return MICROBIT_HAL_DEVICE_NO_RESOURCES ;
@@ -148,13 +148,13 @@ export class DataLogging {
148
148
this . timestampOnLastEndRow = undefined ;
149
149
150
150
this . size = 0 ;
151
- if ( this . logFull ) {
152
- this . logFull = false ;
151
+ if ( this . state . logFull ) {
152
+ this . state = {
153
+ ...this . state ,
154
+ logFull : false ,
155
+ } ;
153
156
this . onChange ( {
154
- dataLogging : {
155
- type : "dataLogging" ,
156
- logFull : false ,
157
- } ,
157
+ dataLogging : this . state ,
158
158
} ) ;
159
159
}
160
160
0 commit comments