コード例 #1
0
        public XP11Link(Logger logger)
        {
            this.logger  = logger;
            this.factory = new DatarefFactory(logger);

            pipe = new NamedPipeClientStream(".", "{2145AB63-BF83-40A4-8A9D-A358D45AF1C1}", PipeDirection.InOut);
            logger.Debug("Logger given to XP11Link");
        }
コード例 #2
0
ファイル: XP11_VA_Link.cs プロジェクト: nskillen/XP11_VA_Link
        private static void SetDataRef(dynamic vaProxy)
        {
            string datarefName = vaProxy.GetText("~datarefName");
            int    datarefType = vaProxy.GetInt("~datarefType") ?? throw new ArgumentException("Missing parameter ~datareftype");
            object datarefValue;

            switch ((DataRef.Type)datarefType)
            {
            case DataRef.Type.Int:
                datarefValue = (int?)vaProxy.GetInt("~~datarefValue") ?? throw new ArgumentException("No int value assigned to datarefValue");
                break;

            case DataRef.Type.Float:
                datarefValue = (decimal?)vaProxy.GetDecimal("~~datarefValue") ?? throw new ArgumentException("No decimal value assigned to datarefValue");
                break;

            case DataRef.Type.Double:
                datarefValue = (decimal?)vaProxy.GetDecimal("~~datarefValue") ?? throw new ArgumentException("No decimal value assigned to datarefValue");
                break;

            case DataRef.Type.FloatArray:
                throw new ArgumentException("Array datarefs are not yet supported");

            case DataRef.Type.IntArray:
                throw new ArgumentException("Array datarefs are not yet supported");

            case DataRef.Type.Data:
                datarefValue = (string)vaProxy.GetText("~~datarefValue");
                break;

            case DataRef.Type.Unknown:
            default:
                throw new ArgumentException("Unsupported data type: " + datarefType);
            }


            DataRef dr = new DatarefFactory(logger).FromObject(datarefName, datarefType, datarefValue);

            if (dr != null)
            {
                logger.Debug("Will set dataref: " + dr.ToString());
                if (link.SetDataref(dr))
                {
                    logger.Info("Successfully set dataref: " + dr.ToString());
                }
                else
                {
                    logger.Warn("Failed to set dataref: " + dr.ToString());
                }
            }
            else
            {
                logger.Error("Failed to convert input into dataref");
                logger.Debug("datarefName: " + datarefName);
                logger.Debug("datarefType: " + datarefType);
                logger.Debug("datarefValue: " + datarefValue);
            }
        }