Hallo Torben,
hat sich bei deinen letzten Snapshots etwas in Sachen seriellerl Kommunikation geändert? Mein Mixercontrol reagiert nichtmehr auf die Befehle die ich ihm per ComPort(‘COM2’).SendStr() schicke. Das Script ist natürlich angepasst, worden, nach dem Wegfall der Objektreferenzen und es sollte eigentlich alles stimmem. Hab zum Debuggen extra mal nen SystemLog() eingefügt und es sieht alles richtig aus, nur bei Mixercontrol scheints nicht korrekt anzukommen. Die andere Richtung funktioniert, von Mixercontrol aus ist mAirList steuerbar.
Anbei mal das Script:
[code]function StateToStr(iState: TPlayerState): String;
begin
Case iState Of
psEmpty: Result := ‘psEmpty’;
psLoading: Result := ‘psLoading’;
psLoaded: Result := ‘psLoaded’;
psPlaying: Result := ‘psPlaying’;
psFading: Result := ‘psFading’;
psEOF: Result := ‘psEOF’;
psError: Result := ‘psError’;
psPaused: Result := ‘psPaused’;
psStopped: Result := ‘psStopped’;
psPFL: Result := ‘psPFL’;
psFlashEOF: Result := ‘psFlashEOF’;
psNext: Result := ‘psNext’;
else Result := ‘unknown’;
end;
end;
procedure OnStartup;
begin
ComPort(‘COM2’).SendStr(‘RESET’ + #13#10);
end;
procedure OnShutdown;
begin
ComPort(‘COM2’).SendStr(‘RESET’ + #13#10);
end;
procedure OnPlayerStateChange(PlayerIndex: integer; OldState: TPlayerState; NewState: TPlayerState);
var
Port: Integer;
begin
{for debugging only}
SystemLog('Index: ’ + IntToStr(PlayerIndex) + ’ From ’ + StateToStr(OldState) + ’ to ’ + StateToStr(NewState));
Case PlayerIndex Of
0: Port := 3;
1: Port := 4;
end;
Case NewState Of
psLoaded: ComPort(‘COM2’).SendStr(‘PORT ’ + IntToStr(Port) + ’ 1’ + #13#10);
psPlaying: ComPort(‘COM2’).SendStr(‘PORT ’ + IntToStr(Port) + ’ 2’ + #13#10);
psStopped: ComPort(‘COM2’).SendStr(‘PORT ’ + IntToStr(Port) + ’ 1’ + #13#10);
psPaused: ComPort(‘COM2’).SendStr(‘PORT ’ + IntToStr(Port) + ’ 1’ + #13#10);
psEmpty: ComPort(‘COM2’).SendStr(‘PORT ’ + IntToStr(Port) + ’ 0’ + #13#10);
end;
end;
begin
end.[/code]
Gruß
Dominique Görsch