Как передавать информацию между различными объектами из одного класса и других классов в качестве событий в C#
Я рисую топологию а, где каждый узел является объектом класса SensorNode, синие ссылки указывают на связи между каждым узлом и его соседями, где круги вокруг узлов представляют дальность передачи для каждого узла. Раковина также является объектом класса раковина. Мне нужно создать экземпляр обмена сообщениями и связи между ними, но я понятия не имею, какие механизмы я должен использовать для выполнения передачи сообщений между этими объектами (сенсорными узлами), где каждый узел имеет свой уникальный идентификатор, приемник имеет фиксированный идентификатор, который равен 1 в моем коде, потому что я использую только один приемник.
Ниже приведены классы, в которых я все еще застрял на том, как реализовать send receive и forward с точки зрения того, чтобы сделать эту связь применимой между этими различными объектами...
1-Класс "Сенсорнод"
class SensorNode { public int snID; public string snName; public int snDepth; public DateTime schedulingTime; public double holdingTime; public double energy; public List<int> queue11 = new List<int>(); public List<DateTime> queue12 = new List<DateTime>(); public List<Packet> queue21 = new List<Packet>(); public List<DateTime> queue22 = new List<DateTime>(); public SensorNode(int id,string name,int depth, double energy) { this.snID = id; this.snName = name; this.snDepth = depth; this.energy = energy; } public void insertHistoryQueue(int packetID, DateTime receivingTime) { queue11.Add(packetID); queue12.Add(receivingTime); } public void insertPriorityQueue(Packet packet, DateTime schedulingTime) { queue21.Add(packet); queue22.Add(schedulingTime); } public DateTime schedulingTimeCalculations(double holdingTime, DateTime systemTime) { schedulingTime = DateTime.FromOADate(holdingTime).Date + systemTime.TimeOfDay; return schedulingTime; } public double holdingTimeCalculations(double alpha, double depth, double beta) { holdingTime = alpha * depth + beta; return holdingTime; } public void receive(Packet packet) { } public void forward(Packet packet, int neighborID) { } public void remove() { } public void sendDirect(int rxID, Packet packet) { } }
2-Класс "Раковина"
class Sink { public string name; public int sinkID; public int sinkX; public int sinkY; public List<Packet> queue1 = new List<Packet>(); public List<DateTime> queue2 = new List<DateTime>(); public Sink(string name, int Id , int xLocation, int yLocation) { this.name = name; this.sinkID = Id; this.sinkX = xLocation; this.sinkY = yLocation; } public void insert(Packet packet, DateTime receivingTime) { queue1.Add(packet); queue2.Add(receivingTime); } }
Любая идея, мне нужны ваши предложения и ваша помощь, так как я не знаю, как передавать информацию между этими объектами (сенсорными узлами) и между сенсорными узлами и раковиной. Что такое библиотека, которая отвечает за это приложение в C#?
Что я уже пробовал:
Для начала связи между узлами (событиями)
[no name]
Вам нужно исследовать события и делегатов.