public void TestSetUp()
        {
            _logGenerator      = new Log200Generator();
            _wellboreReference = new DataObjectReference
            {
                ContentType = EtpContentTypes.Witsml200.For(ObjectTypes.Wellbore),
                Title       = _logGenerator.Name("Wellbore"),
                Uuid        = _logGenerator.Uid()
            };

            _timeLog = new Log()
            {
                TimeDepth = "Time", Citation = _logGenerator.CreateCitation(_logGenerator.Name("Citation")), Wellbore = _wellboreReference, Uuid = _logGenerator.Uid()
            };
            _depthLog = new Log()
            {
                TimeDepth = "Depth", Citation = _logGenerator.CreateCitation(_logGenerator.Name("Citation")), Wellbore = _wellboreReference, Uuid = _logGenerator.Uid()
            };

            _measuredDepthIndex = _logGenerator.CreateMeasuredDepthIndex(IndexDirection.increasing);
            _dateTimeIndex      = _logGenerator.CreateDateTimeIndex();
            _elapseTimeIndex    = _logGenerator.CreateElapsedTimeIndex(IndexDirection.increasing);

            _booleanPointMetadata = _logGenerator.CreatePointMetadata("confidence", "confidence", EtpDataType.boolean);
            _floatPointMetadata   = _logGenerator.CreatePointMetadata("Confidence", "Confidence", EtpDataType.@float);

            _depthLogChannelSet = _logGenerator.CreateChannelSet(_depthLog);
            _depthLogChannelSet.Index.Add(_measuredDepthIndex);
            _depthLogChannelSet.Index.Add(_dateTimeIndex);
            _depthLogChannelSet.Channel.Add(_logGenerator.CreateChannel(_depthLog, _depthLogChannelSet.Index, "Rate of Penetration", "ROP", UnitOfMeasure.mh, "Velocity", EtpDataType.@double, pointMetadataList: _logGenerator.List(_booleanPointMetadata)));
            _depthLogChannelSet.Channel.Add(_logGenerator.CreateChannel(_depthLog, _depthLogChannelSet.Index, "Hookload", "HKLD", UnitOfMeasure.klbf, "Force", EtpDataType.@double, null));
            _timeLogChannelSet = _logGenerator.CreateChannelSet(_timeLog);
            _timeLogChannelSet.Index.Add(_elapseTimeIndex);
            _timeLogChannelSet.Channel.Add(_logGenerator.CreateChannel(_timeLog, _timeLogChannelSet.Index, "Rate of Penetration", "ROP", UnitOfMeasure.mh, "Velocity", EtpDataType.@double, pointMetadataList: _logGenerator.List(_floatPointMetadata)));
        }
Esempio n. 2
0
        private void dataProcess(string[] source)
        {
            string errorinfo = "";

            string[] datas = new string[source.Length - 3];
            Array.Copy(source, 2, datas, 0, datas.Length);
            switch (source[1])
            {
            case "11":
                goto lable01;

            case "21":
                errorinfo = "Freedom read error: ";
                goto lable10;

            case "12":
                AsyncWriteEvent?.Invoke(true);
                return;

            case "22":
                AsyncWriteEvent?.Invoke(false);
                errorinfo = "Freedom write error: ";
                goto lable10;

            case "15":
                goto lable01;

            case "25":
                errorinfo = "Freedom subscribe error: ";
                goto lable10;

            case "16":
                AsyncCancelSubEvent?.Invoke(true);
                return;

            case "26":
                AsyncCancelSubEvent?.Invoke(false);
                errorinfo = "Freedom Cancelsubscribe error: ";
                goto lable10;

            case "1F":
                List <PointMetadata> result = new List <PointMetadata>();
                for (int i = 0; i < (datas.Length / 4); i++)
                {
                    bool isVirual;
                    int  length;
                    if (bool.TryParse(datas[4 * i + 2], out isVirual) && int.TryParse(datas[4 * i + 3], out length))
                    {
                        PointMetadata metaData = new PointMetadata(datas[4 * i], datas[4 * i + 1], length, isVirual);
                        result.Add(metaData);
                    }
                }
                AsyncReadMetaData?.Invoke(result);
                return;

            case "2F":
                errorinfo = "Freedom read Meta Data error: ";
                goto lable10;

            default:
                return;
            }
lable01:
            List <AsyncResult> asynResults = new List <AsyncResult>();

            for (int i = 0; i < (datas.Length / 4); i++)
            {
                var    nameGroup = datas[4 * i].Split('[');
                string index     = "0";
                var    name      = nameGroup[0];

                if (nameGroup.Length >= 2)
                {
                    index = nameGroup[1].Replace("]", "");
                }
                asynResults.Add(new AsyncResult {
                    Name = name, Index = index, Type = datas[4 * i + 1], Value = datas[4 * i + 2], Quality = datas[4 * i + 3]
                });
            }
            AsyncReadOrSubsEvent?.Invoke(asynResults);
            return;

lable10:
            foreach (string s in datas)
            {
                errorinfo = string.Concat(errorinfo, s);
            }
            _log.ErrorLog(errorinfo);
        }