I have seen examples to read IR that use pulseIn(). It seems an easy way to read IR in, but the examples all seem to wait for IR to come in and then process it. While in my application I want to be able to have the user shoot the laser gun, thus sending out an encoded IR signal while also being able to read an incoming IR signal as well, without missing it and being able to process both. Hopefully that helps explain this some.
One worry I have is that if someone is continuously shooting, the arduino will never have a rest to read incoming IR to see if anyone has shot them. And if I did stop to read incoming IR it seems that I would then have messed up my timing of an outgoing signal. Seems to me if I detect an incoming IR signal I would have to stop everything else and wait for the complete signal to come in before continuing.
MILESTAG is the particular protocol I am hoping to implement.http://www.lasertagparts.com/mtformat.htm
Thanks for your replies!