¿ªÔÆÌåÓý

HP3048 data file format?


 

Hello!

I am new to this group, old engineer, a ham (S57UUU), and playing with radio astronomy.

I have a HP3048 setup, which is working well (knock on wood). I am using the DOS software. For now I can store the results only graphically, using a screen grabber ("screen thief"). The software will write a data file, but it is binary, and somehow, I can't figure it out. Used a hex editor which can also represent the data as floats, etc. but no luck.

Does maybe somebody have the format specification for these files?

Marko Cebokli


 

You should take a look at the KE5FX website as a starting point.


 

The source code in HP Basic to the 3048 program is available and the load_results is as follows. It basically uses the ENTER command to do HPBASIC IO.??

The HP BASIC manual reminds us that in binary mode:
Two bytes? for each INTEGER: eight bytes for each REAL, and sixteen bytes for
each COMPLEX value. Each string entered consists of a four byte header containing the
length of the string, followed by the actual string characters. The string must contain an
even number of characters; if the length is odd, an extra byte is entered to give alignment
on the word boundary.

I think this is probably enough information to put together a small C program (or your favouritte IO friendly language) to read the files!

Note that Fft in below refers to the DSA data and RF the RF spectrum analyser if you have one (I don't - at least not an 3048 friendly model!)

17132 Load_results:SUB Load_results(@Path,Det$)
17134 ?!!
17136 ? ? ? ?COM /Segment_tags/ Fft_tags(*),Rf_tags(*),Rf_bws(*),Rfa_bins_used
17138 ? ? ? ?COM /Measparms/ Startfreq,Stopfreq,N_ave
17140 ? ? ? ?COM /Plot/ INTEGER Fft_plot(*),Rf_plot(*),Firsty,REAL Firstx
17142 ? ? ? ?COM /Sigma_tau/ Sigma_tau_table(*)
17144 ? ? ? ?COM /Timer/ Starttime,Stoptime
17146 ? ? ? ?COM /Plotparms/ Y_min,Y_max,X_min,X_max,Graphtype,Phgr_type,Carrier,Spurs_on,Title$,Pbw,Cf_scale_fact,Arb_shift,Nf_pwr
17148 ?!
17150 ? ? ? ?ALLOCATE Dummy$[58]
17152 ?!
17154 ? ? ? ?ENTER @Path;Dummy1,Dummy2,Dummy3,Carrier,Dummy$
17156 ? ? ? ?IF Det$="ALL" THEN?
17158 ? ? ? ? ? N_ave=Dummy1
17160 ? ? ? ? ? Starttime=Dummy2
17162 ? ? ? ? ? Stoptime=Dummy3
17164 ? ? ? ? ? Title$=Dummy$
17166 ? ? ? ?END IF
17168 ? ? ? ?ENTER @Path;Frstfftseg,Lstfftseg,Frstrfseg,Lstrfseg
17170 ?!
17172 ? ? ? ?IF Frstfftseg AND Lstfftseg THEN?
17174 ? ? ? ? ? ALLOCATE INTEGER Temp(Frstfftseg:Lstfftseg,1:401)
17176 ? ? ? ? ? ENTER @Path;Temp(*)
17178 ? ? ? ? ? FOR I=Frstfftseg TO Lstfftseg
17180 ? ? ? ? ? ? ?FOR J=1 TO 401
17182 ? ? ? ? ? ? ? ? Fft_plot(I,J)=Temp(I,J)
17184 ? ? ? ? ? ? ?NEXT J
17186 ? ? ? ? ? NEXT I
17188 ? ? ? ? ? DEALLOCATE Temp(*)
17190 ? ? ? ?END IF
17192 ?!
17194 ? ? ? ?IF Frstrfseg AND Lstrfseg THEN?
17196 ? ? ? ? ? ALLOCATE INTEGER Temp(Frstrfseg:Lstrfseg,0:1000)
17198 ? ? ? ? ? ENTER @Path;Temp(*)
17200 ? ? ? ? ? FOR I=Frstrfseg TO Lstrfseg
17202 ? ? ? ? ? ? ?FOR J=0 TO 1000
17204 ? ? ? ? ? ? ? ? Rf_plot(I,J)=Temp(I,J)
17206 ? ? ? ? ? ? ?NEXT J
17208 ? ? ? ? ? NEXT I
17210 ? ? ? ? ? DEALLOCATE Temp(*)
17212 ? ? ? ?END IF
17214 ?!
17216 ? ? ? ?ENTER @Path;Fft_tags(*),Rf_tags(*)
17218 ?!
17220 ? ? SUBEND


Alan


 

Thank you very much Alan!
With this I will probably succeed.
My main goof was, that I was looking for 4 byte floats...

Marko Cebokli


 

¿ªÔÆÌåÓý

Feel free to swipe the 3048A code out of timelab.cpp if you like (which can be found in the installation directory written by the setup program at ).? Search for import_3048A_data.

?

I¡¯m not sure it works with files written by the option-301 PC BASIC version, though.? If you try it, let me know!

?

-- john, KE5FX

?

From: [email protected] <[email protected]> On Behalf Of Marko Cebokli
Sent: Thursday, June 27, 2024 12:25 AM
To: [email protected]
Subject: Re: [HP-Agilent-Keysight-equipment] HP3048 data file format?

?

Thank you very much Alan!
With this I will probably succeed.
My main goof was, that I was looking for 4 byte floats...

Marko Cebokli


 

Thank you very much John!

Found the function, quite a long one :-)
Will keep you updated, but don't hold your breath. Currently I have a rather painful health problem (kidney stone), so my programming zeal is kind of low at this time.

73, Marko Cebokli