EgtMachKernel 1.6f1 :
- aggiunta gestione DB utensili - aggiunta gestione DB lavorazioni.
This commit is contained in:
+231
@@ -0,0 +1,231 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// 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 "" ;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user