@@ -346,6 +346,7 @@ class ScienceLab {
346346
347347 Future <void > loadEquation (String channel, String function) async {
348348 List <double > span = List .filled (2 , 0 );
349+
349350 if (function == 'sine' ) {
350351 span[0 ] = 0 ;
351352 span[1 ] = 2 * pi;
@@ -354,21 +355,31 @@ class ScienceLab {
354355 span[0 ] = 0 ;
355356 span[1 ] = 4 ;
356357 waveType[channel] = 'tria' ;
358+ } else if (function == 'sawtooth' ) {
359+ span[0 ] = 0 ;
360+ span[1 ] = 2 * pi;
361+ waveType[channel] = 'sawtooth' ;
357362 } else {
358363 waveType[channel] = 'orbit' ;
359364 }
365+
360366 double factor = (span[1 ] - span[0 ]) / 512 ;
361367 List <double > x = [];
362368 List <double > y = [];
369+
363370 for (int i = 0 ; i < 512 ; i++ ) {
364371 x.add (span[0 ] + i * factor);
372+
365373 switch (function) {
366374 case 'sine' :
367375 y.add (sin (x[i]));
368376 break ;
369377 case 'tria' :
370378 y.add ((x[i] % 4 - 2 ).abs ());
371379 break ;
380+ case 'sawtooth' :
381+ y.add ((x[i] / pi) - 1.0 );
382+ break ;
372383 default :
373384 break ;
374385 }
@@ -1082,12 +1093,12 @@ class ScienceLab {
10821093 }
10831094
10841095 if (waveType != null) {
1085- if (waveType == "sine" || waveType == "tria") {
1096+ if (waveType == "sine" || waveType == "tria" || waveType == "sawtooth" ) {
10861097 if (this.waveType["SI1 "] != waveType) {
10871098 loadEquation("SI1 ", waveType);
10881099 }
10891100 } else {
1090- logger.e("Not a valid waveform. try sine or tria ");
1101+ logger.e("Not a valid waveform. try sine, tria, or sawtooth ");
10911102 }
10921103 }
10931104
@@ -1139,12 +1150,12 @@ class ScienceLab {
11391150 }
11401151
11411152 if (waveType != null) {
1142- if (waveType == "sine" || waveType == "tria") {
1153+ if (waveType == "sine" || waveType == "tria" || waveType == "sawtooth" ) {
11431154 if (this.waveType["SI2 "] != waveType) {
11441155 loadEquation("SI2 ", waveType);
11451156 }
11461157 } else {
1147- logger.e("Not a valid waveform. try sine or tria ");
1158+ logger.e("Not a valid waveform. try sine, tria, or sawtooth ");
11481159 }
11491160 }
11501161
0 commit comments