Exemplo n.º 1
0
        public CyCustErr CustomizeShapes(
            ICyInstQuery_v1 instQuery,
            ICySymbolShapeEdit_v1 shapeEdit,
            ICyTerminalEdit_v1 termEdit)
        {
            CyCompDevParam width_param = instQuery.GetCommittedParam("Width");
            int            terminal_width;
            CyCustErr      err = width_param.TryGetValueAs <int>(out terminal_width);

            if (err.IsNotOk)
            {
                return(err);
            }

            // Shape the width of the data buses
            string suffix = (terminal_width > 1) ? string.Format("[{0}:0]", terminal_width - 1) : string.Empty;

            string term_name = termEdit.GetTermName("slope");

            termEdit.TerminalRename(term_name, term_name + suffix);

            term_name = termEdit.GetTermName("value");
            termEdit.TerminalRename(term_name, term_name + suffix);

            return(CyCustErr.OK);
        }
        private CyParameters(ICyInstQuery_v1 instQuery, ICyInstEdit_v1 instEdit)
        {
            m_instQuery = instQuery;
            m_instEdit  = instEdit;

            m_ioComponentList = new List <string>();
        }
Exemplo n.º 3
0
        const string OUTPUT_TERM_NAME_2 = "out2"; //out2 terminal


        public CyCustErr CustomizeShapes(ICyInstQuery_v1 instQuery, ICySymbolShapeEdit_v1 shapeEdit,
                                         ICyTerminalEdit_v1 termEdit)
        {
            CyCustErr err;

            // We leave the symbol as it is for symbol preview
            if (instQuery.IsPreviewCanvas)
            {
                return(CyCustErr.OK);
            }

            //todo: if single output -> name it "out" instead of "out1"

            // Read Parameters
            CyCompDevParam outWidthParam1  = instQuery.GetCommittedParam("out1_width");
            byte           outWidth1       = byte.Parse(outWidthParam1.Value);
            byte           maxOutBitIndex1 = (byte)(outWidth1 - 1);
            string         outTermName1    = termEdit.GetTermName(OUTPUT_TERM_NAME_1);

            if (maxOutBitIndex1 != 0)
            {
                err = termEdit.TerminalRename(outTermName1, string.Format("{0}[{1}:0]", OUTPUT_TERM_NAME_1, maxOutBitIndex1.ToString()));
            }
            else
            {
                err = termEdit.TerminalRename(outTermName1, string.Format("{0}", OUTPUT_TERM_NAME_1));
            }

            if (err.IsNotOK)
            {
                return(err);
            }



            // Read Parameters
            CyCompDevParam outWidthParam2  = instQuery.GetCommittedParam("out2_width");
            byte           outWidth2       = byte.Parse(outWidthParam2.Value);
            byte           maxOutBitIndex2 = (byte)(outWidth2 - 1);
            string         outTermName2    = termEdit.GetTermName(OUTPUT_TERM_NAME_2);

            if (maxOutBitIndex2 != 0)
            {
                err = termEdit.TerminalRename(outTermName2, string.Format("{0}[{1}:0]", OUTPUT_TERM_NAME_2, maxOutBitIndex2.ToString()));
            }
            else
            {
                err = termEdit.TerminalRename(outTermName2, string.Format("{0}", OUTPUT_TERM_NAME_2));
            }

            if (err.IsNotOK)
            {
                return(err);
            }



            return(CyCustErr.OK);
        }
        public static T GetValue <T>(string paramName, ICyInstQuery_v1 instQuery)
        {
            if (instQuery == null)
            {
                return(default(T));
            }
            T         value;
            CyCustErr err = instQuery.GetCommittedParam(paramName).TryGetValueAs <T>(out value);

            return((err != null && err.IsOK) ? value : default(T));
        }
Exemplo n.º 5
0
        CyCustErr VerifyNumberOfDatabits(ICyInstQuery_v1 instQuery)
        {
            CyCustErr result = CyCustErr.OK;

            byte value = 0;

            instQuery.GetCommittedParam(CyParamNames.NUMBER_OF_DATA_BITS).TryGetValueAs <byte>(out value);

            if (value < CyParamRange.NUM_BITS_MIN)
            {
                result = new CyCustErr(string.Format(Properties.Resources.DRCNumberOfDataBitsMsg,
                                                     CyParamRange.NUM_BITS_MIN, CyParamRange.NUM_BITS_MAX));
            }
            return(result);
        }
 public CyParameters(ICyInstQuery_v1 instQuery)
     : this(instQuery, null)
 {
 }
Exemplo n.º 7
0
        public IEnumerable<CyAPICustomizer> CustomizeAPIs(ICyInstQuery_v1 query, ICyTerminalQuery_v1 termQuery, 
            IEnumerable<CyAPICustomizer> apis)
        {
            List<CyClockData> clockStuff = termQuery.GetClockData(ADC_ClockTermName, 3);

            Dictionary<string, string> paramDict = null;
            m_termQuery = termQuery;
            m_instQuery = query;
            foreach (CyAPICustomizer api in apis)
            {
                // Get parameter dictionary
                paramDict = api.MacroDictionary;

            }

            bool isPSoC3 = query.GetCommittedParam(Resource.DsmNameText).Value == Resource.DSMText;
            float vdda = float.Parse(query.GetCommittedParam(Resource.VddaValueText).Value);

            // Calculate values
            CalcValues(ref paramDict, isPSoC3, vdda);

            // Assign dictionary back to API customizers
            foreach (CyAPICustomizer api in apis)
            {
                // Get parameter dictionary
                api.MacroDictionary = paramDict;
            }
            // Return customizers
            return apis;
        }
Exemplo n.º 8
0
        public IEnumerable <CyAPICustomizer> CustomizeAPIs(
            ICyInstQuery_v1 query,
            ICyTerminalQuery_v1 termQuery,
            IEnumerable <CyAPICustomizer> apis)
        {
            List <CyAPICustomizer>      customizers = new List <CyAPICustomizer>(apis);
            Dictionary <string, string> paramDict   = new Dictionary <string, string>();
            string instanceName = "";

            // Get the parameters from the characterLCD.c file customizer
            for (int i = 0; i < customizers.Count; i++)
            {
                CyAPICustomizer api = customizers[i];

                // Get dict from main file.
                if (api.OriginalName.EndsWith(LCD_CFILE_NAME))
                {
                    paramDict = api.MacroDictionary;
                    paramDict.TryGetValue(INSTANCE_NAME_PARAM, out instanceName);
                }
                else if (api.OriginalName.EndsWith(CUST_CHARS_CFILE_NAME))
                {
                    m_custChar_CFile = api;
                }
                else if (api.OriginalName.EndsWith(BARGRAPH_CFILE_NAME))
                {
                    m_barGraph_CFile = api;
                }
            }

            // Determine Custom Character Set
            string value;

            paramDict.TryGetValue(CUSTOM_CHARACTER_SET_PARAM, out value);
            m_customCharacterSet = (CyCustomCharacterSetTypes)(int.Parse(value));

            // Determine existence of ASCII Routines
            paramDict.TryGetValue(CONVERSION_ROUTINE_PARAM, out value);
            m_conversionRoutines = (value == "1");

            #region New Code Substitution Values
            const string CUSTOM_CHAR_DEFINES_MACRO = "CustomCharDefines_API_GEN";
            const string CONVERSION_ROUTINE_MACRO  = "ConversionRoutines_DEF";

            string customCharDeleted = "0";
            string customCharDefined = ((byte)m_customCharacterSet).ToString();



            #region Literal String Code for Conversion Routines
            string conversionRoutineDeleted = "0";

            string conversionRoutineDefined = "1";
            #endregion
            #endregion

            // If a character set is selected, build c file with data in it.
            switch (m_customCharacterSet)
            {
            case CyCustomCharacterSetTypes.USERDEFINED:
                ConvertCharacters(LoadUserDefinedCharacters(paramDict), paramDict);
                paramDict.Add(CUSTOM_CHAR_DEFINES_MACRO, customCharDefined);
                customizers.Remove(m_barGraph_CFile);
                break;

            case CyCustomCharacterSetTypes.VERTICAL:
                GenerateVerticalBargraph(paramDict);
                paramDict.Add(CUSTOM_CHAR_DEFINES_MACRO, customCharDefined);
                customizers.Remove(m_custChar_CFile);
                break;

            case CyCustomCharacterSetTypes.HORIZONTAL:
                GenerateHorizontalBargraph(paramDict);
                paramDict.Add(CUSTOM_CHAR_DEFINES_MACRO, customCharDefined);
                customizers.Remove(m_custChar_CFile);
                break;

            default:
                paramDict.Add(CUSTOM_CHAR_DEFINES_MACRO, customCharDeleted);
                customizers.Remove(m_barGraph_CFile);
                customizers.Remove(m_custChar_CFile);
                break;
            }

            // If conversion routines are selected, import them
            if (m_conversionRoutines)
            {
                paramDict.Add(CONVERSION_ROUTINE_MACRO, conversionRoutineDefined);
            }
            else
            {
                paramDict.Add(CONVERSION_ROUTINE_MACRO, conversionRoutineDeleted);
            }
            // Replace macro dictionaries with paramDict
            for (int i = 0; i < customizers.Count; i++)
            {
                CyAPICustomizer api = customizers[i];
                api.MacroDictionary = paramDict;
            }

            return(customizers);
        }
Exemplo n.º 9
0
        public IEnumerable<CyAPICustomizer> CustomizeAPIs(
            ICyInstQuery_v1 query,
            ICyTerminalQuery_v1 termQuery,
            IEnumerable<CyAPICustomizer> apis)
        {
            List<CyAPICustomizer> customizers = new List<CyAPICustomizer>(apis);
            Dictionary<string, string> paramDict = new Dictionary<string, string>();
            string instanceName = "";

            // Get the parameters from the characterLCD.c file customizer
            for (int i = 0; i < customizers.Count; i++)
            {
                CyAPICustomizer api = customizers[i];

                // Get dict from main file.
                if (api.OriginalName.EndsWith(LCD_CFILE_NAME))
                {
                    paramDict = api.MacroDictionary;
                    paramDict.TryGetValue(INSTANCE_NAME_PARAM, out instanceName);
                }
                else if (api.OriginalName.EndsWith(CUST_CHARS_CFILE_NAME))
                {
                    m_custChar_CFile = api;
                }
                else if (api.OriginalName.EndsWith(BARGRAPH_CFILE_NAME))
                {
                    m_barGraph_CFile = api;
                }
            }

            // Determine Custom Character Set
            string value;
            paramDict.TryGetValue(CUSTOM_CHARACTER_SET_PARAM, out value);
            m_customCharacterSet = (CyCustomCharacterSetTypes)(int.Parse(value));

            // Determine existence of ASCII Routines
            paramDict.TryGetValue(CONVERSION_ROUTINE_PARAM, out value);
            m_conversionRoutines = (value == "1");

            #region New Code Substitution Values
            const string CUSTOM_CHAR_DEFINES_MACRO = "CustomCharDefines_API_GEN";
            const string CONVERSION_ROUTINE_MACRO = "ConversionRoutines_DEF";

            string customCharDeleted = "0";
            string customCharDefined = ((byte)m_customCharacterSet).ToString();

            #region Literal String Code for Conversion Routines
            string conversionRoutineDeleted = "0";

            string conversionRoutineDefined = "1";
            #endregion
            #endregion

            // If a character set is selected, build c file with data in it.
            switch (m_customCharacterSet)
            {
                case CyCustomCharacterSetTypes.USERDEFINED:
                    ConvertCharacters(LoadUserDefinedCharacters(paramDict), paramDict);
                    paramDict.Add(CUSTOM_CHAR_DEFINES_MACRO, customCharDefined);
                    customizers.Remove(m_barGraph_CFile);
                    break;
                case CyCustomCharacterSetTypes.VERTICAL:
                    GenerateVerticalBargraph(paramDict);
                    paramDict.Add(CUSTOM_CHAR_DEFINES_MACRO, customCharDefined);
                    customizers.Remove(m_custChar_CFile);
                    break;
                case CyCustomCharacterSetTypes.HORIZONTAL:
                    GenerateHorizontalBargraph(paramDict);
                    paramDict.Add(CUSTOM_CHAR_DEFINES_MACRO, customCharDefined);
                    customizers.Remove(m_custChar_CFile);
                    break;
                default:
                    paramDict.Add(CUSTOM_CHAR_DEFINES_MACRO, customCharDeleted);
                    customizers.Remove(m_barGraph_CFile);
                    customizers.Remove(m_custChar_CFile);
                    break;
            }

            // If conversion routines are selected, import them
            if (m_conversionRoutines)
            {
                paramDict.Add(CONVERSION_ROUTINE_MACRO, conversionRoutineDefined);
            }
            else
            {
                paramDict.Add(CONVERSION_ROUTINE_MACRO, conversionRoutineDeleted);
            }
            // Replace macro dictionaries with paramDict
            for (int i = 0; i < customizers.Count; i++)
            {
                CyAPICustomizer api = customizers[i];
                api.MacroDictionary = paramDict;
            }

            return customizers;
        }