EgtMachKernel 1.6j3 :

- aggiunta gestione DB utensili
- migliorata simulazione
- aggiunta impostazione macchina corrente anche senza macchinata.
This commit is contained in:
Dario Sassi
2015-10-27 10:12:13 +00:00
parent 2de785c6ce
commit 2c89d112fa
32 changed files with 904 additions and 237 deletions
+77
View File
@@ -15,6 +15,7 @@
#include "stdafx.h"
#include "ToolsMgr.h"
#include "DllMain.h"
#include "/EgtDEv/Include/EmkToolConst.h"
#include "/EgtDEv/Include/EGnStringUtils.h"
#include "/EgtDEv/Include/EGnFileUtils.h"
#include "/EgtDEv/Include/EGnScanner.h"
@@ -260,6 +261,82 @@ ToolsMgr::SaveOneTool( const EgtUUID& Uuid, Writer& TheWriter) const
return bOk ;
}
//----------------------------------------------------------------------------
bool
ToolsMgr::AddTool( const string& sName, int nType)
{
// verifico unicità del nome
if ( m_suData.find( sName) != m_suData.end())
return false ;
// verifico validità del tipo
if ( ! IsValidToolType( nType))
return false ;
// definisco un utensile con valori di default
ToolData tData ;
tData.m_sName = sName ;
tData.m_nType = nType ;
CreateEgtUUID( tData.m_Uuid) ;
// salvo i dati dell'utensile
return ( m_utData.emplace( tData.m_Uuid, tData).second &&
m_suData.emplace( tData.m_sName, tData.m_Uuid).second) ;
}
//----------------------------------------------------------------------------
bool
ToolsMgr::CopyTool( const std::string& sSource, const std::string& sName)
{
// verifico unicità del nome
if ( m_suData.find( sName) != m_suData.end())
return false ;
// recupero l'utensile sorgente
const ToolData* pTdata = GetTool( sSource) ;
if ( pTdata == nullptr)
return false ;
// ne faccio una copia
ToolData tData = *pTdata ;
// modifico nome e UUID
tData.m_sName = sName ;
CreateEgtUUID( tData.m_Uuid) ;
// salvo i dati del nuovo utensile
return ( m_utData.emplace( tData.m_Uuid, tData).second &&
m_suData.emplace( tData.m_sName, tData.m_Uuid).second) ;
}
//----------------------------------------------------------------------------
bool
ToolsMgr::RemoveTool( const string& sName)
{
// cerco l'utensile nell'elenco dei nomi
auto iNameIter = m_suData.find( sName) ;
if ( iNameIter == m_suData.end())
return true ;
// rimuovo l'utensile dal dizionario degli UUID
m_utData.erase( iNameIter->second) ;
// rimuovo l'utensile dall'elenco dei nomi
m_suData.erase( iNameIter) ;
return true ;
}
//----------------------------------------------------------------------------
ToolData*
ToolsMgr::GetTool( const EgtUUID& Uuid)
{
auto iIter = m_utData.find( Uuid) ;
if ( iIter == m_utData.end())
return nullptr ;
return &( iIter->second) ;
}
//----------------------------------------------------------------------------
ToolData*
ToolsMgr::GetTool( const string& sName)
{
auto iIter = m_suData.find( sName) ;
if ( iIter == m_suData.end())
return nullptr ;
return GetTool( iIter->second) ;
}
//----------------------------------------------------------------------------
const ToolData*
ToolsMgr::GetTool( const EgtUUID& Uuid) const