Пример #1
0
        static void Main(string[] args)
        {
            //Game
            //Kost kubik = new Kost();
            //Gamer g1 = new Gamer("Иван");
            //Console.WriteLine("Выпало очков {0} для игрока {1}",
            //g1.SeansGame(kubik), g1.ToString());
            //Monet mon = new Monet();
            //IGame bmon = new AdapterGame(mon);
            //Console.WriteLine("Монета показала \"{0}\" для игрока {1}", g1.SeansGame(bmon),
            //g1.ToString());

            // Climate
            ClimateSystem sys           = new ClimateSystem("Control System");
            FSensor       fSensor       = new FSensor();
            ISensor       sensorAdapter = new AdapterSensor(fSensor);

            Console.WriteLine("System: {0}. Celsium temperature {1}", sys.Name, sensorAdapter.Determine());
            Console.ReadKey();
        }
Пример #2
0
        static Offset <FSensor> Serialise(FlatBufferBuilder b, string identifier, ISensor sensor)
        {
            var n = b.CreateString(identifier);

            int          observation_offset;
            FObservation observation_type;

            switch (sensor)
            {
            case IHasString numeral:
                observation_offset = Serialise(b, numeral).Value;
                observation_type   = FObservation.FString;
                break;

            case IHasFloatArray a:
                observation_offset = Serialise(b, a).Value;
                observation_type   = FObservation.FArray;
                break;

            case IHasSingle single:
                observation_offset = Serialise(b, single).Value;
                observation_type   = FObservation.FSingle;
                break;

            case IHasDouble has_double:
                observation_offset = Serialise(b, has_double).Value;
                observation_type   = FObservation.FDouble;
                break;

            case IHasTriple triple:
                observation_offset = Serialise(b, triple).Value;
                observation_type   = FObservation.FTriple;
                break;

            case IHasQuadruple quadruple:
                observation_offset = Serialise(b, quadruple).Value;
                observation_type   = FObservation.FQuadruple;
                break;

            case IHasEulerTransform transform:
                observation_offset = Serialise(b, transform).Value;
                observation_type   = FObservation.FETObs;
                break;

            case IHasQuaternionTransform quaternion_transform:
                observation_offset = Serialise(b, quaternion_transform).Value;
                observation_type   = FObservation.FQTObs;
                break;

            case IHasRigidbody rigidbody:
                observation_offset = Serialise(b, rigidbody).Value;
                observation_type   = FObservation.FRBObs;
                break;

            case IHasByteArray array:
                observation_offset = Serialise(b, array).Value;
                observation_type   = FObservation.FByteArray;
                break;

            default:
                return(FSensor.CreateFSensor(b, n));
            }

            FSensor.StartFSensor(b);
            FSensor.AddSensorName(b, n);
            FSensor.AddSensorValueType(b, observation_type);
            FSensor.AddSensorValue(b, observation_offset);
            return(FSensor.EndFSensor(b));
        }