public static void Main()
    {
        // create an EngineSpec object
        EngineSpec spec = new EngineSpec(2000, "Diesel");

        // create a new object of the VolvoC30 type
        VolvoC30 myCar = new VolvoC30("Adam Freeman", "Black", spec);

        // create a second VolvoC30 object
        VolvoC30 joesCar = new VolvoC30("Joe Smith", "Silver", spec);

        // read and print out the Engine.EngineCapacity field of both objects
        // and the local variable
        Console.WriteLine("--- Values Before Change ---");
        Console.WriteLine("Local EngineSpec Variable: {0}", spec.EngineCapacity);
        Console.WriteLine("myCar field value: {0}", myCar.Engine.EngineCapacity);
        Console.WriteLine("joesCar field value: {0}", joesCar.Engine.EngineCapacity);

        // modify the capacity of the local variable
        spec.EngineCapacity = 2500;

        // read and print out the Engine.EngineCapacity field of both objects
        // and the local variable
        Console.WriteLine("--- Values After Change ---");
        Console.WriteLine("Local EngineSpec Variable: {0}", spec.EngineCapacity);
        Console.WriteLine("myCar field value: {0}", myCar.Engine.EngineCapacity);
        Console.WriteLine("joesCar field value: {0}", joesCar.Engine.EngineCapacity);

        // wait for input before exiting
        Console.WriteLine("Press enter to finish");
        Console.ReadLine();
    }
        public void ConsumeEvent(VMSEventArgs e)
        {
            var message = (e as VMSPidValueEventArgs);

            switch (message.segment.Pid)
            {
            case 190:
                CurrentRPMs = message.segment.RawValue;
                break;

            case 92:
                CurrentLoadPercent = message.segment.StandardValue;
                break;
            }
            if (!double.IsNaN(CurrentRPMs) && !double.IsNaN(CurrentLoadPercent))
            {
                var HP            = EngineSpec.CalculateHorsepower(CurrentRPMs, CurrentLoadPercent);
                var Torque        = EngineSpec.CalculateTorque(CurrentRPMs, CurrentLoadPercent);
                var torqueSegment = message.segment.DeepCopy();
                torqueSegment.Pid           = 510;
                torqueSegment.StandardValue = Torque;
                var hpSegment = message.segment.DeepCopy();
                hpSegment.Pid           = 509;
                hpSegment.StandardValue = HP;
                RaiseVMSEvent?.Invoke(this, new VMSParsedDataEventArgs(510, torqueSegment));
                RaiseVMSEvent?.Invoke(this, new VMSParsedDataEventArgs(509, hpSegment));

                /*
                 * RaiseVMSEvent?.Invoke(this, new VMSPidValueEventArgs(
                 *  (EventIDs.PID_BASE | 510),
                 *  Torque
                 *  ));
                 * RaiseVMSEvent?.Invoke(this, new VMSPidValueEventArgs(
                 *  (EventIDs.PID_BASE | 509),
                 *  HP
                 *  ));
                 */
            }
        }
示例#3
0
 public VolvoM30(string ownerName, string paintColor, EngineSpec engineSpec)
 {
     OwnerName  = ownerName;
     PaintColor = paintColor;
     Engine     = engineSpec;
 }
 public VolvoC30(string newOwner, string paintColor, EngineSpec engineSpec)
 {
     CarOwner   = newOwner;
     PaintColor = paintColor;
     Engine     = engineSpec;
 }