# Procrastination Functions

Procrastinations functions wait for specific events to occur or fail to occur.

## WaitForAssoc

      				signed WaitForAssoc
       				struct plc * plc

Poll a powerline device using `VS_NW_INFO` messages until the device forms or joins a network. The host ethernet interface, destination hardware address and source hardware address are specified in structure `plc`. It calls either WaitForAssoc1 or WaitForAssoc2 to procrastinate based on the `hardwareID` member of structure `plc`. The function is declared in plc.h and defined in file WaitForAssoc.c. Struct `plc` is declared in file plc.h and defined in file plc.c.

## WaitForAssoc1

      				signed WaitForAssoc1
       				struct plc * plc

Poll a 200mbs powerline device using `VS_NW_INFO` version `0` messages until the device joins or forms a network. The host ethernet interface, destination hardware address and source hardware address are specified in structure `plc`. The function is declared in file plc.h and defined in file WaitForAssoc1.c. Struct `plc` is declared in file plc.h and defined in file plc.c.

## WaitForAssoc2

      				signed WaitForAssoc2
       				struct plc * plc

Poll a 1000mbs powerline device using `VS_NW_INFO` version `1` messages until the device joins or forms a network. The host ethernet interface, destination hardware address and source hardware address are specified in structure `plc`. Structure `plc` is declared in file plc.h and defined in file plc.c. The function is declared in file plc.h and defined in file WaitForAssoc2.c.

## WaitForReset

      				signed WaitForReset
       				struct plc * plc

Poll a powerline device using `VS_SW_VER` messages until the device stops responding. The host ethernet interface, destination hardware address and source hardware address are specified in structure `plc`. Structure `plc` is declared in file plc.h and define in file plc.c. The function is declared in plc.h and defined in file WaitForReset.c.

## WaitForStart

      				signed WaitForStart
       				struct plc * plc
    				char firmware
    				size_t length

Poll a powerline device using `VS_SW_VER` messages until the device responds. The host ethernet interface, destination hardware address and source hardware address are specified in structure `plc`. Update the `hardwareID` member of the `plc` structure. Return the firmware revision string contained in the confirmation message. Structure `plc` is declared in file plc.h and defined in file plc.c. The function is declared in file plc.h and defined in file WaitForStart.c.