Das müsste soweit alles sein, was du brauchst.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| var TNxtMessage = Array of Byte;
procedure SplitToByte(var Msg: TNxtMessage; Val, Start, Ende: Integer); var X: Integer; begin for X := Start to Ende do begin Msg[X] := Val mod 256; Val := Val shr 8; end; end;
function SendMsg(NxtMsg: TNxtMessage): String; var X: Integer; Data: String; begin Data := '';
for X := 0 to Length(NxtMsg) - 1 do Data := Data + Chr(NxtMsg[X]);
Data := Chr(Length(NxtMsg)) + Chr($00) + Data; Ser.SendString(Data); end;
procedure PlayTone(Freq: Word; Dur: Word); var NxtMessage: TNxtMessage; begin SetLength(NxtMessage, 6);
NxtMessage[0] := $80; NxtMessage[1] := $03; SplitToByte(NxtMessage, Freq, 2, 3); SplitToByte(NxtMessage, Dur, 4, 5); SendMsg(NxtMessage); end; |
Bitte im Quelltext erwähnen, dass das von mir stammt (
Fabian Gärtner). SendString ist eine Funktion der
Library SynaSer (weiter untern auf der Seite).
@freak4fun: Wenn es das ist, was ich meine, dann nicht. Aber was meinst du denn genau? ^^
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)