public static function construct($logical_type, $complex_descriptor_available, $user_descriptor_available, $aps_flags, $frequency_band, $mac_capability_alternate_pan_coordinator, $mac_capability_device_type, $mac_capability_power_source, $mac_capability_receiver_on_when_idle, $mac_capability_security_capability, $mac_capability_allocate_address, $manufacturer_code, $maximum_buffer_size, $maximum_incoming_transfer_size, $server_mask, $maximum_outgoing_transfer_size, $extended_active_endpoint_list_available, $extended_simple_descriptor_list_available) { $frame = new self(); $frame->setApsFlags($aps_flags); $frame->setComplexDescriptorAvailable($complex_descriptor_available); $frame->setExtendedActiveEndpointListAvailable($extended_active_endpoint_list_available); $frame->setExtendedSimpleDescriptorListAvailable($extended_simple_descriptor_list_available); $frame->setFrequencyBand($frequency_band); $frame->setLogicalType($logical_type); $frame->setMacCapabilityAllocateAddress($mac_capability_allocate_address); $frame->setMacCapabilityAlternatePanCoordinator($mac_capability_alternate_pan_coordinator); $frame->setMacCapabilityDeviceType($mac_capability_device_type); $frame->setMacCapabilityPowerSource($mac_capability_power_source); $frame->setMacCapabilityReceiverOnWhenIdle($mac_capability_receiver_on_when_idle); $frame->setMacCapabilitySecurityCapability($mac_capability_security_capability); $frame->setManufacturerCode($manufacturer_code); $frame->setMaximumBufferSize($maximum_buffer_size); $frame->setMaximumIncomingTransferSize($maximum_incoming_transfer_size); $frame->setMaximumOutgoingTransferSize($maximum_outgoing_transfer_size); $frame->setServerMask($server_mask); $frame->setUserDescriptorAvailable($user_descriptor_available); return $frame; }