digraph Pages { node [shape=rect, style=bold, color=black, height=0.7, penwidth=2]; overlap=false; splines=true; sep="+30"; nodesep=0.9; ranksep=0.6; newrank=true; // landscape=true; // // Blocchi speciali // Conn [label="User", shape=oval]; EndUser [label="User\nHandler", shape=oval]; Uuid [label="UUID", color=red, fontcolor=red, shape=none]; Cccd [label="CCCD\nHandle", color=red, fontcolor=red, shape=none]; Source [label="Source\nRegistrator", color=red, fontcolor=red, shape=none]; Connect [label="Connect()"]; ConnectToServer [label="ConnectToServer()"]; ConnectHandler [label="ConnectHandler()"]; CharDiscByUuidJob [label="CharDiscByUuidJob()"]; aci_gatt_disc_char_by_uuid [label="aci_gatt_disc_char_by_uuid()", color=grey]; DiscReadCharByUuidHandler [label="DiscReadCharByUuidHandler()"]; CharDiscByUuidComplete [label="CharDiscByUuidComplete()"]; StartNotifyEnableJob [label="StartNotifyEnableJob()"]; NotifyEnableComplete [label="NotifyEnableComplete()"]; aci_gatt_write_char_desc [label="aci_gatt_write_char_desc()", color=grey]; MtuConfigJob [label="MtuConfigJob()"]; aci_gatt_exchange_config [label="aci_gatt_exchange_config()", color=grey]; MtuConfigHandler [label="ACI_ATT_EXCHANGE_MTU_RESP_EVENT"]; MtuConfigComplete [label="MtuConfigComplete()"]; aci_gap_create_connection [label="aci_gap_create_connection()", color=grey]; // // Collegamenti tra le funzioni // Conn -> Connect; Connect -> ConnectToServer; ConnectToServer -> aci_gap_create_connection; aci_gap_create_connection -> ConnectHandler [penwidth=4, color=cyan]; ConnectHandler -> Uuid [label="push", color=red, fontcolor=red, penwidth=2]; ConnectHandler -> Source [label="push", color=red, fontcolor=red, penwidth=2]; Uuid -> CharDiscByUuidJob [label="pop", color=red, fontcolor=red, penwidth=2]; Source -> DiscReadCharByUuidHandler [label="pop", color=red, fontcolor=red, penwidth=2]; ConnectHandler -> MtuConfigJob [penwidth=4]; MtuConfigJob -> aci_gatt_exchange_config; aci_gatt_exchange_config -> MtuConfigHandler [penwidth=4, color=cyan]; aci_gatt_exchange_config -> MtuConfigComplete [penwidth=4, color=cyan]; MtuConfigComplete -> CharDiscByUuidJob [penwidth=4]; CharDiscByUuidJob -> aci_gatt_disc_char_by_uuid; aci_gatt_disc_char_by_uuid -> DiscReadCharByUuidHandler [penwidth=4, color=cyan]; aci_gatt_disc_char_by_uuid -> CharDiscByUuidComplete [penwidth=4, color=cyan]; CharDiscByUuidComplete -> CharDiscByUuidJob; CharDiscByUuidJob -> StartNotifyEnableJob [penwidth=4]; StartNotifyEnableJob -> NotifyEnableComplete; NotifyEnableComplete -> aci_gatt_write_char_desc; aci_gatt_write_char_desc -> NotifyEnableComplete [penwidth=4, color=cyan]; NotifyEnableComplete -> EndUser; DiscReadCharByUuidHandler -> Cccd [label="push", color=red, fontcolor=red, penwidth=2]; Cccd -> NotifyEnableComplete [label="pop", color=red, fontcolor=red, penwidth=2]; // { rank=same; ConnectToServer; aci_gap_create_connection; } { rank=same; Source; MtuConfigJob; } { rank=same; Uuid; ConnectHandler; } { rank=same; Conn; Connect; } { rank=same; aci_gatt_disc_char_by_uuid; StartNotifyEnableJob; } { rank=same; CharDiscByUuidComplete; CharDiscByUuidJob; } }