How to implement multiple channels in wifi module of ns3 - ns-3

My objective is to create multiple link/channels to connect with different wifi nodes surrounding it. In the example "wifi-simple-adhoc-grid", only one channel per wifi node is created. How can I extend this to multiple channels?

There are two options:
install multiple NetDevices. This configuration is known as
multi-radio scenario.
have a look at the WAVE module that has
support for multi-channel, implementing the IEEE 1609.4. This
installs single radio with multi-channel.

Related

PDO Linking in CANopen

In the CANopen Network, all devices (clients, formally "slaves") communicate with a central controller (master). Therefore, no slaves listen to the process data objects (PDOs) and therefore to the CAN identifiers of another slave. Using PDO Linking, PDOs can be exchanged directly without a master. Therefore, the CAN identifiers have to be adjusted accordingly.
Even if there are many sources concerning PDO Linking on the internet, I did not find any specific examples (e.g. schematic linking of 2 client devices). Can you recommend any resources for PDO Linking (book, articles, websites, ...)?
Sources: Beckhoff Information System
The topic of PDO linking is discussed in a couple of websites, however only at a very abstract level. Useful resources for understanding the theory are:
CANopen Solutions: PDO services
Micro Control: Identifier Usage in CANopen Networks
embedded-communication: CANopen PDO Linking (German)
Beckhoff Information System: Process Data Objects (PDO)
Emotas: Process DataLinker
Vogel: Optimierung der PDO-Kommunikation in CANopen-Netzwerken (German)
I would be thankful for your recommendations concerning hands-on examples!
Just looking at your source:
you need to adapt TPDO of Device 1 and RPDO of Device 2 accordingly.
You should be sure that COB-ID of TPDO shall be same as COB-ID of RPDO.
You should also be sure that you map the data properly.
In such a case Device 2 will be able to receive data directly from Device 1

Is Multihop possible with LoRa?

I have a question regarding how to enable Multihop in LoRa (that is to communicate between two end devices without the LoRaWAN gateway). I have tried doing it using transparent bridging but it won't work.
Although it works with LoRaBlink the issue is flooding. If the number of devices increases the channel utilization as well as the performance goes down rapidly.
Can someone please suggest if there is any other way to do it or how to do it efficiently through LoRaBlink?
Thanks
If you check the wiki of Radiohead library, you will find RHRouter and RHMesh under topic Managers with the following description:
RHRouter Multi-hop delivery of RHReliableDatagrams from source node to destination node via 0 or more intermediate nodes, with manual, pre-programmed routing.
RHMesh Multi-hop delivery of RHReliableDatagrams with automatic route discovery and rediscovery.
There are raw LoRa libraries for a mesh network. It's implemented on the Pycom devices, and the library for it is called PyMesh. The technology is based on Thread by Thread groop.

iot edge best practise

We have around 9000 devices in field.
This devices are at groups of 1-100 at customers on prem.
The devices are not capable of azure-iot-sdk integration.
The devices have a webservice API.
The devices should appear as first-class devices in azure.
We like the iot edge module provisiong feature.
We want to evaluate if modules could gather data from the devices and send them to IoTHub for further processing.
We found this feature overview of IoTEdge: https://learn.microsoft.com/de-de/azure/iot-edge/iot-edge-as-gateway
Pattern Transparent and Protocol translation are out of scope due to above facts. Pattern Identity translation seems to fit.
We want a 1 to 1 relationship between module and real device.
Therefor we assume the following POC with the hope of clarification and best practise:
we implement a iot edge module (azure-iot-sdk-java)
we open module connection to iotedge and suscribe to desired properties
the module identity gets as desired property the ip of the real device and the azure device identitiy connection string.
we open device connection to iotedge by adding GatewayHostName to the device connection string as described here https://learn.microsoft.com/de-de/azure/iot-edge/iot-edge-as-gateway
we request data from the real device and send them via azure device identity.
This somewho mixes up two patterns and seems kind of odd to us.
Can you point out best practises and risks with this approach?
Yes, I agree with that Pattern Identity translation could fit your scenario.
There are three patterns for using an IoT Edge device as a gateway: transparent, protocol translation, and identity translation, you can refer to this link to get more introduction about these three pattern.

NFV/SDN in cloudstack

I am new with the NFV+SDN technologies. I have downloaded the OpenDayLight and cloudstack. I have mininet network as underlying physical topology. I want to set up a multi cloud that must contain cloudstack and another IAAS technology, and finally manage the interconnection of resources created on these clouds. I already integrated opendaylight with cloudstack but still don't have a clear image on how to start.
My confusions are:
which technology can guide me to realize a multi-cloud, NFV or SDN? Also is the opendaylight the solution for this? Or there are other frameworks or projects that can help me better.
I shall be grateful to you for any information that could get me started on this project.
It depends on what you want to achieve.
OpenDayLight already supports inter-domain routing through BGP, hence having two OpenDayLight talking to each other through BGP will allow you to get L3 (IP based) traffic back-n-forth which is going to be sufficient to interconnect L3-as-a-Service tenants between the two cloud systems.
BGP (as it is today in ODL) will not cut it for L2-as-a-Service or complex multi-cloud deployments. To achieve connectivity across cloud-domains for L2aaS / Complex-tenants, you will need to
Control Plane: An extension to East-West signaling between SDNc of each cloud to handle L2aaS service requirements (OpenDayLight supports multiple options here)
Data Plane:
A cloud fabric that can carry L2aaS (you don't want to lose the L2aaS identifiers when you move from one domain to the other domain).
An anchor node (ex. DC-GW) to get SDNc to configure the data-plane L2 fabric cross-connects (through interfaces such as OVSDB, ML2 or other).
The above two bullets are not trivial work and don't expect them to be done without some customization. Not to mention that the DC-GW vendor compatibility with ODL (ML2 plugin capabilities) will define a lot of what can and can't be done.
Final point, there are a couple of companies building their SDN go-to-market around the above problem you are trying to fix (Cisco, Arista, Nokia, Ericsson ...etc.). Keep us posted with the progress you are making on that front; you may end up putting a foundation for a new framework in the industry.
I encountered such situation with one master student three years ago. She was trying to do intra-cloud computing work, where there are many resources from two or more providers needed to be managed or outsourced.
She was working on Open nebula.
To answer you on your specific questions, SDN is a network controller no more!
it responsible for installing the path in underlying switches so two hosts can communicate to each other.
NFV is responsible to manage network functions installed in the network. They could be integrated into SDN or only in a simple cloud computing Environment.
As you can see, there are nothing for both of them to help you inter connects two cloud computing environments. They only responsible to manage network component.
YOu can provide us more information about the requirements you are trying to implement.

How to switch between different Kinect V2 connected to single PC?

I have two Kinect V2, connected to two different USB 3.0 ports on a single PC. I know it is not possible to use both based on SDK V2 concurrently, and I know I should get access to the Kinect V2 using this method:
_sensor = KinectSensor.GetDefault();
However, it always returns back one of the sensors as default and it doesn't matter which USB 3.0 port I connect it.
First of all, is there any methods that we can get list of connected Kinect V2 connected to a single PC and turn on that one based on our preferences?
I want to use one of in each time frame, but need to switch between them.
There is a workaround, which is annoying, but seems to work:
You can enable/disable the USB-port/-controller each Kinect is connected to. Disable all ports but the one you need, and KinectSensor.GetDefault(); should give you the correct sensor.
You can do this manually in the device manager. But I'm sure there is also some way to do this automatically in code.
For more details see the thread Connection to multiple Kinect V2, NOT for synchronous acquisition on the Microsoft support forum.
It's possible to use both Kinects at the same time. I have developed an application that uses 2 Kinects, video and skeleton flows from both in the same time. It developed for sdk 1.8.
So, you can get all available ready devices like that:
KinectSensor.KinectSensors.Where(kinect => kinect.Status == KinectStatus.Connected)
Why do you need to switch between them? You may just activate the needed flow from both at one time. In the sdk it says that both Kinects can't work when they are directed to the same object. But it's working. If you want to switch between them like this:
stop flow from first
activate flow from second
goto p.1
It's bad variant because p. 1 and 2 can take about a second time. It's a very slowly.