Mobile Adhoc NETwork - networking

How to create a Mobile Adhoc NETwork using bluetooth for transmission and j2me for programming? Where should I start?

You can start by first choosing an API for Bluetooth like Bluecove etc. Google the available APIs that support java and you can choose any one you find better for you. I have personally worked on Bluecove. But i have never created an Adhoc network. I think you need to create a PAN (personal area network) via bluetooth. Please elaborate how you want to use your ad-hoc network so can tell you something more about it.

Related

How do I program this BLE location tag?

I bought one of these:
https://www.aliexpress.com/item/Smart-finder-Key-finder-Wireless-Bluetooth-Tracker-Anti-lost-alarm-Smart-Tag-Child-Bag-Pet-GPS/32806261079.html
As far as I can tell it is a BLE (Bluetooth Low Energy) location tag.
I downloaded the app for it onto my iphone, and the app instantly recognised it and connected to it. The iPhone app seems to know how far away the tag is - it has a little map of the local area and says how many feet away. I was able to set the device name via the app, but I'm not sure if that set it locally or on the tag itself. The iPhone app also has a "find" button - when you press it, the tag beeps.
So I want to know how I can program this thing myself. I want to be able to identify it when it is nearby, connect to it and make it beep. I've searched for quite a while but not come up with much.
I'm assuming (wrongly/rightly?) that there is some general standard or approach for talking to these BLE location devices and carrying out the basic functions with them - but what is that standard - where is the documentation?
Does anyone have any idea how to program these BLE location tag devices?
BLE devices typically communicate using GATT, either using standard GATT services, or custom ones. The command to make it beep is probably implemented using a custom GATT service.
For finding out the distance to the beacon, typically the RSSI is used. This is a measure of the received power. It needs to be compared to the output power at the emitter. Usually beacons will put their output power in advertisement data, so it can be used without connecting to them. Here since the app is also able to send commands to the beacon, chances are it keeps a connection to it and has a custom GATT protocol to retrieve the output power.
Here is what I would suggest:
Read up on BLE, especially advertising and GATT. For instance read this for advertising and this for GATT. The full BLE spec is available here but should be used for reference and not introduction
Sniff the communication between your device and your phone. You can see this other answer of mine to get started
Replicate the communication protocol in you own app. For that you'll need to use your target platform's BLE libraries. For instance for iOS it is CoreBluetooth

API to access GSM signal on computer

Hope this is the right place to ask - assuming so as it is related to programming.
I am looking for some hardware (say a dongle) that would open up an API for my computer to a SIM card. Does that exist anywhere?
The idea would be that I can then use my existing SIM card on its existing network/contract and with a bit of code, send/receive calls and texts. I figured that if a phone can be programmed to do it why can't a computer? I just need the hardware.
Any suggestions if this kind of thing is possible? Even by maybe integrating a phone?
You can use AT commands with any modem or phone, whose driver exposes a modem port when you connect it to a computer. Plug in the phone or modem, and go to Windows Device Manager, and look under "Modems" and see what you've got. From "properties" of the Modem, you can see which COM port it is on.
AT commands are an older method of communicating with a modem. There is a standard set of commands for GSM/GPRS/3G/4G devices available from 3GPP.org, here. Manufacturers add their own proprietary commands for more obscure functions. Many but not all of these are in the public domain.
Some newer plug-in modems may appear as a network adapter (you can see this in Windows), due to their drivers. In this case, you can use the following interfaces:
on Vista: NDIS, proprietary interfaces
on Windows 7 and 8.x Desktop apps: Windows Mobile Broadband API
on Windows 8.x, in the Metro/app area: Windows.Networking and MobileBroadband APIs.
on Windows 10, UWP, there are UWP APIs here. But they do not give as much functionality as the Desktop APIs.
On Windows 8.1 and Windows 10, if the appropriate drives are present it is possible to use the new MBIM interface via the desktop Mobile Broadband DeviceServices API. Mobile Broadband Interface Model spec available here.
On Linux, use AT commands via the serial port.
I'm a bit puzzled by your requirement to make (voice?) calls via a phone connected to a computer. Do you mean Skype? In this case, of course, you wouldn't need any interface for making calls, you would just open an IP connection over a data session - which can be done via any of the above interfaces.
(added this comment as an answer, as there was more information)
I use this GSM device: http://www.mikroe.com/click/gsm2/ connected to a basic UART like: https://www.sparkfun.com/products/718?gclid=CIj1xOzbur4CFUVbfgodCpQASQ
Then use AT COMMANDS.
I also use a piece of software called QNavigator to inspect the modem/gsm: http://www.soselectronic.com/?str=1329

Develop client library for MQTT in C

I want to develop a c client library for MQTT, to make my PIC 8 bit micro-controller to talk to an MQTT broker( say Active MQ). I am relatively new to this field. Can anyone suggest where can i start . I need to implement just CONNECT, SUBSCRIBE,UNSUBSCRIBE, PUBLISH nad DISCONNECT API's to start with.
Thanks in advance
You need to get ethernet working first, then just implement the protocol... :)
A good place to look would be the arduino client (http://knolleary.net/arduino-client-for-mqtt/) that should have solved a lot of what you need to do.
Good luck!
I'm really not sure a AMQP client would be able to run on a limited system like the AVR (but a great system tough).
You will need at least the following:
- The TCP/IP stack;
- Enough memory to hold some frames (4096 bytes or maybe smaller but not often);
If you think the arduino will handle all this, I would start from the rabbitmq-c library and strip it down.
Other option, and if the rabbitmq-c isn't small enough, and your goals are just to publish messages, take a look at STOMP and how to combine it with RabbitMQ or other AMQP. Stomp has a very small footprint and will, probably, be the best shot to give.
Cheers,
You can use XSockets.NET since you can connect any device with TCP/IP to XSockets and then talk to other devices.
It will basically work like this.
Setup a XSockets server somewhere (localhost to start with)
Connect from the Arduino to XSockets
Use XSockets publish/subscribe pattern do send/receive data between arduino and any other device connected to XSockets
Simple vide demo here: Arduino pub/sub with XSockets
If you want to mix in any other tech do it from XSockets since that wil be easier than writing stuff on the Arduino.
EDIT: Just saw that you did not say Arduino... 8-bit PIC micro-controller might be another story :) I have just connected Arduino and Netduino

Lightweight network visualization tool

I've been trying to find a tool for monitoring my home network. Before I go into the details, I've looked at a ton of different software and they're either an overkill or don't have what I'm looking for. Hopefully the community can help me with some advice.
My network is quite small. It consists of a modem connected to a D-Link DI-524 router. To this router I have a number of computers hooked up wirelessly.
What I'm looking for is a lightweight tool for monitoring my traffic. The ideal tool would have a GUI that shows an icon of the router, and icons of all devices connected to the router with a bandwidth indicator on the lines connecting the nodes. That's pretty much it.
I'm not sure if my router has SNMP. This might be a dealbreaker since many of the cheaper routers don't. I've also read somewhere that many routers can be monitored over UDP.
Found tnv after quick googling.
tnv (The Network Visualizer or
Time-based Network Visualizer) depicts
network traffic by visualizing packets
and links between local and remote
hosts.
Here is a list of good tools to monitor network activity.
Looks like MRTG was the best tool to use
I have also been pleased with the Serial and USB software provided by HHD Software. I've never used their Network version, but if its as good as the USB and Serial, its probably pretty good. Here is the free trial version.
you can use CACTI and Mikrotik DUDE.

Windows networking using only Ethernet Frames

I'm doing a project where I must write a network library for a device connected to a Windows machine. The complication comes in that I may only communicate with the device using ethernet frames. So there is no TCP/UDP/IP at all. I don't think the bind/listen/accept approach can be applied here, but maybe I am wrong. Also, there is no routing or switching involved.
I have a few questions. How do I use a socket to communicate with this device? Does winsock have any support for just frames? I haven't been able to find many resources on this. Does anyone have any ideas about how I should proceed?
Is using sockets even a good idea or can I just send out the information with the appropriate headers?
Use WinPCap, it has an an API to send and listen to raw data.
You can build your communicate layer with it.
Give the WinAoE code a look-see - it says it lets Windows talk to ATA over Ethernet devices which means it has to communicate without any of the upper layers of the network stack.
Edited:
As near as I can tell, if you want to send raw ethernet frames, you want NdisSend and friends.
As well as winpcap and NDIS you could also look at raw sockets which are a standard part of the Windows API and don't require you to write driver code http://msdn.microsoft.com/en-us/library/ms740548(v=vs.85).aspx.

Resources