Open janagoe opened 7 months ago
We should keep OptiMaFlow-neutral code separate, but not in the daisi/src
folder. Especially not once OptiMaFlow is extracted from DAISI. Maybe this should be added in a commons
or utils
folder at the top-level of the repository?
Currently, the folder structure of
daisi/src
anddaisi/src/cpps
is a bit all over the place.Application-neutral Folders
Some folders with "application-neutral" content such as the
datastructure
andmaterial_flow
are located in thedaisi/src
folder, because they could be used in many applications.However, they are currently only used inside the
cpps
. Should they stay located indaisi/src
, or be moved into thecpps
?Folders to be deleted
Inside the
daisi/src/cpps
, there are theto
,agv
, andnegotiation
folders which will be deleted with the big refactoring.The top level
message
folder probably too, because messages got separately reimplemented inside theamr
andlogical
folders.Amr, Physical, MaterialFlow and Logical Agent Structure
Now there is some confusion with the
amr
andlogical
folders inside thecpps
.We currently have the
AmrPhysicalAsset
,AmrLogicalAgent
, andMaterialFlowLogicalAgent
as the main entities.AmrPhysicalAsset
is in theamr
folder, andAmrLogicalAgent
andMaterialFlowLogicalAgent
inlogical
.I think this structure makes more sense than moving the
AmrLogicalAgent
to theamr
folder, because there is a lot of communication happening between theAmrLogicalAgent
andMaterialFlowLogicalAgent
. Therefore, the logic can be nicely separated from the rest of the code with thealgorithm_interface.h
, which both of them depend on. Additionally, the implemented algorithms will be extended a lot in the future.On the other hand, there is little communication between the
AmrPhysicalAsset
and theAmrLogicalAgent
, which will be extended in the future. Therefore, I don't think there is a problem in keeping them separate.The third option would be to create three folders, for each entity. But then the question is where to place the communication between the (
AmrPhysicalAsset
and theAmrLogicalAgent
) and (AmrLogicalAgent
and theMaterialFlowLogicalAgent
)?