public override void clearState()
 {
     lastLapTyreTemps = new TyreTemps();
     thisLapTyreTemps = new TyreTemps();
     lastStatus = TyreTempStatus.COLD;
     hasPlayedMessage = false;
 }
 protected override void triggerInternal(Shared lastState, Shared currentState)
 {
     if (CommonData.isNewLap && CommonData.isSessionRunning)
     {
         if (currentState.CompletedLaps > 1)
         {
             if (lastLapTyreTemps == null)
             {
                 clearState();
                 updateTyreTemps(currentState, lastLapTyreTemps);
             }
             lastLapTyreTemps.display();
             // completed 2 laps, so now we have some comparison data
             TyreTempStatus tempStatus = lastLapTyreTemps.getStatus();
             if (tempStatus != lastStatus || !hasPlayedMessage)
             {
                 hasPlayedMessage = true;
                 switch (tempStatus)
                 {
                     case TyreTempStatus.GOOD:
                         audioPlayer.queueClip(folderGoodTemps, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_ALL_ROUND:
                         audioPlayer.queueClip(folderHotAllRound, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_FRONTS:
                         audioPlayer.queueClip(folderHotFronts, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_REARS:
                         audioPlayer.queueClip(folderHotRears, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_LEFTS:
                         audioPlayer.queueClip(folderHotLefts, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_RIGHTS:
                         audioPlayer.queueClip(folderHotRights, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_LEFT_FRONT:
                         audioPlayer.queueClip(folderHotLeftFront, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_LEFT_REAR:
                         audioPlayer.queueClip(folderHotLeftRear, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_RIGHT_FRONT:
                         audioPlayer.queueClip(folderHotRightFront, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.HOT_RIGHT_REAR:
                         audioPlayer.queueClip(folderHotRightRear, tyreTempMessageDelay, this);
                         break;
                     case TyreTempStatus.COLD:
                         Console.WriteLine("tyres are cold");
                         break;
                 }
                 lastStatus = tempStatus;
             }
         }
         lastLapTyreTemps = thisLapTyreTemps;
         thisLapTyreTemps = new TyreTemps();
     }
     if (thisLapTyreTemps == null)
     {
         Console.WriteLine("resetting tyre temps data");
         clearState();
     }
     updateTyreTemps(currentState, thisLapTyreTemps);
 }
Esempio n. 3
0
 private void checkTemps(TyreTemps tyreTempsToCheck)
 {
     // only give a message if we've completed more than the minimum laps here
     if (tyreTempsToCheck != null)
     {
         tyreTempsToCheck.displayAverages();
         TyreTempStatus tempsStatus = tyreTempsToCheck.getAverageTempStatus();
         if (tempsStatus != lastReportedStatus)
         {
             String messageFolder = getMessage(tempsStatus);
             if (messageFolder != null)
             {
                 Console.WriteLine("Reporting tyre temp status: " + tempsStatus);
                 audioPlayer.queueClip(messageFolder, tyreTempMessageDelay, this);
             }
             lastReportedStatus = tempsStatus;
         }
         else
         {
             Console.WriteLine("No tyre temp status change: " + tempsStatus);
         }
     }
 }
Esempio n. 4
0
 private String getMessage(TyreTempStatus tempStatus)
 {
     switch (tempStatus)
     {
         case TyreTempStatus.GOOD:
             return folderGoodTemps;
         case TyreTempStatus.HOT_ALL_ROUND:
             return folderHotAllRound;
         case TyreTempStatus.HOT_FRONTS:
             return folderHotFronts;
         case TyreTempStatus.HOT_REARS:
             return folderHotRears;
         case TyreTempStatus.HOT_LEFTS:
             return folderHotLefts;
         case TyreTempStatus.HOT_RIGHTS:
             return folderHotRights;
         case TyreTempStatus.HOT_LEFT_FRONT:
             return folderHotLeftFront;
         case TyreTempStatus.HOT_LEFT_REAR:
             return folderHotLeftRear;
         case TyreTempStatus.HOT_RIGHT_FRONT:
             return folderHotRightFront;
         case TyreTempStatus.HOT_RIGHT_REAR:
             return folderHotRightRear;
     }
     return null;
 }
Esempio n. 5
0
 public override void clearState()
 {
     lastLapTyreTemps = null;
     thisLapTyreTemps = null;
     lastReportedStatus = TyreTempStatus.NO_DATA;
     lastReportedKnackeredTyreStatus = TyreWearStatus.NOT_TRIGGERED;
     lastReportedWornTyreStatus = TyreWearStatus.NOT_TRIGGERED;
     checkedTempsAtSector3 = false;
     leftFrontWear = 0;
     rightFrontWear = 0;
     leftRearWear = 0;
     rightRearWear = 0;
     reportedTyreWearForCurrentPitEntry = false;
     reportedEstimatedTimeLeft = false;
 }