#######################################
# Syntax Coloring Map For CAN
#######################################

#######################################
# Datatypes (KEYWORD1)
#######################################

CAN	KEYWORD1
CANPubSubBroker	KEYWORD1
CANPubSubClient	KEYWORD1
CANPubSubBase	KEYWORD1

#######################################
# Methods and Functions (KEYWORD2)
#######################################

begin	KEYWORD2
end	KEYWORD2

beginPacket	KEYWORD2
beginExtendedPacket	KEYWORD2
endPacket	KEYWORD2

parsePacket	KEYWORD2
packetId	KEYWORD2
packetExtended	KEYWORD2
packetRtr	KEYWORD2
packetDlc	KEYWORD2

write	KEYWORD2

available	KEYWORD2
read	KEYWORD2
peek	KEYWORD2
flush	KEYWORD2

onReceive	KEYWORD2
filter	KEYWORD2
filterExtended	KEYWORD2
loopback	KEYWORD2
sleep	KEYWORD2
wakeup	KEYWORD2

setPins	KEYWORD2
setSPIFrequency	KEYWORD2
setClockFrequency	KEYWORD2
dumpRegisters	KEYWORD2

# PubSub Protocol Methods
loop	KEYWORD2
handleMessage	KEYWORD2
subscribe	KEYWORD2
unsubscribe	KEYWORD2
publish	KEYWORD2
sendDirectMessage	KEYWORD2
ping	KEYWORD2
connect	KEYWORD2
isConnected	KEYWORD2
getClientId	KEYWORD2
onMessage	KEYWORD2
onDirectMessage	KEYWORD2
onConnect	KEYWORD2
onDisconnect	KEYWORD2
onClientConnect	KEYWORD2
onClientDisconnect	KEYWORD2
onPublish	KEYWORD2
onPong	KEYWORD2
sendToClient	KEYWORD2
broadcastMessage	KEYWORD2
getClientCount	KEYWORD2
getSubscriptionCount	KEYWORD2
getSubscribers	KEYWORD2
setPingInterval	KEYWORD2
getPingInterval	KEYWORD2
enableAutoPing	KEYWORD2
isAutoPingEnabled	KEYWORD2
setMaxMissedPings	KEYWORD2
getMaxMissedPings	KEYWORD2
isSubscribed	KEYWORD2
hashTopic	KEYWORD2
registerTopic	KEYWORD2
getTopicName	KEYWORD2

# Client ID Management with Serial Numbers
registerClient	KEYWORD2
unregisterClient	KEYWORD2
unregisterClientBySerial	KEYWORD2
getClientIdBySerial	KEYWORD2
getSerialByClientId	KEYWORD2
updateClientSerial	KEYWORD2
getRegisteredClientCount	KEYWORD2
listRegisteredClients	KEYWORD2
getSerialNumber	KEYWORD2
requestClientIDWithSerial	KEYWORD2

# Persistent Storage
saveMappingsToStorage	KEYWORD2
loadMappingsFromStorage	KEYWORD2
clearStoredMappings	KEYWORD2
restoreClientSubscriptions	KEYWORD2

# Extended Frame Handling
handleSubscribeNotification	KEYWORD2
sendExtendedMessage	KEYWORD2
processExtendedFrame	KEYWORD2

#######################################
# Constants (LITERAL1)
#######################################

CAN_PS_SUBSCRIBE	LITERAL1
CAN_PS_UNSUBSCRIBE	LITERAL1
CAN_PS_PUBLISH	LITERAL1
CAN_PS_TOPIC_DATA	LITERAL1
CAN_PS_DIRECT_MSG	LITERAL1
CAN_PS_ID_REQUEST	LITERAL1
CAN_PS_ID_RESPONSE	LITERAL1
CAN_PS_PING	LITERAL1
CAN_PS_PONG	LITERAL1
CAN_PS_ACK	LITERAL1
CAN_PS_BROKER_ID	LITERAL1
CAN_PS_UNASSIGNED_ID	LITERAL1
