64ed8babd1
- aggiunta gestione DB utensili - aggiunta gestione DB lavorazioni.
232 lines
6.4 KiB
C++
232 lines
6.4 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2015-2015
|
|
//----------------------------------------------------------------------------
|
|
// File : ToolData.cpp Data : 04.06.15 Versione : 1.6f1
|
|
// Contenuto : Implementazione struttura dati utensile.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 04.06.15 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
//--------------------------- Include ----------------------------------------
|
|
#include "stdafx.h"
|
|
#include "ToolData.h"
|
|
#include "/EgtDev/Include/EGnStringUtils.h"
|
|
#include <array>
|
|
#include <cassert>
|
|
|
|
using namespace std ;
|
|
|
|
//----------------------------------------------------------------------------
|
|
enum nToolKey {
|
|
TK_COR = 0,
|
|
TK_CRAD,
|
|
TK_D,
|
|
TK_DRAW,
|
|
TK_DT,
|
|
TK_EXI,
|
|
TK_F,
|
|
TK_FE,
|
|
TK_FS,
|
|
TK_FT,
|
|
TK_HEA,
|
|
TK_L,
|
|
TK_LT,
|
|
TK_MM,
|
|
TK_NAME,
|
|
TK_NS,
|
|
TK_NU,
|
|
TK_OL,
|
|
TK_OR,
|
|
TK_S,
|
|
TK_SANG,
|
|
TK_SM,
|
|
TK_SUP,
|
|
TK_TH,
|
|
TK_TYP,
|
|
TK_UUID,
|
|
TK_ZZZ} ; // rappresenta il numero di elementi
|
|
|
|
static const std::array<std::string,TK_ZZZ> sToolKey = {
|
|
"COR",
|
|
"CRAD",
|
|
"D",
|
|
"DRAW",
|
|
"DT",
|
|
"EXI",
|
|
"F",
|
|
"FE",
|
|
"FS",
|
|
"FT",
|
|
"HEA",
|
|
"L",
|
|
"LT",
|
|
"MM",
|
|
"NAME",
|
|
"NS",
|
|
"NU",
|
|
"OL",
|
|
"OR",
|
|
"S",
|
|
"SANG",
|
|
"SM",
|
|
"SUP",
|
|
"TH",
|
|
"TYP",
|
|
"UUID"} ;
|
|
|
|
//----------------------------------------------------------------------------
|
|
int
|
|
ToolData::GetSize( void) const
|
|
{
|
|
// in debug verifico validità ultimo campo
|
|
assert( sToolKey[TK_UUID] == "UUID") ;
|
|
return TK_ZZZ ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
int
|
|
FindToolKey( const string& sKey)
|
|
{
|
|
auto TheRange = equal_range( sToolKey.cbegin(), sToolKey.cend(), sKey) ;
|
|
if ( TheRange.first == TheRange.second)
|
|
return - 1 ;
|
|
return int( TheRange.first - sToolKey.cbegin()) ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
bool
|
|
ToolData::FromString( const string& sString, int& nKey)
|
|
{
|
|
// separo chiave da valore
|
|
string sKey, sVal ;
|
|
SplitFirst( sString, "=", sKey, sVal) ;
|
|
// riconosco la chiave
|
|
nKey = FindToolKey( ToUpper( sKey)) ;
|
|
bool bOk = ( nKey >= 0) ;
|
|
switch ( nKey) {
|
|
case TK_COR :
|
|
bOk = ::FromString( sVal, m_nCorr) ;
|
|
break ;
|
|
case TK_CRAD :
|
|
bOk = ::FromString( sVal, m_dCornRad) ;
|
|
break ;
|
|
case TK_D :
|
|
bOk = ::FromString( sVal, m_dDiam) ;
|
|
break ;
|
|
case TK_DRAW :
|
|
m_sDraw = sVal ;
|
|
break ;
|
|
case TK_DT :
|
|
bOk = ::FromString( sVal, m_dTDiam) ;
|
|
break ;
|
|
case TK_EXI :
|
|
bOk = ::FromString( sVal, m_nExit) ;
|
|
break ;
|
|
case TK_F :
|
|
bOk = ::FromString( sVal, m_dFeed) ;
|
|
break ;
|
|
case TK_FE :
|
|
bOk = ::FromString( sVal, m_dEndFeed) ;
|
|
break ;
|
|
case TK_FS :
|
|
bOk = ::FromString( sVal, m_dStartFeed) ;
|
|
break ;
|
|
case TK_FT :
|
|
bOk = ::FromString( sVal, m_dTipFeed) ;
|
|
break ;
|
|
case TK_HEA :
|
|
m_sHead = sVal ;
|
|
bOk = ! m_sHead.empty() ;
|
|
break ;
|
|
case TK_L :
|
|
bOk = ::FromString( sVal, m_dLen) ;
|
|
break ;
|
|
case TK_LT :
|
|
bOk = ::FromString( sVal, m_dTLen) ;
|
|
break ;
|
|
case TK_MM :
|
|
bOk = ::FromString( sVal, m_dMaxMat) ;
|
|
break ;
|
|
case TK_NAME :
|
|
m_sName = sVal ;
|
|
bOk = ! m_sName.empty() ;
|
|
break ;
|
|
case TK_NS :
|
|
m_sSysNotes = sVal ;
|
|
break ;
|
|
case TK_NU :
|
|
m_sUserNotes = sVal ;
|
|
break ;
|
|
case TK_OL :
|
|
bOk = ::FromString( sVal, m_dOffsL) ;
|
|
break ;
|
|
case TK_OR :
|
|
bOk = ::FromString( sVal, m_dOffsR) ;
|
|
break ;
|
|
case TK_S :
|
|
bOk = ::FromString( sVal, m_dSpeed) ;
|
|
break ;
|
|
case TK_SANG :
|
|
bOk = ::FromString( sVal, m_dSideAng) ;
|
|
break ;
|
|
case TK_SM :
|
|
bOk = ::FromString( sVal, m_dMaxSpeed) ;
|
|
break ;
|
|
case TK_SUP :
|
|
m_sTcPos = sVal ;
|
|
break ;
|
|
case TK_TH :
|
|
bOk = ::FromString( sVal, m_dThick) ;
|
|
break ;
|
|
case TK_TYP :
|
|
bOk = ::FromString( sVal, m_nType) ;
|
|
break ;
|
|
case TK_UUID :
|
|
bOk = ::FromString( sVal, m_Uuid) ;
|
|
break ;
|
|
default :
|
|
bOk = false ;
|
|
break ;
|
|
}
|
|
return bOk ;
|
|
}
|
|
|
|
//----------------------------------------------------------------------------
|
|
string
|
|
ToolData::ToString( int nInd) const
|
|
{
|
|
switch ( nInd) {
|
|
case TK_COR : return ( sToolKey[TK_COR] + "=" + ::ToString( m_nCorr)) ;
|
|
case TK_CRAD : return ( sToolKey[TK_CRAD] + "=" + ::ToString( m_dCornRad)) ;
|
|
case TK_D : return ( sToolKey[TK_D] + "=" + ::ToString( m_dDiam)) ;
|
|
case TK_DRAW : return ( sToolKey[TK_DRAW] + "=" + m_sDraw) ;
|
|
case TK_DT : return ( sToolKey[TK_DT] + "=" + ::ToString( m_dTDiam)) ;
|
|
case TK_EXI : return ( sToolKey[TK_EXI] + "=" + ::ToString( m_nExit)) ;
|
|
case TK_F : return ( sToolKey[TK_F] + "=" + ::ToString( m_dFeed)) ;
|
|
case TK_FE : return ( sToolKey[TK_FE] + "=" + ::ToString( m_dEndFeed)) ;
|
|
case TK_FS : return ( sToolKey[TK_FS] + "=" + ::ToString( m_dStartFeed)) ;
|
|
case TK_FT : return ( sToolKey[TK_FT] + "=" + ::ToString( m_dTipFeed)) ;
|
|
case TK_HEA : return ( sToolKey[TK_HEA] + "=" + m_sHead) ;
|
|
case TK_L : return ( sToolKey[TK_L] + "=" + ::ToString( m_dLen)) ;
|
|
case TK_LT : return ( sToolKey[TK_LT] + "=" + ::ToString( m_dTLen)) ;
|
|
case TK_MM : return ( sToolKey[TK_MM] + "=" + ::ToString( m_dMaxMat)) ;
|
|
case TK_NAME : return ( sToolKey[TK_NAME] + "=" + m_sName) ;
|
|
case TK_NS : return ( sToolKey[TK_NS] + "=" + m_sSysNotes) ;
|
|
case TK_NU : return ( sToolKey[TK_NU] + "=" + m_sUserNotes) ;
|
|
case TK_OL : return ( sToolKey[TK_OL] + "=" + ::ToString( m_dOffsL)) ;
|
|
case TK_OR : return ( sToolKey[TK_OR] + "=" + ::ToString( m_dOffsR)) ;
|
|
case TK_S : return ( sToolKey[TK_S] + "=" + ::ToString( m_dSpeed)) ;
|
|
case TK_SANG : return ( sToolKey[TK_SANG] + "=" + ::ToString( m_dSideAng)) ;
|
|
case TK_SM : return ( sToolKey[TK_SM] + "=" + ::ToString( m_dMaxSpeed)) ;
|
|
case TK_SUP : return ( sToolKey[TK_SUP] + "=" + m_sTcPos) ;
|
|
case TK_TH : return ( sToolKey[TK_TH] + "=" + ::ToString( m_dThick)) ;
|
|
case TK_TYP : return ( sToolKey[TK_TYP] + "=" + ::ToString( m_nType)) ;
|
|
case TK_UUID : return ( sToolKey[TK_UUID] + "=" + ::ToString( m_Uuid)) ;
|
|
default : return "" ;
|
|
}
|
|
}
|