Попросили меня прицепить к софтине на винде эту приблуду.
Я почитал мануал - все вроде внятно Прибор непрерывно находится в режиме передачи. Формат передаваемого кадра: $AA, $Re_Lo, $Re_Mid, $Re_Hi, $Re_Exp, $Im_Lo, $Im_Mid, $Im_Hi, $Im_Exp, $Limit, $Status; где $AA – байт синхронизации. Ну хоть на этом спасибо, хоть выяснил быстро что скорость 9600, зачем об этом писать в мануале? Ну кстати, контрольная сумма - для слабаков. 0хАА решает. Ладно, думал, ага, два числа с плавучкой передеют - по 4 байта, наэрн флоаты, ща быстренько юнион чар-флоат и я в хопре. Ага. Пол дня промудохался. Знаю, тупанул, виноват. Залез на сайт их, к счастью там программулина лежит для отображения виртуальной морды прибора на компе. И кто бы мог подумать - в папке с екзешником лежит паскалевский проект.
function TForm1.picToFloat(Byte2, Byte1, Byte0, Exp: integer): real;
var outVal: real;
countI: integer;
sign: boolean;
begin
sign:= false;
outVal:= Byte1*256 + Byte2;
if (Byte0 and 128)>0 then
begin
sign:= true;
end;
Byte0:= Byte0 or 128;
outVal:= outVal + Byte0*256*256;
outVal:= outVal/8388608/2;
if Exp >= 127 then begin
Exp:= Exp - 127;
for countI:= 0 to Exp do
outVal:= outVal*2;
end
else begin
Exp:= 127- Exp-1;
for countI:= 1 to Exp do
outVal:= outVal/2;
end ;
if sign then outVal:= outVal *(-1);
picToFloat:= outVal;
end;
Еще прикололо if limit<5 res:= 1/Am; prov:= Am; else res:= Am; prov:= 1/Am; где limit тупо девятый байт посылки.
Походу я мало драников ем, не смог узреть красоты.