Understanding CANBUS/OBD Value Output


I’m trying to programmatically get the VIN of the vehicle (because I have two OBD devices, my actual car, and a simulator that I bought so I could play with the autopi easier).

It seems that the following command or variations get the VIN:

autopi obd.send 0902 auto_format=true expect_response=true raw_response=true echo=true output=dict
_stamp: ‘2020-09-01T04:38:38.034783’
_type: raw
‘1’: 0902
‘2’: 18 DA F1 10 10 14 49 02 01 31 47 31
‘3’: 18 DA F1 10 21 4A 43 35 34 34 34 52
‘4’: 18 DA F1 10 22 37 32 35 32 33 36 37

However I’m not sure of the cleanest way to parse that or even what the preamble is.
It seems to decode as:


Which matches the VIN of the ECUSIM 2000 1G1JC5444R7252367. I did find this this ELM327 Datasheet which seems to touch on this, but I’m not sure if I even get all the information back in the raw format (for instance it looks like I should have a trailing checksum byte, which I don’t see).