Example #1
0
 public void SendAsText(TriggeredEventFrame frame)
 {
     foreach (var connection in connections)
     {
         if (connection != null && connection.events)
         {
             byte[] data;
             data = Encoding.ASCII.GetBytes(frame.ToCSV());
             SendTCP(data, connection.client);
         }
     }
 }
Example #2
0
    void Update()
    {
        float yaw  = (transform.localRotation.eulerAngles.y - lastYaw) / Time.deltaTime;
        float roll = (transform.localRotation.eulerAngles.z - lastRoll) / Time.deltaTime;

        lastRoll = transform.localRotation.eulerAngles.z;
        lastYaw  = transform.localRotation.eulerAngles.y;

        if (Time.time - lastSend < sendRate)
        {
            return;
        }

        float time = Time.time;

        //GearPosActual
        int gear = vehicleController.IsShifting ? -3 : vehicleController.Gear;

        //AcceleratorPedalPos
        int pedalPos = Mathf.RoundToInt(Mathf.Clamp01(vehicleController.accellInput) * 100);

        //DeceleratorPedalPos
        int brakePos = Mathf.RoundToInt(Mathf.Clamp(-1, 0, vehicleController.accellInput) * 100);

        //SteeringWheelAngle
        int wheelAngle = Mathf.RoundToInt(vehicleController.steerInput * 720);

        //VehicleSpeed
        float kmh = rb.velocity.magnitude * 3.6f;
        //TODO: calculate this from wheel rpm

        FullDataFrame frame = new FullDataFrame()
        {
            time                     = time,
            cruiseSpeed              = 0f,
            rpm                      = vehicleController.RPM,
            gearPosActual            = gear,
            gearPosTarget            = vehicleController.Gear,
            accelleratorPos          = pedalPos,
            deceleratorPos           = brakePos,
            rollRate                 = roll,
            steeringWheelAngle       = wheelAngle,
            vehicleSpeed             = kmh,
            vehicleSpeedOverGround   = kmh,
            wheelSpeedFL             = vehicleController.WheelFL.rpm * 60,
            wheelSpeedFR             = vehicleController.WheelFR.rpm * 60,
            wheelSpeedRL             = vehicleController.WheelRL.rpm * 60,
            wheelSpeedRR             = vehicleController.WheelRR.rpm * 60,
            yawRate                  = yaw,
            triggeredEvent1TimeStamp = 0f
        };

        if (triggerTimeStamp1 > 0f || triggerTimeStamp2 > 0f || triggerTimeStamp3 > 0f)
        {
            TriggeredEventFrame eventFrame = new TriggeredEventFrame()
            {
                triggeredEvent1TimeStamp = triggerTimeStamp1,
                triggeredEvent2TimeStamp = triggerTimeStamp2,
                triggeredEvent3TimeStamp = triggerTimeStamp3
            };

            dataStream.SendAsText(eventFrame);
        }

        //add triggered events if required
        if (triggerTimeStamp1 > 0f)
        {
            frame.triggeredEvent1TimeStamp = triggerTimeStamp1;
            triggerTimeStamp1 = 0f;
        }
        if (triggerTimeStamp2 > 0f)
        {
            frame.triggeredEvent2TimeStamp = triggerTimeStamp2;
            triggerTimeStamp2 = 0f;
        }
        if (triggerTimeStamp3 > 0f)
        {
            frame.triggeredEvent3TimeStamp = triggerTimeStamp3;
            triggerTimeStamp3 = 0f;
        }



        dataStream.SendAsText(frame);
    }