import os
import subprocess
import time

print(f'{os.name=}')
if os.name == 'Linux' or os.name == 'posix':
    root_dir='/home/russ/_GNSS_data'
    tp_exe = 'TitanPlayer'
else:
    # Windows
    root_dir='D:\\_GNSS_data\\2024'
    tp_exe = os.path.join('D:', os.sep, 'TitanPlayer', 'bin', 'TitanPlayer.exe'),
root_dir=os.path.join(root_dir, 'CSNMR-2982_whip_permutations')
print(f'{root_dir=}')

ini_txt = """
-runConfig GNSS_MOV_BASE_NAV
-registryFileType MP1010
-multiAntT0xFile
-numGNSS 2
-quiet
-refPosLLA 39.8964679320886 -105.115056310568 1668.52414248495
"""

folders = [
    '240312_no_whips',
    #'240313_whip_uhf',
    #'240317_whip_halow',
    #'240318_whip_both',
    #'240319_900only_halow',
    #'240320_900only_uhf',
    ]

for d in folders:
    rover=os.path.join(root_dir, d, 'data', 'gnss', 'P3ENCL_all.T04')
    out=os.path.join(root_dir, d, 'gen_data', 'titan', 'P3ENCL')
    log_dir=os.path.join(root_dir, d, 'logs')
    log_fname=os.path.join(log_dir, 'TitanPlayer_P3ENCL.log')

    cmd = [tp_exe,
           # VSBL
           '-runConfig', 'GNSS_MOV_BASE_NAV',
           '-registryFileType', 'MP1010',

           # BD992
           '-runConfig', 'GNSS_NAV',
           '-registryFileType', 'LAND_OFFROAD',

           '-multiAntT0xFile',
           '-numGNSS', '2',
           '-quiet',
           #'-multithread', # This seems to crash
           '-postProc',
           '-refPosLLA', '39.8964679320886', '-105.115056310568', '1668.52414248495',
           '-fixedRovPos',
           '-procInterval', '1',
           '-inputRovFiles', rover,
           '-outputFolder', out,
           #'--positionOutputRate', '1',
           ]
    #ini_txt += f'-inputRovFiles "{rover}"\n'
    #ini_txt += f'-outputFolder "{out}"\n'
    #with open("vsbl_static.ini","w") as f:
    #    f.writelines(ini_txt)
    #print(ini_txt)

    print('============================================')
    print(rover)
    print(out)
    print(log_fname)
    print('--------------------------------------------')
    os.makedirs(out, exist_ok=True)
    os.makedirs(log_dir, exist_ok=True)

    start = time.time()
    flog = open(log_fname, 'w')
    p = subprocess.run(cmd) #, stderr=subprocess.STDOUT, stdout=flog)
    flog.close()
    if p.returncode != 0:
        print(f'Warning TitanPlayer return code {p.returncode}')
    end = time.time()
    dt = end - start
    #print(f'Elapsed time: {dt:0.3f} seconds')
    print(f'Elapsed time: {dt/60:0.3f} minutes')

    for f in ['NavSolnEnums.txt', ' SatUsageDiagnosticEnums.txt']:
        if os.path.isfile(f):
            os.rename(f, os.path.join(out, f))
