Ejemplo n.º 1
0
        private void saveDetails()
        {
            Error      frmError = new Error();
            UFLDetails ufl      = new UFLDetails();
            string     errMsg   = string.Empty;
            db         myDb     = new db();

            ufl.GetHeaderValues(ws);

            // should we verify on save?



            ufl.HeaderMarkerRow = getHeaderMarkerRow();

            ufl.HeaderAdditionalDetailRows = getHeaderAdditionalDetailsRows();

            ufl.GetPiTags(ws);



            // Save, save, save
            ufl.SaveUFL();

            // Update Row Id
            ws.Cells[8, 3] = ufl.UFLDetailId;

            frmError.ErrorMsg = "Successfully saved details.";
            frmError.Title    = "Saved";
            frmError.ShowDialog();
        }
Ejemplo n.º 2
0
        private bool verifyHeaderValues(UFLDetails ufl, ref string errMsg)
        {
            // Saves having to check for this dummy contents as well as string empty
            if (ufl.DateTimeFormat == "eg MM/dd/yyyy hh:mm:ss")
            {
                ufl.DateTimeFormat = String.Empty;
            }

            // valid header info

            if (ufl.Delimiter == String.Empty)
            {
                errMsg = "Please select a delimiter.";
                return(false);
            }


            if ((ufl.DateTimeFormat != String.Empty) && (ufl.DateFormat != String.Empty) && (ufl.TimeFormat != String.Empty))
            {
                errMsg = "Please select either a DateTime Format or a Date and a Time Format.";
                return(false);
            }

            if (ufl.PiTowerName == String.Empty)
            {
                errMsg = "Please select a Tower Name.";
                return(false);
            }

            return(true);
        }
Ejemplo n.º 3
0
 private void setHeaderAdditionalDetailsRows(UFLDetails ufl)
 {
     foreach (string row in ufl.HeaderAdditionalDetailRows)
     {
         if (row != "")
         {
             ws.Cells[row, 1] = "Additional Detail";
         }
     }
 }
Ejemplo n.º 4
0
        //private void getHeaderValues(UFLDetails ufl)
        //{
        //    ufl.Delimitor = (String)((Excel.Range)ws.Cells[2, 3]).Text;
        //    ufl.DateTimeFormat = (String)((Excel.Range)ws.Cells[3, 3]).Text;
        //    ufl.DateFormat = (String)((Excel.Range)ws.Cells[4, 3]).Text;
        //    ufl.TimeFormat = (String)((Excel.Range)ws.Cells[5, 3]).Text;
        //    ufl.PiTowerName = (String)((Excel.Range)ws.Cells[7, 3]).Text;
        //    if(((Excel.Range)ws.Cells[8, 3]).Text.ToString()!="")
        //    {
        //     ufl.UFLDetailId = int.Parse(((Excel.Range)ws.Cells[8, 3]).Text.ToString());
        //    }

        //}

        //private void setHeaderValues(UFLDetails ufl)
        //{
        //    ws.Cells[2, 3] = ufl.Delimitor;
        //    ws.Cells[3, 3] = ufl.DateTimeFormat;
        //    ws.Cells[4, 3] = ufl.DateFormat;
        //    ws.Cells[5, 3] = ufl.TimeFormat;
        //    ws.Cells[7, 3] = ufl.PiTowerName;
        //    ws.Cells[8, 3] = ufl.UFLDetailId;
        //}

        private void generateUFLClicked()
        {
            UFLDetails    ufl         = new UFLDetails();
            List <String> iniTemplate = new List <string>();
            Utils         u           = new Utils();
            Error         frmError    = new Error();
            string        outFilename = string.Empty;
            db            myDb        = new db();

            // get all the UFL details

            ufl.GetHeaderValues(ws);

            if (ufl.UFLDetailId <= 0)
            {
                frmError.ErrorMsg = "Please use 'Save Details to Database' before generating the UFL.";
                frmError.ShowDialog();
                return;
            }

            if (ufl.DateTimeFormat.IndexOf("mm") != ufl.DateTimeFormat.LastIndexOf("mm"))
            {
                frmError.ErrorMsg = String.Format("Warning: It looks like the date format contains 'mm' twice.\n\nMonth should use 'MMM', minutes should us 'mm'.");
                frmError.Title    = "Warning";
                frmError.ShowDialog();
            }

            ufl.HeaderMarkerRow = getHeaderMarkerRow();

            ufl.HeaderAdditionalDetailRows = getHeaderAdditionalDetailsRows();

            ufl.GetPiTags(ws);

            ufl.GetHeaderRowContents(ws);

            ufl.GetHeaderAdditionalDetailsRowsContents(ws);

            // load template

            iniTemplate = u.LoadTemplate(@"\\10.128.10.8\PIUFL\UFLFormat_template.ini");

            u.FindAndReplace(ufl, iniTemplate);

            outFilename = String.Format(@"\\10.128.10.8\PIUFL\UFLFormat_{0}.ini", ufl.UFLDetailId.ToString().PadLeft(4, '0'));

            u.SaveTemplate(outFilename, iniTemplate);

            ufl.UpdateFileFormatDetails();

            frmError.ErrorMsg = String.Format("Successfully generated UFL:\n\n {0}", outFilename);
            frmError.Title    = "Generate UFL";
            frmError.ShowDialog();
        }
Ejemplo n.º 5
0
        //private void getHeaderValues(UFLDetails ufl)
        //{
        //    ufl.Delimitor = (String)((Excel.Range)ws.Cells[2, 3]).Text;
        //    ufl.DateTimeFormat = (String)((Excel.Range)ws.Cells[3, 3]).Text;
        //    ufl.DateFormat = (String)((Excel.Range)ws.Cells[4, 3]).Text;
        //    ufl.TimeFormat = (String)((Excel.Range)ws.Cells[5, 3]).Text;
        //    ufl.PiTowerName = (String)((Excel.Range)ws.Cells[7, 3]).Text;
        //    if(((Excel.Range)ws.Cells[8, 3]).Text.ToString()!="")
        //    {
        //     ufl.UFLDetailId = int.Parse(((Excel.Range)ws.Cells[8, 3]).Text.ToString());
        //    }

        //}

        //private void setHeaderValues(UFLDetails ufl)
        //{
        //    ws.Cells[2, 3] = ufl.Delimitor;
        //    ws.Cells[3, 3] = ufl.DateTimeFormat;
        //    ws.Cells[4, 3] = ufl.DateFormat;
        //    ws.Cells[5, 3] = ufl.TimeFormat;
        //    ws.Cells[7, 3] = ufl.PiTowerName;
        //    ws.Cells[8, 3] = ufl.UFLDetailId;
        //}

        private void generateUFLClicked()
        {
            UFLDetails    ufl         = new UFLDetails();
            List <String> iniTemplate = new List <string>();
            Utils         u           = new Utils();
            Error         frmError    = new Error();
            string        outFilename = string.Empty;
            db            myDb        = new db();

            // get all the UFL details

            ufl.GetHeaderValues(ws);

            if (ufl.UFLDetailId <= 0)
            {
                frmError.ErrorMsg = "Please use 'Save Details to Database' before generating the UFL.";
                frmError.ShowDialog();
                return;
            }

            if (ufl.DateTimeFormat.IndexOf("mm") != ufl.DateTimeFormat.LastIndexOf("mm"))
            {
                frmError.ErrorMsg = String.Format("Warning: It looks like the date format contains 'mm' twice.\n\nMonth should use 'MMM', minutes should us 'mm'.");
                frmError.Title    = "Warning";
                frmError.ShowDialog();
            }

            ufl.HeaderMarkerRow = getHeaderMarkerRow();

            ufl.HeaderAdditionalDetailRows = getHeaderAdditionalDetailsRows();

            ufl.GetPiTags(ws);

            ufl.GetHeaderRowContents(ws);

            ufl.GetHeaderAdditionalDetailsRowsContents(ws);

            ufl.UpdateFileFormatDetails();

            DateTime dateval = default(DateTime);
            int      row     = ufl.HeaderMarkerRow + 2;

            if (!ufl.HeaderMarkerRowContents.Contains("JulianDay"))
            {
                Excel.Range rng           = ws.Cells[row, 2] as Excel.Range;
                string      datevalstring = rng.Value.ToString();

                dateval = DateTime.Parse(datevalstring);
            }
            else
            {
                //assemble date from julian date
                Excel.Range rng  = ws.Cells[row, 4] as Excel.Range;
                string      year = rng.Value.ToString();

                rng = ws.Cells[row, 5] as Excel.Range;
                string doy = rng.Value.ToString();

                rng = ws.Cells[row, 6] as Excel.Range;
                string hourmin = rng.Value.ToString();

                dateval = u.JulianToDateTime(year, doy, hourmin);
            }

            string sensorError = ufl.CheckMappedSensors(ufl.UFLDetailId, dateval);

            if (sensorError.Length > 0)
            {
                frmError.ErrorMsg = sensorError;
                frmError.Title    = "Save Sensor Mappings";
                frmError.Height   = 500;
                frmError.Width    = 700;
                frmError.ShowDialog();

                return;
            }
            frmError.ErrorMsg = "Successfully saved sensor mappings ";
            frmError.Title    = "Save Sensor Mappings";
            frmError.Width    = 500;
            frmError.ShowDialog();
        }
Ejemplo n.º 6
0
 private void setHeaderMarkerRow(UFLDetails ufl)
 {
     ws.Cells[ufl.HeaderMarkerRow, 1] = "Header Match";
 }
Ejemplo n.º 7
0
        private void loadDetails()
        {
            Error      frmError = new Error();
            UFLDetails ufl      = new UFLDetails();
            UFLDetails oldUfl   = new UFLDetails();
            string     errMsg   = string.Empty;
            db         myDb     = new db();
            Load       frmLoad  = new Load();

            Excel.Range range = null;

            if (LoadDetailsDone)
            {
                frmLoad.ShowDialog();

                ufl.UFLDetailId = frmLoad.UFLDetailId;

                if (ufl.UFLDetailId <= 0)
                {
                    //frmError.ErrorMsg = "No UFL details could be found.\n\nHave you created a UFL Area and selected a unique id?";
                    //frmError.ShowDialog();
                    return;
                }

                oldUfl.GetPiTags(ws);

                // Clear PI Tags row
                if (oldUfl.PiTagRow > 0)
                {
                    range = (Excel.Range)ws.get_Range("A" + oldUfl.PiTagRow, "A" + oldUfl.PiTagRow);
                    range.EntireRow.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
                }

                // Clear contents of col 1
                range = (Excel.Range)ws.get_Range("A1", "A1");

                range.EntireColumn.ClearContents();
                //.Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
                //insertCol(1);

                //myDb.loadUFL(ufl);
                ufl.LoadUFL();

                ufl.SetHeaderValues(ref ws);

                setHeaderMarkerRow(ufl);

                setHeaderAdditionalDetailsRows(ufl);

                createPiTagsNamedRangeForSite(ufl.PiTowerName);

                insertPiTagsIntoHeaderRow(ufl.PiTagRow);



                ufl.SetPiTags(ref ws);

                frmError.ErrorMsg = String.Format("Successfully loaded details for {0} ({1}).", ufl.PiTowerName, ufl.UFLDetailId);
                frmError.Title    = "Loaded";
                frmError.ShowDialog();
            }
            else
            {
                // Please select 'Insert PI Tag Header' first
                frmError.ErrorMsg = "Please use the menu option 'Add UFL Areas' first.";
                frmError.ShowDialog();
            }
        }
Ejemplo n.º 8
0
        public void FindAndReplace(UFLDetails ufl, List <String> iniTemplate)
        {
            int numberOfTags = ufl.PiTagList.Count;
            int fieldIndex   = 22;


            for (int i = 0; i < iniTemplate.Count; i++)
            {
                //iniTemplate[i] = iniTemplate[i].Replace("{InputFileMask}", ufl.FileMask.ToString());
                // Sometime the extension changes (decryption, extraction) so we look for *
                // Filemask is used to identify the file format however
                iniTemplate[i] = iniTemplate[i].Replace("{InputFileMask}", "*");
                iniTemplate[i] = iniTemplate[i].Replace("{InputFolder}", ufl.Folder);
                iniTemplate[i] = iniTemplate[i].Replace("{FileFormat}", String.Format("f{0}_{1}", ufl.UFLDetailId.ToString().PadLeft(4, '0'), ufl.FileMask));
                iniTemplate[i] = iniTemplate[i].Replace("{UFLFileFormatId}", ufl.UFLDetailId.ToString());
                iniTemplate[i] = iniTemplate[i].Replace("{DateTimeFormat}", ufl.DateTimeFormat);

                if (iniTemplate[i].Equals("{FieldsTagVariables}"))
                {
                    iniTemplate[i] = String.Empty;


                    int tagNumber = 1;
                    for (int j = 0; j < numberOfTags; j++)
                    {
                        if (ufl.DataType == "DAT")
                        {
                            // DAT only has one field
                            iniTemplate.Insert(i++, String.Format("FIELD({0}).NAME	= \"TAG{1}DAT\" ", fieldIndex++, tagNumber));
                            iniTemplate.Insert(i++, String.Format("FIELD({0}).NAME	= \"TAG{1}DCL\" ", fieldIndex++, tagNumber));
                            iniTemplate.Insert(i++, String.Format("FIELD({0}).NAME	= \"TAG{1}QCW\" ", fieldIndex++, tagNumber++));
                        }
                        else if (ufl.DataType == "DPD")
                        {
                            iniTemplate.Insert(i++, String.Format("FIELD({0}).NAME	= \"TAG{1}DPD\" ", fieldIndex++, tagNumber));
                            iniTemplate.Insert(i++, String.Format("FIELD({0}).NAME	= \"TAG{1}QCP\" ", fieldIndex++, tagNumber));
                            iniTemplate.Insert(i++, String.Format("FIELD({0}).NAME	= \"TAG{1}DCL\" ", fieldIndex++, tagNumber));
                            iniTemplate.Insert(i++, String.Format("FIELD({0}).NAME	= \"TAG{1}QCW\" ", fieldIndex++, tagNumber++));
                        }
                    }
                }
                else if (iniTemplate[i].Equals("{FieldsTagValues}"))
                {
                    iniTemplate[i] = String.Empty;

                    //int fieldIndex = 100;
                    int tagNumber = 1;
                    for (int j = 0; j < numberOfTags; j++)
                    {
                        iniTemplate.Insert(i++, String.Format("FIELD({0}).NAME	= \"Value{1}\" ", fieldIndex, tagNumber++));
                        iniTemplate.Insert(i++, String.Format("FIELD({0}).TYPE	= \"Number\" ", fieldIndex++));
                    }
                }
                else if (iniTemplate[i].Equals("{HeaderFilter}"))
                {
                    StringBuilder filter = new StringBuilder();
                    string        delim  = "";
                    foreach (string tag in ufl.HeaderMarkerRowContents)
                    {
                        filter.Append(delim);
                        filter.Append(tag);

                        delim = ufl.DelimiterCode;
                    }
                    iniTemplate[i] = "Header.FILTER	= C1==\"" + filter.ToString() + "\"";
                }
                else if (iniTemplate[i].Equals("{DefineTagNames}"))
                {
                    iniTemplate[i] = String.Empty;

                    for (int j = 0; j < numberOfTags; j++)
                    {
                        // Don't store N/A or TIME tags
                        if ((ufl.PiTagList[j].ToString().ToUpper() != "N/A") && (ufl.PiTagList[j].ToString().ToUpper() != "DATETIME"))
                        {
                            if (ufl.DataType == "DAT")
                            {
                                iniTemplate.Insert(i++, String.Format("TAG{0}DAT=\"{1}.DAT.{2}\" ", j + 1, ufl.PiTowerName, ufl.PiTagList[j].ToString()));
                                iniTemplate.Insert(i++, String.Format("TAG{0}DCL=\"{1}.DCL.{2}\" ", j + 1, ufl.PiTowerName, ufl.PiTagList[j].ToString()));
                                iniTemplate.Insert(i++, String.Format("TAG{0}QCW=\"{1}.QCW.{2}\" ", j + 1, ufl.PiTowerName, ufl.PiTagList[j].ToString()));
                            }
                            else if (ufl.DataType == "DPD")
                            {
                                iniTemplate.Insert(i++, String.Format("TAG{0}DPD=\"{1}.DPD.{2}\" ", j + 1, ufl.PiTowerName, ufl.PiTagList[j].ToString()));
                                iniTemplate.Insert(i++, String.Format("TAG{0}QCP=\"{1}.QCP.{2}\" ", j + 1, ufl.PiTowerName, ufl.PiTagList[j].ToString()));
                                iniTemplate.Insert(i++, String.Format("TAG{0}DCL=\"{1}.DCL.{2}\" ", j + 1, ufl.PiTowerName, ufl.PiTagList[j].ToString()));
                                iniTemplate.Insert(i++, String.Format("TAG{0}QCW=\"{1}.QCW.{2}\" ", j + 1, ufl.PiTowerName, ufl.PiTagList[j].ToString()));
                            }
                        }
                    }
                }
                else if (iniTemplate[i].Equals("{DataFilter}"))
                {
                    StringBuilder filter = new StringBuilder();
                    string        delim  = "";

                    for (int j = 0; j < ufl.PiTagList.Count; j++)
                    {
                        filter.Append(delim + "*");
                        delim = ufl.DelimiterCode;
                    }

                    //filter.Append("*" +ufl.Delimitor, 0, ufl.PiTagList.Count);

                    iniTemplate[i++] = String.Format("Data.FILTER	= C1==\"{0}\" ", filter.ToString());

                    for (int j = 0; j < numberOfTags; j++)
                    {
                        // Don't store N/A tags
                        if (ufl.PiTagList[j].ToString().ToUpper() != "N/A")
                        {
                            // Record time value in a special tag
                            if (ufl.PiTagList[j].ToString() == "DateTime")
                            {
                                iniTemplate.Insert(i++, string.Format("DATETIME = [\"{0}\"]", starsPick(ufl.PiTagList.Count, j + 1, ufl.DelimiterCode)));
                            }
                            else
                            {
                                iniTemplate.Insert(i++, string.Format("Value{0} = [\"{1}\"]", j + 1, starsPick(ufl.PiTagList.Count, j + 1, ufl.DelimiterCode)));
                            }
                        }
                    }
                }
                else if (iniTemplate[i].Equals("{DataStoreInPi}"))
                {
                    iniTemplate[i] = String.Empty;

                    for (int j = 0; j < numberOfTags; j++)
                    {
                        // Don't store N/A or TIME tags
                        if ((ufl.PiTagList[j].ToString().ToUpper() != "N/A") && (ufl.PiTagList[j].ToString().ToUpper() != "DATETIME"))
                        {
                            if (ufl.DataType == "DAT")
                            {
                                iniTemplate.Insert(i++, String.Format("Result = StoreInPI(TAG{0}DAT,,DATETIME,Value{0},,) ", j + 1));
                                iniTemplate.Insert(i++, String.Format("Result = StoreInPI(TAG{0}DCL,,DATETIME,Value{0},,) ", j + 1));

                                // Only store QCW values for AVG tags
                                if (ufl.PiTagList[j].ToString().ToUpper().Contains("AVG"))
                                {
                                    iniTemplate.Insert(i++, String.Format("Result = StoreInPI(TAG{0}QCW,,DATETIME,-9999,,) ", j + 1));
                                }
                            }
                            else if (ufl.DataType == "DPD")
                            {
                                iniTemplate.Insert(i++, String.Format("Result = StoreInPI(TAG{0}DPD,,DATETIME,Value{0},,) ", j + 1));
                                iniTemplate.Insert(i++, String.Format("Result = StoreInPI(TAG{0}DCL,,DATETIME,Value{0},,) ", j + 1));

                                // Only store QCP/QCW values for AVG tags
                                if (ufl.PiTagList[j].ToString().ToUpper().Contains("AVG"))
                                {
                                    iniTemplate.Insert(i++, String.Format("Result = StoreInPI(TAG{0}QCP,,DATETIME,-9999,,) ", j + 1));
                                    iniTemplate.Insert(i++, String.Format("Result = StoreInPI(TAG{0}QCW,,DATETIME,-9999,,) ", j + 1));
                                }
                            }
                        }
                    }
                }
            }
        }