Patch correctif TP2

This commit is contained in:
2025-10-20 14:07:37 +02:00
parent e2d1a2da34
commit 06b1f2df82
23 changed files with 1610 additions and 455 deletions

View File

@@ -84,7 +84,8 @@ ProductionOrder::ProductionOrder(uint8_t *buffer, std::size_t size)
_is_finish = _buffer[INDEX_POSITION] + 1 >= _buffer[OPERATION_NUMBER_POSITION];
}
ProductionOrder::ProductionOrder(uint16_t ID, uint16_t product_ID, const Program &program) : _is_finish(false) {
ProductionOrder::ProductionOrder(uint16_t ID, uint16_t parent_ID, uint32_t due_date, uint16_t product_ID,
const Program &program) : _is_finish(false) {
Reference reference{0, 0};
std::size_t operation_number = 0;
@@ -108,6 +109,16 @@ ProductionOrder::ProductionOrder(uint16_t ID, uint16_t product_ID, const Program
_buffer[reference._byte_index++] = (uint8_t) (ID >> 8);
_buffer[reference._byte_index++] = (uint8_t) (ID & 0xFF);
// parent ID
_buffer[reference._byte_index++] = (uint8_t) (parent_ID >> 8);
_buffer[reference._byte_index++] = (uint8_t) (parent_ID & 0xFF);
// due date
_buffer[reference._byte_index++] = (uint8_t) (due_date >> 24);
_buffer[reference._byte_index++] = (uint8_t) ((due_date >> 16) & 0xFF);
_buffer[reference._byte_index++] = (uint8_t) ((due_date >> 8) & 0xFF);
_buffer[reference._byte_index++] = (uint8_t) (due_date & 0xFF);
// product ID
_buffer[reference._byte_index++] = (uint8_t) (product_ID >> 8);
_buffer[reference._byte_index++] = (uint8_t) (product_ID & 0xFF);
@@ -199,8 +210,14 @@ std::unique_ptr<Operation> ProductionOrder::previous_operation() const {
std::string ProductionOrder::to_string() const {
std::string str = "[ ";
uint16_t ID = (_buffer[ID_POSITION] << 8) + _buffer[ID_POSITION + 1];
uint16_t parentID = (_buffer[PARENT_ID_POSITION] << 8) + _buffer[PARENT_ID_POSITION + 1];
str += std::to_string(ID) + " ][ ";
str += std::to_string(ID);
if (ID != parentID) {
str += + "/" + std::to_string(parentID) +" ][ ";
}
str += " ][ ";
for (uint8_t i = 0; i < _buffer[OPERATION_NUMBER_POSITION]; ++i) {
if (_buffer[INDEX_POSITION] == i) {
str += "<";