public void OnInitialised()
 {
     MyPaddock.Subscribe(SetEvent, OnSetEvent);
     MyPaddock.Subscribe(ReSetEvent, OnReSetEvent);
     _Value = PreEventValue.Value;
 }
 public void OnInitialised()
 {
     MyPaddock.Subscribe(Event, OnEvent);
 }
示例#3
0
    public void OnInitialised()
    {
        if (Title == null)
        {
            Component Simulation = Paddock.LinkByType("Simulation") as Component;
            if (Simulation != null)
            {
                Simulation.Get("Title", out Title);
            }
        }

        FileName = Title + "-" + My.Name + ".db";
#if __MonoCS__
        Connection = new SqliteConnection("Data Source=" + FileName + ";Version=3;New=False;Compress=True;");
        Connection.Open();
        SqliteCommand sql_cmd = new SqliteCommand(Connection);
#else
        Connection = new SQLiteConnection("Data Source=" + FileName + ";Version=3;New=False;Compress=True;");
        Connection.Open();
        SQLiteCommand sql_cmd = new SQLiteCommand(Connection);
#endif

#if __MonoCS__
        using (SqliteTransaction dbTrans = Connection.BeginTransaction())
#else
        using (SQLiteTransaction dbTrans = Connection.BeginTransaction())
#endif
        {
            // Make sure we have a Simulations table.
            if (!TableNames.Contains("Simulations"))
            {
                sql_cmd             = Connection.CreateCommand();
                sql_cmd.CommandText = "CREATE TABLE Simulations (ID INTEGER PRIMARY KEY ASC, Title TEXT)";;
                sql_cmd.ExecuteNonQuery();
            }
            dbTrans.Commit();
        }

#if __MonoCS__
        using (SqliteTransaction dbTrans = Connection.BeginTransaction())
#else
        using (SQLiteTransaction dbTrans = Connection.BeginTransaction())
#endif
        {
            // Make sure we have a Data table.
            if (!TableNames.Contains("Data"))
            {
                string Cmd = "CREATE TABLE Data (SimulationID INTEGER)";
                sql_cmd             = Connection.CreateCommand();
                sql_cmd.CommandText = Cmd;
                sql_cmd.ExecuteNonQuery();
            }
            dbTrans.Commit();
        }

        // Try and get our SimulationID. If it's not in the Simulations table
        // then add it. The title is used as the simulation name.
        SimulationID = GetSimulationID();
        if (SimulationID == -1)
        {
            sql_cmd.CommandText = "INSERT INTO [Simulations] (Title) VALUES ('" + Title + "')";
            sql_cmd.ExecuteNonQuery();
            SimulationID = GetSimulationID();
        }

        // Remove existing data for this simulation.
        sql_cmd.CommandText = "DELETE FROM [Data] WHERE SimulationID = " + SimulationID.ToString();
        sql_cmd.ExecuteNonQuery();
        SimulationID = GetSimulationID();

        // Give Sqlite some commands to speed up the adding of data.
        sql_cmd             = Connection.CreateCommand();
        sql_cmd.CommandText = "PRAGMA synchronous=OFF";
        sql_cmd.ExecuteNonQuery();

        // subscribe to all events.
        Paddock.Subscribe(Variables.OutputFrequency, OnDoReport);
    }