Infrared remote library for PIC18F2550: send and receive infrared signals with multiple protocols