Inhaltsverzeichnis

AVC-LAN

IDs vom MP3 Toyato Corolla ProjektAVC ist die Abkürzung für: Audio Video Communication - Local Area Network.

Hier mal ein paar nützliche Links zur Einführung:

Und Github Projekte:

AVCLAN Co

Signal Analyzer

Protokoll

Broadcast

Nec µPD72042 Datasheet - s. Gruppen

siehe auch: https://en.wikipedia.org/wiki/IEBus (basiert wohl dann auf mode=2)

typedef enum avclan_message_types
{
	MSG_PING_SEND,
	MSG_PING_RECV,
	MSG_DEV_RESET,
	MSG_LAN_RESET,
	MSG_DEV_REG_DIRECT,
	MSG_DEV_REG_BROADCAST,
	MSG_DEV_
};
class avclan_messages {
public:
	void				cmdMessage(uint8_t cmd, uint16_t lan_slave, uint8_t src_dev, uint8_t dest_dev);
	void				cmd10(uint8_t device_list[], uint8_t num_devices, uint16_t lan_master, uint16_t lan_slave, uint8_t src_dev, uint8_t dest_dev);					// Report sending logical devices
	void				cmd12(avclan_logical_device_map_t device_map[], uint8_t num_devices, uint16_t lan_master, uint16_t lan_slave, uint8_t src_dev, uint8_t dest_dev);	// Report listening logical devices
	void				cmd13(uint8_t device_list[], uint8_t num_devices, uint16_t lan_master, uint8_t src_dev, uint8_t dest_dev);	// Broadcast logical devices
	void				cmd30(uint16_t lan_master, uint16_t lan_slave, uint8_t ping);	// Pong!
	void				cmdE(uint16_t lan_master, uint16_t lan_slave, uint8_t src_dev, uint8_t dest_dev, uint8_t request_type);		// Status request
	uint8_t				getFunction(avclan_frame_t* msg_frame);
	uint8_t				getSrcDevice(avclan_frame_t* msg_frame);
	uint8_t				getDestDevice(avclan_frame_t* msg_frame);
};
/*
  avclan-registers.h - AVCLan Head Unit library for for Atmega328
  Created by Greg Nutt, 010.30.2020
  Version 0.0.1
  
  Not for commercial use.  
*/


#ifndef avclan_registers_h
#define avclan_registers_h

#define FRAME_MAXLEN            32;

// Address Register Values
const uint16_t ADDR_AUDIO_ECU               =    0x0180;
const uint16_t ADDR_AUDIO_HU                =    0x0190;
const uint16_t ADDR_DVD_P                   =    0x01A0;
const uint16_t ADDR_REAR_TV                 =    0x01B0;
const uint16_t ADDR_SINGLE_DIN_NAV          =    0x01B4;
const uint16_t ADDR_DISPLAY_SW              =    0x01B8;
const uint16_t ADDR_REAR_CTRL_SW            =    0x01C0;
const uint16_t ADDR_EURO_GW_ECU             =    0x01C2;
const uint16_t ADDR_RUSSIA_GW_ECU           =    0X01C4;
const uint16_t ADDR_GW_ECU                  =    0x01C6;
const uint16_t ADDR_FM_MULTI_DISPLAY        =    0x01C8;
const uint16_t ADDR_STEERING_SW             =    0x01CC;
const uint16_t ADDR_MULTI_CD_DECODER        =    0x01D0;
const uint16_t ADDR_DISPLAY_MASTER          =    0x01D2;            // Entry for custom device
const uint16_t ADDR_DISPLAY                 =    0x01D4;
const uint16_t ADDR_CLOCK                   =    0x01D6;
const uint16_t ADDR_FR_CONTROLLED_SW        =    0x01D8;
const uint16_t ADDR_NAV_REM_CTRL            =    0x01DC;
const uint16_t ADDR_CD_CH_COMMANDER         =    0x01E0;
const uint16_t ADDR_CONSOLIDATED_SW         =    0x01E4;
const uint16_t ADDR_MD_CH_COMMANDER         =    0x01E8;
const uint16_t ADDR_BODY_COMPUTER           =    0x01EC;
const uint16_t ADDR_AMP_RADIO_TUNER         =    0x01F0;
const uint16_t ADDR_XM_RADIO_TUNER          =    0x01F2;
const uint16_t ADDR_RSA                     =    0x01F4;
const uint16_t ADDR_RSE_M                   =    0x01F6;
const uint16_t ADDR_BROADCAST_1FF           =    0x01FF;
const uint16_t ADDR_NAV_ECU                 =    0x0200;
const uint16_t ADDR_ATIS                    =    0x0210;
const uint16_t ADDR_VICS                    =    0x0220;
const uint16_t ADDR_TV_TUNER                =    0x0230;
const uint16_t ADDR_HW_CD_CH                =    0x0240;
const uint16_t ADDR_HW_DVD_CH               =    0x0250;
const uint16_t ADDR_TEL_INFO_ECU            =    0x0260;
const uint16_t ADDR_CAMERA_CTRLR            =    0x0280;
const uint16_t ADDR_RADIO                   =    0x0300;
const uint16_t ADDR_CASSETTE                =    0x0320;
const uint16_t ADDR_CASSETTE_NO_CH          =    0x0330;
const uint16_t ADDR_CD_P                    =    0x0340;
const uint16_t ADDR_1DIN_CD_CH              =    0x0360;
const uint16_t ADDR_MD_P                    =    0x0380;
const uint16_t ADDR_MD_CH                   =    0x03A0;
const uint16_t ADDR_DAT                     =    0x03C0;
const uint16_t ADDR_DCC                     =    0x03E0;
const uint16_t ADDR_TEL_ECU                 =    0x03F8;
const uint16_t ADDR_EQUALIZER               =    0x0400;
const uint16_t ADDR_DSP                     =    0x0440;
const uint16_t ADDR_HW_AMP                  =    0x0480;
const uint16_t ADDR_GPS_RECEIVER            =    0x0500;
const uint16_t ADDR_ATIS_DECODER            =    0x0510;
const uint16_t ADDR_FM_MULTI_DECODER        =    0x0520;
const uint16_t ADDR_RADIO_WAVE_BEACON       =    0x0528;
const uint16_t ADDR_OPTICAL_BEACON          =    0x052C;
const uint16_t ADDR_CD_CH                   =    0x0540;
const uint16_t ADDR_MD_CH_2                 =    0x0560;
const uint16_t ADDR_CDROM_CH                =    0x0580;
const uint16_t ADDR_MDROM_CH                =    0x05A0;
const uint16_t ADDR_TEL_INFO                =    0x05C0;
const uint16_t ADDR_MAYDAY                  =    0x05C8;
const uint16_t ADDR_AC_ECU                  =    0x0600;
const uint16_t ADDR_BODY_ECU                =    0x0680;
const uint16_t ADDR_BROADCAST_FFF           =    0x0FFF;

// Device Register Values
const uint16_t DEV_COM_CTRL0                =    0x00;
const uint16_t DEV_COM_CTRL                 =    0x01;
const uint16_t DEV_COM_EXT                  =    0x02;
const uint16_t DEV_COM_MASTER               =    0x11;
const uint16_t DEV_SW_AUDIO                 =    0x21;
const uint16_t DEV_SW_SHIFT                 =    0x23;
const uint16_t DEV_SW                       =    0x25;
const uint16_t DEV_HU_BEEP                  =    0x28;
const uint16_t DEV_BEEP_SPEAK               =    0x29;
const uint16_t DEV_INFO_DISPLAY1            =    0x31;
const uint16_t DEV_INFO_DISPLAY2            =    0x32;
const uint16_t DEV_INFO_DISPLAY3            =    0x34;
const uint16_t DEV_3F                       =    0x3F;
const uint16_t DEV_TV_TUNER                 =    0x40;
const uint16_t DEV_CD                       =    0x43;
const uint16_t DEV_BLUETOOTH                =    0x55;
const uint16_t DEV_INFO_DRAW                =    0x56;
const uint16_t DEV_NAV_GPS                  =    0x58;
const uint16_t DEV_FM_MULTIPLEX_VICS        =    0x5A;
const uint16_t DEV_BEACON                   =    0x5B;
const uint16_t DEV_CAMERA                   =    0x5C;
const uint16_t DEV_CLIMATE_CTRL_DRAW        =    0x5D;
const uint16_t DEV_AUDIO_DRAW               =    0x5E;
const uint16_t DEV_TRIP_INFO_DRAW           =    0x5F;
const uint16_t DEV_RADIO                    =    0x60;
const uint16_t DEV_CASSETTE                 =    0x61;
const uint16_t DEV_CD_P                     =    0x62;
const uint16_t DEV_CD_CH                    =    0x63;
const uint16_t DEV_MD                       =    0x64;
const uint16_t DEV_MD_CH                    =    0x65;
const uint16_t DEV_6D                       =    0x6D;
const uint16_t DEV_6F                       =    0x6F;
const uint16_t DEV_AUDIO_AMP                =    0x74;
const uint16_t DEV_NAV_GPS_2                =    0x80;
const uint16_t DEV_81                       =    0x81;
const uint16_t DEV_FM_MULTIPLEX_DATA        =    0x82;
const uint16_t DEV_OPTICAL_BEACON           =    0x83;
const uint16_t DEV_RADIO_WAVE_BEACON        =    0x84;
const uint16_t DEV_VOICE_CONTROL            =    0x85;
const uint16_t DEV_FM_MULTIPLEX_TUNER       =    0x9A;
const uint16_t DEV_A4                       =    0xA4;
const uint16_t DEV_XM_TUNER                 =    0xC0;
const uint16_t DEV_CLIMATE_CTRL_DEV         =    0xE0;
const uint16_t DEV_E4                       =    0xE4;
const uint16_t DEV_TRIP_INFO                =    0xE5;
const uint16_t DEV_EF                       =    0xEF;

// Function Register Values
const uint16_t FUNC_DIRECT_COMMAND          =    0x00;
const uint16_t FUNC_LAN_INIT                =    0x01;
const uint16_t MSG_DEVICES_RESPONSE         =    0x02;
const uint16_t MSG_DEVICES_REGISTER         =    0x10;
const uint16_t FUNC_REGISTER                =    0x11;        //  TODO:  Confirm
const uint16_t MSG_DEVICES_REQUEST          =    0x12;
const uint16_t MSG_DEVICES_BROADCAST        =    0x13;
const uint16_t PING                         =    0x20;
const uint16_t PONG                         =    0x30;
const uint16_t FUNC_REGISTER_58             =    0x58;
const uint16_t FUNC_REGISTER_5B             =    0x5B;
const uint16_t FUNC_REGISTER_5F             =    0x5F;
const uint16_t FUNC_STATUS_B7               =    0xB7;
const uint16_t FUNC_UNKNOWN_INFO_D9         =    0xD9;        // TODO: Related to Info Display, try to identify
const uint16_t FUNC_AVG_KMH_INFO            =    0xDB;
const uint16_t FUNC_UNKNOWN_INFO_DC         =    0xDC;
const uint16_t FUNC_FUEL_RANGE_INFO         =    0xDD;
const uint16_t FUNC_TRIP_TIME_INFO          =    0xDE;
const uint16_t FUNC_STATUS_REQUEST_E0       =    0xE0;
const uint16_t FUNC_STATUS_REQUEST_E2       =    0xE2;
const uint16_t FUNC_STATUS_REQUEST_E4       =    0xE4;
const uint16_t FUNC_STATUS_RESPOND_F0       =    0xF0;
const uint16_t FUNC_STATUS_RESPOND_F1       =    0xF1;
const uint16_t FUNC_STATUS_RESPOND_F2       =    0xF2;
const uint16_t FUNC_STATUS_RESPOND_F3       =    0xF3;
const uint16_t FUNC_STATUS_RESPOND_F9       =    0xF9;

#endif