Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // vi börjar här
- BOOL J1587ReadWriteEvent( DevicePtr Device, DeviceEventType Event )
- {
- UINT8 RequestBuf[30];
- static UINT8 ReadResult[30];
- // .....
- // denna funktionen skriver saker i ReadResult
- J1587Response( Device,
- TxISToolReadE2Ack,
- ReadResult,
- CmdBufferRequest.Data[0] );
- // .....
- // vi sparar ner addressen till ReadResult på ett finurligt vis
- RequestBuf[0]= (UINT32)&ReadResult>>24; //Buffer address MSB
- RequestBuf[1]= (UINT32)&ReadResult>>16;
- RequestBuf[2]= (UINT32)&ReadResult>>8;
- RequestBuf[3]= (UINT32)&ReadResult; //Buffer address LSB
- // vi anropar lite magiska funktionspekare med hjälp av lite magiska macron
- DeviceWriteIndex(Driver->J1587ConverterDeviceController, ReadPropFaultCodesRequest,
- U8DATAPTR_ARG( RequestBuf, LenghtU8, DATAPTRVAR_IS_NOT_BIG_ENDIAN) );
- // .....
- }
- // DeviceWriteIndex() tar oss till slut hit
- // UINT8 *Data är RequestBuf[]
- static UINT8 KWPStateMachine(DevicePtr Device, UINT8 *Data, UINT8 Length)
- // .....
- // vi hämtar ut addressen till ReadResult på det finurliga viset
- pTmpReadAddress = (UINT8*)(
- (UINT32)Data[0]<<24 |
- (UINT32)Data[1]<<16 |
- (UINT32)Data[2]<<8 |
- (UINT32)Data[3]);
- // vi skickar iväg adressen till något element i pTmpReadAddress.
- // igen via magiska macron.
- // indexet är alltså bestämt utifrån data som ligger i 0:e elementet
- // i buffern
- DeviceRead(
- CCPDriver.EEPDevice,
- U8DATAPTR_ARG(
- &pTmpReadAddress[ pTmpReadAddress[0] + 1 ], 11,
- DATAPTRVAR_IS_NOT_BIG_ENDIAN ));
- // .....
- }
- // Oh, nämnde jag att funktionen KWPStateMachine() är 2875 rader lång
Add Comment
Please, Sign In to add comment