示例#1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // se si richiama la pagina da fuori NON è postback, per cui gli oggetti
        // vengono istanziati TUTTE le volte
        // TODO fare una sessione e vedere se si riesce ad istanziare i sensori all'interno
        //      della sessione una sola volta
        Gor.Common.InitializeCommonVariables();
        Logger logger = new Logger(Gor.Common.LogsPath, false, "events.txt", "errors.txt",
            "debug.txt", "prompts.txt", "data.txt");
        //Logger logger = new Logger(Gor.Common.LogsPath, false, "tutto.txt", "tutto.txt",
        //    "tutto.txt", "tutto.txt", "data.txt");

        Page.EnableViewState = false;
        visualizzazione.EnableViewState = false;
        contenutoStandard.EnableViewState = false;

        logger.Debug("Gor v." + versione); // i file di log si trovano in /home/pi/gor/logs

        // inizializzazione dei sensori
        Trh = new Humidity_Temperature_Air_DHT22("DHT22_Umidita-Temperatura-aria", false, 11, logger);
        logger.Debug("DHT22-inizializzato");
        //T = new Temperature_DS1822("Sonda temperatura", false, "28-0000062196f0", logger);
        T = new Temperature_DS1822("DS1822_Temperatura-sonda", false, logger);
        logger.Debug("DS1822-inizializzato");
        L = new Light_PhotoResistor("Fotoresistore_Luminosità", false, new Adc_MCP3208(), 1, logger);
        logger.Debug("Photoresistor-inizializzato");
        RH = new Humidity_Air_HIH4000("HIH4000_Umidità-aria", false, new Adc_MCP3208(), 1, logger);
        logger.Debug("HIH4000-inizializzato");

        // acquisizione dati
        // HTML per visualizzazione su pagina Web:
        string vis = "Versione " + versione + "<br/>\n";
        // "xml Serri" per scambio dati con programma "Collector":
        string standard = "<cen>Raspberry</cen><br/>\n<ver>" + versione +"</ver><br/>\n";

        T.Measure();
        vis += T.LastMeasurements[0].ToString() + "<br/>";

        L.Measure();
        vis += L.LastMeasurements[0].ToString() + "<br/>";
        standard += "<lum>" + L.LastMeasurements[0].Value.ToString() + "</lum>\n";

        RH.Measure().ToString();
        vis += RH.LastMeasurements[0].ToString() + "<br/>";

        Trh.Measure().ToString();
        vis += Trh.LastMeasurements[0].ToString() + "<br/>";
        standard += "<tem>" + Trh.LastMeasurements[0].Value.ToString() + "</tem>\n";

        vis += Trh.LastMeasurements[1].ToString() + "<br/>";
        standard += "<umi>" + Trh.LastMeasurements[1].Value.ToString() + "</umi>\n";

        standard += "\n";
        visualizzazione.Text = vis;
        contenutoStandard.Text = standard;
    }
示例#2
0
        private static void configureFromFile()
        {
            Common.logger.Debug("configureFromFile_00");
            using (FileStream svs = new FileStream(Gor.Common.ConfigurationFile, FileMode.Open,
                FileAccess.Read, FileShare.Read))
            using (StreamReader rd = new StreamReader(svs))
            {
                Common.logger.Debug("configureFromFile_20");
                string s = rd.ReadToEnd();
                string[] righe = s.Replace("\r", "").Split('\n');
                int i = 0;
                foreach (string riga in righe)
                {
                    Common.logger.Debug("configureFromFile_25: riga " + riga);
                    if (i != 0 && riga.Trim() != "")
                    {
                        string[] campi = riga.Split('\t');
                        Common.logger.Debug("configureFromFile_30 " + campi[0]);
                        Sensor sens = null;
                        switch (campi[0])
                        {
                            case "Temperature_DS1822":
                                {
                                    Common.logger.Debug("configureFromFile_32 Temperature_DS1822 " + campi[1] + campi[4] + campi[2]);
                                    // la seguente usa il costruttore che indica l'ID del sensore
                                    //sens = new Temperature_DS1822(campi[1], bool.Parse(campi[4]), campi[2], Common.logger);
                                    // la seguente usa il costruttore che trova automaticamente l'ID del sensore
                                    sens = new Temperature_DS1822(campi[1], bool.Parse(campi[4]), Common.logger);
                                    break;
                                }
                            case "Humidity_Air_HIH4000":
                                {
                                    Common.logger.Debug("configureFromFile_34 Humidity_Air_HIH4000 " + campi[1] + campi[4] + campi[2]);
                                    sens = new Humidity_Air_HIH4000(campi[1], bool.Parse(campi[4]), converter, int.Parse(campi[2]), Common.logger);
                                    break;
                                }
                            case "Light_PhotoResistor":
                                {
                                    Common.logger.Debug("configureFromFile_36 Light_PhotoResistor " + campi[1] + campi[4] + campi[2]);
                                    sens = new Light_PhotoResistor(campi[1], bool.Parse(campi[4]), converter, int.Parse(campi[2]), Common.logger);
                                    break;
                                }
                            case "Humidity_Temperature_Air_DHT22":
                                {
                                    Common.logger.Debug("configureFromFile_37 Humidity_Temperature_Air_DHT22 " + campi[1] + campi[4] + campi[2]);
                                    sens = new Humidity_Temperature_Air_DHT22(campi[1], bool.Parse(campi[4]), int.Parse(campi[2]), Common.logger);
                                    break;
                                }
                        }
                        Common.logger.Debug("configureFromFile_40 " + campi[5]);
                        sens.AlarmMax = double.Parse(campi[5]);
                        Common.logger.Debug("configureFromFile_42 " + campi[6]);
                        sens.AlarmMin = double.Parse(campi[6]);
                        Common.logger.Debug("configureFromFile_44 " + campi[7]);
                        sens.MaxValue = double.Parse(campi[7]);
                        Common.logger.Debug("configureFromFile_46 " + campi[8]);
                        sens.MinValue = double.Parse(campi[8]);
                        Common.logger.Debug("configureFromFile_48 " + campi[9]);
                        sens.Unit = campi[9];
                        Common.logger.Debug("configureFromFile_50");

                        if (sens != null)
                            Sensors.Add(sens);
                        Common.logger.Debug("configureFromFile_60");
                    }
                    i++;
                }
            }
            Common.logger.Debug("configureFromFile_99");
        }
示例#3
0
        private static void Initialize(bool inSimulation)
        {
            logger.Debug("Initialize_01");

            if (inSimulation)
            {
                // inizializzazioni per la parte di simulazione
                // convertitore
                converter = null;
            }
            else
            {
                // inizializzazioni per la parte di acquisizione reale
                // convertitore
                converter = new Adc_MCP3208();
            }

            // istanziazione dei sensori
            //relativeHumidity = new Humidity_Air_HIH4000(inSimulation, converter, RELATIVE_HUMIDITY_CHANNEL);
            airHumidityAndTemperature = new Humidity_Temperature_Air_DHT22("Umidita", inSimulation, DHT22_IO_PIN, logger);
            //log.Test(airHumidityAndTemperature.AlarmMax.ToString());
            //Sensors.Add(airHumidityAndTemperature);

            logger.Debug("Initialize_10");

            light = new Light_PhotoResistor("Luce", inSimulation, converter,
                PHOTO_RESISTOR_CHANNEL, logger);
            logger.Debug(light.Measure().ToString());
            Sensors.Add(light);

            logger.Debug("Initialize_20");

            try {
                T1 = new Temperature_DS1822("T1", inSimulation, idT1, logger);
                Sensors.Add(T1);
            }
            catch (Exception ex)
            {
                logger.Error("Initialize_T1" + ex.Message);
            }
            try
            {
                T2 = new Temperature_DS1822("T2", inSimulation, idT2, logger);
                Sensors.Add(T2);
            }
            catch (Exception ex)
            {
                logger.Error("Initialize_T2" + ex.Message);
            }
            try
            {
                T3 = new Temperature_DS1822("T3", inSimulation, idT3, logger);
                Sensors.Add(T3);
            }
            catch (Exception ex)
            {
                logger.Error("Initialize_T3" + ex.Message);
            }
            try
            {
                T4 = new Temperature_DS1822("T4", inSimulation, idT4, logger);
                Sensors.Add(T4);
            }
            catch (Exception ex)
            {
                logger.Error("Initialize_T4" + ex.Message);
            }

            //terrainHumidity = new Humidity_Terrain_YL69YL38(inSimulation, converter, TERRAIN_HUMIDITY_CHANNEL);

            //TODO legge la lista Sensori: le linee precedenti  devono essere sostituite
            // Sensori =
            ////////////dbWriter = new GorDbWriter(Sensori);

            // appende nel file .tsv l'intestazione
            string intestazione = "Istante\tUmidita'\tTemper. aria\tTemper. sonda 1\t" +
            "Temper. sonda 2\tTemper. sonda 3\tTemper. sonda 4\tPunti ADC sens. illum.\t" +
            "Punti ADC sens. umid.\n"; // #+ socket.gethostname() +"\n"
            logger.DataLog(intestazione);

            //using (StreamWriter sw = File.AppendText(progamPath + dataLogFile))
            //{
            //    string intestazione = "Istante\tUmidita'\tTemper. aria\tTemper. sonda 1\t" +
            //    "Temper. sonda 2\tTemper. sonda 3\tTemper. sonda 4\tPunti ADC sens. illum.\t" +
            //    "Punti ADC sens. umid.\n"; // #+ socket.gethostname() +"\n"
            //    sw.WriteLine(intestazione);
            //}

            //Rtc_PCF8563 rtc = new Rtc_PCF8563(RTC_ADDRESS);

            // mette zero nel file che stabilisce se il programma deve fermarsi
            zeroInClose();

            logger.Debug("Initialize_99");

            return;
        }