Ejemplo n.º 1
0
 private void Reset()
 {
     data.Clear();
     currentCmd = null;
     lastRecord = null;
     lastField  = null;
 }
Ejemplo n.º 2
0
        private Field FillRecord(IDictionary <Field, string> record, EPICommand data, FieldList fieldList, int offset)
        {
            Field  lastField = null;
            string fieldValue;

            for (int i = offset; i < data.Fields.Length; i++)
            {
                if (i < fieldList.Count)
                {
                    Field f = fieldList[i];
                    fieldValue = data[i];
                    record.Add(f, fieldValue);

                    lastField = f;
                }
            }

            return(lastField);
        }
Ejemplo n.º 3
0
        public List <Record> Read(Queue <EPICommand> cmds)
        {
            Reset();

            while (cmds.Count > 0)
            {
                currentCmd       = cmds.Dequeue();
                dataContinuation = false;

                switch (currentCmd.CMDWord)
                {
                case CommandWords.Responses.BeginOfData:
                    ReadBeginOfData();
                    break;

                case CommandWords.Responses.MetaData:
                    ReadMetaData();
                    break;

                case CommandWords.Responses.Data:
                    ReadData();
                    break;

                case CommandWords.Responses.DataContinuation:
                    dataContinuation = true;
                    ReadData();
                    break;

                case CommandWords.Responses.EndOfData:
                    ReadEndOfData();
                    break;

                default:
                    throw new NotSupportedException("command " + currentCmd.CMDWord + " is not supported");
                }
            }

            return(data);
        }