Skip to content

Commit cf550bd

Browse files
committed
Added more verbose error message when parsing .ang files that do not conform to the expected numeric types
1 parent 7df7005 commit cf550bd

3 files changed

Lines changed: 23 additions & 2 deletions

File tree

Documentation/ReferenceManual/ReleaseNotes/ReleaseNotes_6_4_0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ The developers of DREAM.3D maintain a pair of Google Groups for discussions on t
4040
+ DREAM3D Issue #748: Only write an ODF angle file if there are valid angles.
4141
+ DREAM3D Issue #748: Change default number of Lambert squares to 64.
4242
+ DREAM3D Issue #748: Example pipelines; rotate the sample reference frame before processing the data
43+
+ EbsdLib: Added more verbose error message when parsing .ang files that do not conform to the expected numeric types.
4344

4445
### Fixed SIMPLView Issues ###
4546

Source/EbsdLib/TSL/AngReader.cpp

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ void AngReader::readData(QFile& in, QByteArray& buf)
451451
{
452452
ss.string()->clear();
453453

454-
ss << "Error parsing the data line.\n"
454+
ss << "Error parsing the data line (Numeric conversion). Error code is " << getErrorCode() << " and occurred at data column " << m_ErrorColumn << " (Zero Based)\n"
455455
<< buf << "\n*** Header information ***\nRows=" << numRows << " EvenCols=" << nEvenCols << " OddCols=" << nOddCols << " Calculated Data Points: " << totalDataPoints
456456
<< "\n***Parsing Position ***\nCurrent Row: " << yChange << " Current Column Index: " << col << " Current Data Point Count: " << counter << "\n";
457457
setErrorMessage(*(ss.string()));
@@ -663,6 +663,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
663663
* Some TSL ang files do NOT have all 10 columns. Assume these are lacking the last
664664
* 2 columns and all the other columns are the same as above.
665665
*/
666+
m_ErrorColumn = 0;
666667
float p1 = 0.0f, p = 0.0f, p2 = 0.0f, x = -1.0f, y = -1.0f, iqual = -1.0f, conf = -1.0f, semSignal = -1.0f, fit = -1.0f;
667668
int ph = 0;
668669
size_t offset = 0;
@@ -675,6 +676,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
675676
if(!ok)
676677
{
677678
setErrorCode(-2501);
679+
m_ErrorColumn = 0;
678680
}
679681
m_Phi1[offset] = p1;
680682
}
@@ -684,6 +686,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
684686
if(!ok)
685687
{
686688
setErrorCode(-2502);
689+
m_ErrorColumn = 1;
687690
}
688691
m_Phi[offset] = p;
689692
}
@@ -693,6 +696,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
693696
if(!ok)
694697
{
695698
setErrorCode(-2503);
699+
m_ErrorColumn = 2;
696700
}
697701
m_Phi2[offset] = p2;
698702
}
@@ -702,6 +706,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
702706
if(!ok)
703707
{
704708
setErrorCode(-2504);
709+
m_ErrorColumn = 3;
705710
}
706711
m_X[offset] = x;
707712
}
@@ -711,6 +716,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
711716
if(!ok)
712717
{
713718
setErrorCode(-2505);
719+
m_ErrorColumn = 4;
714720
}
715721
m_Y[offset] = y;
716722
}
@@ -720,6 +726,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
720726
if(!ok)
721727
{
722728
setErrorCode(-2506);
729+
m_ErrorColumn = 5;
723730
}
724731
m_Iq[offset] = iqual;
725732
}
@@ -729,6 +736,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
729736
if(!ok)
730737
{
731738
setErrorCode(-2507);
739+
m_ErrorColumn = 6;
732740
}
733741
m_Ci[offset] = conf;
734742
}
@@ -738,18 +746,29 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
738746
if(!ok)
739747
{
740748
setErrorCode(-2508);
749+
m_ErrorColumn = 7;
741750
}
742751
m_PhaseData[offset] = ph;
743752
}
744-
753+
745754
if(tokens.size() >= 9)
746755
{
747756
semSignal = tokens[8].toFloat(&ok);
757+
if(!ok)
758+
{
759+
setErrorCode(-2509);
760+
m_ErrorColumn = 8;
761+
}
748762
m_SEMSignal[offset] = semSignal;
749763
}
750764
if(tokens.size() >= 10)
751765
{
752766
fit = tokens[9].toFloat(&ok);
767+
if(!ok)
768+
{
769+
setErrorCode(-2510);
770+
m_ErrorColumn = 9;
771+
}
753772
m_Fit[offset] = fit;
754773
}
755774
}

Source/EbsdLib/TSL/AngReader.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ class EbsdLib_EXPORT AngReader : public EbsdReader
146146

147147
private:
148148
AngPhase::Pointer m_CurrentPhase;
149+
int m_ErrorColumn = 0;
149150

150151

151152
void readData(QFile& in, QByteArray& buf);

0 commit comments

Comments
 (0)