Exemple #1
0
void UK2Node_Timeline::ExpandNode(FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph)
{
	Super::ExpandNode(CompilerContext, SourceGraph);

	const UEdGraphSchema_K2* K2Schema = GetDefault<UEdGraphSchema_K2>();
	UBlueprint* Blueprint = GetBlueprint();
	check(Blueprint);

	UTimelineTemplate* Timeline = Blueprint->FindTimelineTemplateByVariableName(TimelineName);
	if(Timeline)
	{
		ExpandForPin(GetDirectionPin(), Timeline->GetDirectionPropertyName(), CompilerContext, SourceGraph);

		for(int32 i=0; i<Timeline->FloatTracks.Num(); i++)
		{
			const FName TrackName = Timeline->FloatTracks[i].TrackName;
			ExpandForPin(FindPin(TrackName.ToString()), Timeline->GetTrackPropertyName(TrackName), CompilerContext, SourceGraph);
		}

		for(int32 i=0; i<Timeline->VectorTracks.Num(); i++)
		{
			const FName TrackName = Timeline->VectorTracks[i].TrackName;
			ExpandForPin(FindPin(TrackName.ToString()), Timeline->GetTrackPropertyName(TrackName), CompilerContext, SourceGraph);
		}

		for(int32 i=0; i<Timeline->LinearColorTracks.Num(); i++)
		{
			const FName TrackName = Timeline->LinearColorTracks[i].TrackName;
			ExpandForPin(FindPin(TrackName.ToString()), Timeline->GetTrackPropertyName(TrackName), CompilerContext, SourceGraph);
		}
	}
}
void Device_Stepper::UpdateInitialPinState(uint8_t device_number)
{
    if (ValidateConfig(device_number) == APP_ERROR_TYPE_SUCCESS &&
            !AxisInfo::GetStepperEnableState(device_number))
    {
        uint8_t current_state;
        uint8_t expected_state;
        uint8_t pin;

        expected_state = GetEnableInvert(device_number) ? INITIAL_PIN_STATE_HIGH : INITIAL_PIN_STATE_LOW;
        pin = GetEnablePin(device_number);
        if (!retrieve_initial_pin_state(pin, &current_state) && current_state != expected_state)
        {
            set_initial_pin_state(pin, expected_state);
        }

        expected_state = GetDirectionInvert(device_number) ? INITIAL_PIN_STATE_HIGH : INITIAL_PIN_STATE_LOW;
        pin = GetDirectionPin(device_number);
        if (!retrieve_initial_pin_state(pin, &current_state) && current_state != expected_state)
        {
            set_initial_pin_state(pin, expected_state);
        }

        expected_state = GetStepInvert(device_number) ? INITIAL_PIN_STATE_HIGH : INITIAL_PIN_STATE_LOW;
        pin = GetStepPin(device_number);
        if (!retrieve_initial_pin_state(pin, &current_state) && current_state != expected_state)
        {
            set_initial_pin_state(pin, expected_state);
        }
    }
}