Communication with my CAN BUS, quick question..

So I've recently been doing more programming(in C#), hooking into my CAN BUS. I can read rpm's, engine temp, etc.. BUT when I try to read the packets from the CAN BUS for an event say the window rolling down, or radio turning up.. I'm having a little trouble making sense of the packet itself though..

I believe the first two bytes are supposed to be the identifier.. The third byte is supposed to be the data length, and the rest (up to 8 bytes) is the data..

So when sending this packet onto the bus to recreate the event, I have no idea how to.. I have my shield ordered and will be using my Arduino+Shield, instead of my ELM327.. But I want to understand how to properly send these packets. I currently have my program(written in C#) which will be communicating with my arduino, able to read RPM's, engine temp, vehicle speed, etc.. I can use the ATMA command to sniff my CAN BUS packets with Key Off while I still have power for 10 mins. This shows me the packets as soon as I turn my radio up, or roll my window down. I just need help on how to decode them, and format them to send the message back to the CAN BUS using my Arduino(and C#). Right now, the only thing I believe I have figured out, is that I have to set the IDentifier (the first two bytes), as the header? and then send the data as another message? If anyone can help me with any of this I would be very grateful :smiley: I feel I have almost everything done, just these packets are my last part of my program..