Gimme the full python code to simulate the following lab activity. (gimme the code not description)

The purpose of this lab is to simulate the operation of a portion of an Industrial Internet of
Things (IIoT), that is modeled as a queuing system, and investigate its performance under
variable configurations, to understand how different scenario configurations and network
parameter settings may affect the system behavior and performance.
Consider the Industry 4.0 scenario depicted in Fig. 1. Each machinery component of the
production line is equipped with a set of sensors and actuators, that build up an IIoT system.
In particular, a number of sensor devices collect real time monitoring data at the edge of the
network, to collect several types of information about the status and the operation of the
various production line components. These data can be used, either directly or after some
processing, to take decisions and perform specific actions on the production line by means of
actuators, in order to manage the system operation, modulate the production system speed,
prevent or tackle service interruptions, etc.
More in details, data collected by the sensors are sent to a local Micro Data Center (arrow 1),
that provides computational capacity close to edge of IIoT network by means of edge nodes,
which are managed by an edge controller. edge nodes pre-process data (arrow 2), so that
most requests can be fulfilled locally, whereas only computationally intensive requests are
forwarded to a Cloud data center (arrow 3), thus saving bandwidth and energy. Finally, based
on the data processing output, operative commands are generated and sent to the actuators
(dashed arrows). In case all the edge nodes are busy, incoming data can be buffered, if a
buffer is present. However, if the buffer is full or it is not envisioned at all, data packets are
directly forwarded to the Cloud Data Center to perform the entire processing tasks (arrow
4).
1In the considered queuing system, the customers represent the IIoT data packets that arrive
at that Micro Data Center. The service represents the local processing of the data by edge
nodes before generating the actuation message packets or before forwarding data to the
Cloud for further computational processing. Finally, the waiting line represents the buffer
where packets are stored before performing the computational tasks. Packets that are sent to
the Cloud are further processed by Cloud server(s) before generating the actuation message
packets that are sent to the actuators. In this case the service is represented by the data
processing carried out by the Cloud server(s). Even in the Cloud a buffer may be envisioned.
Two types of data can be generated by the sensor nodes and sent to the Micro Data Center,
Figure 1: IoT system in an Industry 4.0 scenario.
each corresponding to a different class of task that can be performed by the actuators:
Class A - High priority tasks: these tasks are delay sensitive, hence implying high
priority operations that must be performed on the production line within a strict time
deadline. The packets generated by the sensors that are related to high priority tasks (type
A packets) typically require a simple processing, that can be locally performed by the edge
nodes.
Class B - Low priority tasks: these tasks require more complex computational operations, however the completion of these tasks is not constrained by strict time deadlines, hence
resulting in delay tolerant tasks that can be performed in a longer time period. Due to the
need for more complex computational operations, this type of packets (type B packets), after
a local pre-processing at the Micro Data Center level, must be forwarded to the Cloud Data
Center to complete the processing.
23
Denote f the fraction of packets of type B, i.e. the low priority data packets arriving
at the Micro Data Center from the sensors that must be further forwarded to the Cloud
Data Center after local pre-processing by the edge node(s), due to more complex required
computational tasks. In this case, assume a reasonably increased average service time on
the Cloud server(s). Note that, although the required tasks are more complex, the Cloud
Servers are likely to be better performing than the edge nodes.
Furthermore, when data cannot be locally pre-processed due to busy edge nodes and full
buffer, any incoming data (either of type A or B) are forwarded to the Cloud without any
local pre-processing. Since these forwarded data are fully processed in the Cloud, they experience an average service time that reflect the fact that both the simple pre-processing tasks
(for type A and type B data) and the more complex computational tasks (only for type B
data) are performed in the Cloud Data center itself.
You can include the propagation delay in your analysis, assuming a reasonable additional
delay due to the data transmission from the Micro Data Center to the Cloud Data Center
and for the transmission of the commands from Cloud Data Center to the actuators. The
other propagation delays can be neglected.