EgtMachKernel 1.6j3 :
- aggiunta gestione DB utensili - migliorata simulazione - aggiunta impostazione macchina corrente anche senza macchinata.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user