EgtMachKernel 1.6j5 :
- aggiunta gestione versione del DB utensili - aggiunti 3 parametri agli utensili (coolant, maxAbsorption, minfeed).
This commit is contained in:
+28
-8
@@ -7,7 +7,8 @@
|
||||
//
|
||||
//
|
||||
// Modifiche : 01.06.15 DS Creazione modulo.
|
||||
//
|
||||
// 21.10.15 DS Aggiunti VERSION e TOOLSIZE in HEADER (default VERSION = 1000 e TOOLSIZE = 26).
|
||||
// Ora VERSION = 1001 e TOOLSIZE = 29.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -27,7 +28,10 @@ using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
const string TF_HEADER = "[HEADER]" ;
|
||||
const string TF_VERSION = "VERSION" ;
|
||||
const string TF_TOOLSIZE = "TOOLSIZE" ;
|
||||
const string TF_TOTAL = "TOTAL" ;
|
||||
const int TF_CURR_VER = 1001 ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
ToolsMgr::ToolsMgr( void)
|
||||
@@ -75,12 +79,18 @@ ToolsMgr::Load( const string& sToolsFile)
|
||||
bool bEnd = false ;
|
||||
|
||||
// leggo l'intestazione
|
||||
int nVersion = 0 ;
|
||||
int nToolSize = 0 ;
|
||||
int nTotal = 0 ;
|
||||
if ( ! LoadHeader( TheScanner, nTotal, bEnd)) {
|
||||
if ( ! LoadHeader( TheScanner, nVersion, nToolSize, nTotal, bEnd)) {
|
||||
bOk = false ;
|
||||
string sOut = "LoadTools : Error on Header" ;
|
||||
LOG_ERROR( GetEMkLogger(), sOut.c_str())
|
||||
}
|
||||
{
|
||||
string sOut = "LoadTools : FileVer = " + ToString( nVersion) + " CurrVer = " + ToString( TF_CURR_VER) ;
|
||||
LOG_INFO( GetEMkLogger(), sOut.c_str())
|
||||
}
|
||||
|
||||
// dimensiono maps
|
||||
const int MIN_BUCKETS = 53 ;
|
||||
@@ -88,7 +98,7 @@ ToolsMgr::Load( const string& sToolsFile)
|
||||
|
||||
// ciclo di lettura degli utensili
|
||||
do {
|
||||
if ( ! LoadOneTool( TheScanner, bEnd)) {
|
||||
if ( ! LoadOneTool( TheScanner, nToolSize, bEnd)) {
|
||||
bOk = false ;
|
||||
string sOut = "LoadTools : Error on line " + ToString( TheScanner.GetCurrLineNbr()) ;
|
||||
LOG_ERROR( GetEMkLogger(), sOut.c_str())
|
||||
@@ -109,7 +119,7 @@ ToolsMgr::Load( const string& sToolsFile)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd)
|
||||
ToolsMgr::LoadHeader( Scanner& TheScanner, int& nVersion, int& nToolSize, int& nTotal, bool& bEnd)
|
||||
{
|
||||
// leggo la prossima linea
|
||||
string sLine ;
|
||||
@@ -124,6 +134,8 @@ ToolsMgr::LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd)
|
||||
bool bOk = true ;
|
||||
// leggo le linee successive
|
||||
bEnd = true ;
|
||||
nVersion = 1000 ;
|
||||
nToolSize = 26 ;
|
||||
nTotal = 0 ;
|
||||
while ( bOk && TheScanner.GetLine( sLine)) {
|
||||
// se utensile successivo
|
||||
@@ -136,7 +148,11 @@ ToolsMgr::LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd)
|
||||
string sKey, sVal ;
|
||||
SplitFirst( sLine, "=", sKey, sVal) ;
|
||||
// riconosco la chiave
|
||||
if ( ToUpper( sKey) == TF_TOTAL)
|
||||
if ( ToUpper( sKey) == TF_VERSION)
|
||||
bOk = FromString( sVal, nVersion) ;
|
||||
else if ( ToUpper( sKey) == TF_TOOLSIZE)
|
||||
bOk = FromString( sVal, nToolSize) ;
|
||||
else if ( ToUpper( sKey) == TF_TOTAL)
|
||||
bOk = FromString( sVal, nTotal) ;
|
||||
else
|
||||
bOk = false ;
|
||||
@@ -146,7 +162,7 @@ ToolsMgr::LoadHeader( Scanner& TheScanner, int& nTotal, bool& bEnd)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::LoadOneTool( Scanner& TheScanner, bool& bEnd)
|
||||
ToolsMgr::LoadOneTool( Scanner& TheScanner, int nToolSize, bool& bEnd)
|
||||
{
|
||||
ToolData tData ;
|
||||
// leggo la prossima linea
|
||||
@@ -166,7 +182,7 @@ ToolsMgr::LoadOneTool( Scanner& TheScanner, bool& bEnd)
|
||||
bEnd = true ;
|
||||
const int DIM_BS = 64 ;
|
||||
bitset<DIM_BS> Flag ;
|
||||
assert( tData.GetSize() <= DIM_BS) ;
|
||||
assert( nToolSize <= DIM_BS) ;
|
||||
while ( bOk && TheScanner.GetLine( sLine)) {
|
||||
// se utensile successivo
|
||||
if ( sLine.front() == '[' && sLine.back() == ']') {
|
||||
@@ -182,7 +198,7 @@ ToolsMgr::LoadOneTool( Scanner& TheScanner, bool& bEnd)
|
||||
Flag.set( nKey) ;
|
||||
}
|
||||
// verifico di aver letto tutti i campi
|
||||
bOk = bOk && ( Flag.count() == tData.GetSize()) ;
|
||||
bOk = bOk && ( Flag.count() == nToolSize) ;
|
||||
// salvo i dati dell'utensile
|
||||
bOk = bOk && m_utData.emplace( tData.m_Uuid, tData).second ;
|
||||
bOk = bOk && m_suData.emplace( tData.m_sName, tData.m_Uuid).second ;
|
||||
@@ -255,6 +271,10 @@ ToolsMgr::SaveHeader( Writer& TheWriter) const
|
||||
string sOut ;
|
||||
sOut = TF_HEADER ;
|
||||
bOk = bOk && TheWriter.OutText( sOut) ;
|
||||
sOut = TF_VERSION + "=" + ToString( TF_CURR_VER) ;
|
||||
bOk = bOk && TheWriter.OutText( sOut) ;
|
||||
sOut = TF_TOOLSIZE + "=" + ToString( ToolData::GetSize()) ;
|
||||
bOk = bOk && TheWriter.OutText( sOut) ;
|
||||
sOut = TF_TOTAL + "=" + ToString( int( m_utData.size())) ;
|
||||
bOk = bOk && TheWriter.OutText( sOut) ;
|
||||
return bOk ;
|
||||
|
||||
Reference in New Issue
Block a user