Does client send disassociation to the first AP during roaming? - wifi

During WLAN roaming(Layer 2), when the client decides to roam from one AP to another AP with a better signal strength, does the client send a disassociation frame to the first AP?
If no, how does the first AP know whether the client has roamed or left the coverage area? Is it only through the communication between the two APs after the client has associated with the second AP?
When does the first AP decide to drop the frames buffered for the client?
Is disassociation used at all in the roam sequence?
Thanks in advance.

Related

trigger latching 3v relay with signal from HT12D

I am sending a signal from an HT12E through an rf transmitter to an rf receiver then an HT12D. This all works fine and the data signal from the HT12D is sent to a CZH-LABS D-1022A(for filling a pool). The pulse triggers the relay on the CHZ so that works ok.
What I want to do is take the same pulse/signal from the HT12D and send it through a 3vdc regulator (it is currently at 5vdc) and then through an EC2-3TNU latching relay.
The relay would then turn on power to an ESP12E, which would connect to the wifi and send a message to ThingSpeak that the original signal was received and the pool filling relay triggered.
The problem is that even though the signal from the HT12D reads 3vdc and it lights up an LED light when the signal is received, it doesn't trigger the latching relay.
I am attaching a schematic to show the wiring of my project.
To summarize:
The 5vdc (converted to 3vdc) signal from the HT12D will light up an LED but won't trigger a 3vdc latching relay EC2-3TNU.
I thought I may be the size of the smoothing capacitor after the center tap rectifier, but if I connect the ESP12E up to 3vdc and the activate the signal the LED still lights up but the latching relay won't engage.
I am flummoxed! Can anyone think of why the latching relay isn't activated by the 3vdc signal? Could it be I need a larger capacitor? The latching relay works because if I tap it with a 3vdc lead it triggers. This has nothing to do with code so I'm not providing any. Although once the ESP12E is activated, connects to the wifi and uploads to ThingSpeak, the ESP is coded to turn on an output pin to activate the latching relays reset pin turning off the ESP until the next signal input.
Any suggestions to solve this problem or a work around would be greatly appreciated.
I can't create tags and one for HT12D or HT12E would really be helpful.
I got this figured out. Just added a transistor, diode, and resistor.

ESP8266 creates AP without any code

I can't for the life of me figure out why my ESP8266s create WiFi access points.
I plug it in and send an empty sketch, and it creates an AP called "ESP_28F2F8" and here the ESP is at 192.168.4.1.
I do not want it to create a WiFi network. I just want it to connect to one.
Has anyone else run into this issue? Is this perhaps some weird OS?
That's normal operation of the underlying Espressif's SDK. It remembers some of the settings in flash, like the last created AP and last WiFi network connected.
You need to run
WiFi.softAPdisconnect(true);
so the ESP disconnects all clients currently connected to it, disables AP and remembers it to flash.
If you might also need to disable automatic connection to the last WiFi network, you need to call:
WiFi.setAutoConnect(false);

Multipeer Connectivity and data to send along the way

I am developing a platform game trying to make it as well for multiplayer using the IOS Multipeer connectivity. I am stuck/confused/do not know what is the best way to send messages between peers (mostly like 4 peers in the game). The game style is like fun run and I have 4 hero running and firing each other and stuff like that. The thing is that keeping the positions of the other players is pushing me crazy!!
Sometimes other players are positioned in the wrong position (keeping in mind all devices are with the same screen size). Is that because of the lag of connectivity. How much information I can send per seconds and what is the best way to manage data transferring?
Any idea/thoughts are appreciated.
The throughput of MPC depends mostly upon the connection. What I've seen as the biggest performance problem is when one of the peers has WiFi disabled. This forces MPC to communicate over bluetooth which is incredibly slow. I've seen it run 20x slower than MPC over Wifi.
You don't need to be connected to a WiFi network. Just enable WiFi on all of the devices and iOS will leverage shared WiFi networks or create its own adhoc network.
The second thing you want to ensure is that your peers don't invite each other. You can only have one inviter in your network. When multiple peers invite and accept connections the MPC network become unstable.
Third thing is sendData:(NSData *)data toPeers:(NSArray *)peerIDs withMode:(MCSessionSendDataMode)mode error:(NSError **)error. If you are broadcasting your packets to all peers in the toPeers: array AND mode is MCSessionSendDataReliable then MPC waits until all of the connected peers ACK the message before moving on to the next packet.
UPDATE: I did some testing with my own app and over WiFi and two devices I can put about 100kbps. I'm using an iPhone 6 Plus and an iPhone 5S.
UPDATE 2: Thinking more about your question, there are a couple things to keep in mind with MPC communications:
Do all of your sendData and didReceiveData calls on a background thread and have that thread update your position data in your model. Tell your viewController that updates are available with a delegate method or notification.
Keep your data packets small, but design them so an update received represents the current state of your player. This allows you to miss an update and not be completely out of sync -- "send player 1 moved to (10, 10)" instead of "player 1 moved by (1, -1)"
Number your packets and use MCSessionSendDataUnreliable. If you get a packet with an earlier number than the last one you processed, throw it away. If you follow the second guideline above, you won't need this packet.
If you follow Dan Loughney's suggestions, I think your best bet in debugging is to log the received coordinates from the other players. That should help you identify whether the problem is due to timing issues, misinterpreted data or something else.

Sending only one iBeacon Packet

Is it possible to send only 1 iBeacon packet? I have tried using CBPeripheralManager,but since there are only 2 method to start and stop advertising, so I can't control how many packet is being broadcast.
What I want to try to do is use an iBeacon packet as a command, instead of just a broadcasting some ID. So I could send 1 iBeacon packet, and if the receiver got the message, it can send back Acknowledgement with another iBeacon packet. The intention is to avoid the pairing of bluetooth to send very simple data. The information will be linked to UUID, major, and minor of the packet.
Or are there better ways to do this than using iBeacon.
Yes, you can use iBeacon technology to send information back and forth between two iOS devices without pairing. If you have two devices, Device A and Device B, you set both of them up to range for beacons with a common ProximityUUID, say, E2C56DB5-DFFB-48D2-B060-D0F5A71096E0. And then you can exchange information in the two byte major and minor fields.
What you can't do is control the transmitter enough to send only a single iBeacon advertisement. The transmitter in iOS sends out 10 advertisement packets per second, so the best you could do is start the transmitter then stop it on a timer about 100ms later. (You probably shouldn't do this, because there is no guarantee that a single iBeacon advertising packet will be received successfully by the other device -- it may be lost due to a CRC error in the radio noise. You are probably better off letting the packet continue to transmit until you can confirm from a response from the other device that it was received.)
You can see an example of starting and stopping a transmitter on a timer in my answer here.
Of course, there may be easier and more robust ways of accomplishing what you want with built-in Bluetooth data exchange mechanisms. But that doesn't change the fact that what you propose is certainly possible.
No you can't since iBeacon is uni-direction device

Able to receive a wifi packet through a Zigbee chip

I have a wireless sensor network deployed in a building. Each node is in a separate room. All the sensory data goes to a datastore.
The user once he/she gets to a room should be able to get the sensory data on his phone from the datastore, provided that we know in which room he/she is. GPS does not give high accurary neither infering it from the wifi signal strength. We thought of having the phone send a dummy frame through wifi that can be intercepted by the sensor node and then based on the node who gets it, or gets it first (in case many nodes intercept that frame) should give an indication to the system of what room the user is in
Wifi and Zigbee both communicate on 2.4Ghz. Is there a way I can intercept all the RF signals from the Zigbee node and entrepret the frame even if it is not a a Zigbee frame?
No, it's not possible, they use different signaling methods.

Resources