示例#1
0
def acMain(ac_version):
  global TYREINFO, optimal_spinner_id, optimal_spinner_shown
  appWindow = ac.newApp("Tyre Temperatures")
  ac.drawBackground(appWindow, background)  
  ac.drawBorder(appWindow, background)
  ac.setBackgroundOpacity(appWindow, background)
  ac.setSize(appWindow, x_app_size, y_app_size)
  TYREINFO = Tyre_Info(appWindow, x_start, y_start)
  ac.addRenderCallback(appWindow, onFormRender)
  
  TYREINFO.optimal_temp = d_optimal_temp
  TYREINFO.carinifilepath = inidir + getValidFileName(ac.getCarName(0)) + ".ini"
  TYREINFO.needwriteini = 1
  
  if os.path.exists(TYREINFO.carinifilepath):
    f = open(TYREINFO.carinifilepath, "r")
    TYREINFO.optimal_temp = int(f.readline()[8:])
    f.close()
    TYREINFO.needwriteini = 0
  
  optimal_spinner_id = ac.addSpinner(appWindow, "optimal")
  ac.setPosition(optimal_spinner_id, 0, y_app_size + 28)
  ac.setStep(optimal_spinner_id, 1)
  if inFahrenheit:
    ac.setRange(optimal_spinner_id, int(CelsiusToFahrenheit(50)), int(CelsiusToFahrenheit(150)))
    ac.setValue(optimal_spinner_id, int(CelsiusToFahrenheit(TYREINFO.optimal_temp)))
  else:
    ac.setRange(optimal_spinner_id, 50, 150)
    ac.setValue(optimal_spinner_id, TYREINFO.optimal_temp)
  ac.addOnValueChangeListener(optimal_spinner_id, onValueChanged)
  optimal_spinner_shown = 1
  
  ac.log("Danny Giusa Tyre Temperatures loaded")
  return "Danny Giusa Tyre Temperatures"
def acMain(ac_version):
    global appWindow, label1, logPrefix, appName, splitsRenderer
    ac.console(logPrefix + "acMain")
    try:
        appWindow = ac.newApp(appName)
        ac.setTitle(appWindow, "")
        ac.setSize(appWindow, 300, 300)
        ac.drawBorder(appWindow, 0)
        ac.setBackgroundOpacity(appWindow, 0.3)

        resetBtn = ac.addButton(appWindow, "R")
        ac.setPosition(resetBtn, 5, 30)
        ac.setSize(resetBtn, 30, 30)
        ac.addOnClickedListener(resetBtn, onResetClicked)

        newSplitBtn = ac.addButton(appWindow, "N")
        ac.setPosition(newSplitBtn, 40, 30)
        ac.setSize(newSplitBtn, 30, 30)
        ac.addOnClickedListener(newSplitBtn, onNewSplitClicked)

        #label1 = ac.addLabel(appWindow, "____")
        #ac.setPosition(label1, 0, 70)

        splitsRenderer = SplitsRenderer(2, 62, 10, 10)

        ac.addRenderCallback(appWindow, onRender)
        ac.addOnAppActivatedListener(appWindow, onActivate)
        ac.addOnAppDismissedListener(appWindow, onDismiss)

        ac.console(logPrefix + "Initialized")
    except:
        printExceptionInfo("acMain")

    return appName
def acMain(ac_version):
    global updater, appHeight, appWidth, appWindow, numSecondsSpinner
    appWindow = ac.newApp("Traction Circle")
    ac.setSize(appWindow, appWidth, appHeight)
    ac.drawBorder(appWindow, 0)

    try:
        model = TractionCircleModel()
        assetto_corsa = AssettoCorsa()

        maxTimeSpan = 3
        numSecondsSpinner = ac.addSpinner(appWindow, 'Time Span(s)')
        ac.setPosition(numSecondsSpinner, 0, appHeight - 20)
        ac.setSize(numSecondsSpinner, 100, 20)
        ac.setRange(numSecondsSpinner, 1, 10)
        ac.setValue(numSecondsSpinner, maxTimeSpan)
        ac.addOnValueChangeListener(numSecondsSpinner, updateMaxTimeRange)

        gPlotter = GPlotter(appWidth, appHeight, maxG, maxG)
        view = TractionCircleView(appWindow, model, gPlotter, MovingAveragePlotter(10) )
        updater = TractionCircleUpdater(assetto_corsa, view, model, maxTimeRange=maxTimeSpan)

        ac.addRenderCallback(appWindow, doUpdate)
    except Exception as e:
        ac.log(str(traceback.format_exc()))

    return "Traction Circle"
示例#4
0
def acMain(ac_version):
    global version, appName, mainApp, x_app_size, y_app_size, backgroundOpacity, customFontName

    try:
        debug("starting version " + version)

        mainApp = ac.newApp(appName)
        ac.setTitle(mainApp, "")
        ac.drawBorder(mainApp, 0)
        ac.setIconPosition(mainApp, 0, -10000)
        ac.setBackgroundOpacity(mainApp, backgroundOpacity)
#        ac.initFont(0, customFontName, 0, 0)
        ac.setSize(mainApp, x_app_size, y_app_size)
        ac.addOnAppActivatedListener(mainApp, onMainAppActivatedListener)
        ac.addOnAppDismissedListener(mainApp, onMainAppDismissedListener)
        ac.addRenderCallback(mainApp, onMainAppFormRender)

        getSettings()
        createUI()

        return appName

    except exception:
        debug(repr(traceback.format_exception(exc_type, exc_value, exc_traceback)))
        showMessage("Error: " + traceback.format_exc())
示例#5
0
def acMain(ac_version):
    global appWindow, label1, logPrefix, appName, cfg, ui_enableButton
    ac.console(logPrefix + "acMain")
    try:
        appWindow = ac.newApp(appName)

        cfg = Configuration()
        cfg.load()

        ac.setTitle(appWindow, "")
        ac.setSize(appWindow, 400, 200)
        ac.drawBorder(appWindow, 0)
        ac.setBackgroundOpacity(appWindow, 0)

        ac.addRenderCallback(appWindow, onRender)

        ui_enableButton = ac.addButton(appWindow, "Enable")
        ac.setPosition(ui_enableButton, 0, 30)
        ac.setSize(ui_enableButton, 70, 30)
        ac.addOnClickedListener(ui_enableButton, onEnableButtonClicked)

        label1 = ac.addLabel(appWindow, "____")
        ac.setPosition(label1, 0, 65)

        if cfg.enable > 0:
            ac.setText(ui_enableButton, "Disable")
            startTelemetry()

        ac.console(logPrefix + "Initialized")
    except:
        printExceptionInfo("acMain")

    return appName
示例#6
0
def acMain(ac_version): #app window init; global variables for later updating go here
    global appWindow
    appWindow = ac.newApp(appName)
    ac.setTitle(appWindow, appName)
    ac.setSize(appWindow, width, height)

    ac.log("z3D Gauge loaded")
    ac.console("z3D Gauge console test")

    ####################################################declaring gauge elements
    # gonna need new textures like
    # rpm_bar = ac.newTexture(app_path + theme_path + "rpm_bar.png")

    global l_kmph, l_rpm, l_gear, acceleration
    global ascii_RPM
    l_kmph = ac.addLabel(appWindow, "KMPH")
    l_rpm = ac.addLabel(appWindow, "RPM")
    l_gear = ac.addLabel(appWindow, "Current gear")
    ascii_RPM = ac.addLabel(appWindow, "")
    acceleration = ac.addLabel(appWindow, "")
    #l_TC = ac.addLabel(appWindow, "TC on/off")      #non-functional
    #l_ABS = ac.addLabel(appWindow, "ABS on/off")    #non-functional

    ac.setPosition(l_kmph, 3, 30)
    ac.setPosition(l_rpm, 3, 60)
    ac.setPosition(l_gear, 3, 80)
    ac.setPosition(ascii_RPM, 3, 160)
    ac.setPosition(acceleration, 3, 580)

    ac.addRenderCallback(appWindow, appGL) # -> links this app's window to an OpenGL render function

    return appName
示例#7
0
 def setup(self):
     ac.addRenderCallback(self.appWindow, onRender)
     ac.setSize(self.appWindow,333,424)
     ac.drawBorder(self.appWindow,0)
     ac.drawBackground(self.appWindow, 0)
     for el in self.uiElements:
         el.setup()
     self.setupButtons()
示例#8
0
def acMain(ac_version):
    try:
        global multiLapsApp, configApp, config
        global showHeader, fontSize, opacity, showBorder
        global lapDisplayedCount, showDelta, deltaColor, redAt, greenAt
        global reference, showCurrent, showReference, showTotal
        global updateTime, logLaps, logBest, lockBest
        global trackName, trackConf, carName, bestLapFile
        global nurbTourist

        if ac_version < 1.0:
            return "MultiLaps"

        config = configparser.ConfigParser()
        config.read("apps/python/MultiLaps/MultiLaps_config/config.ini")

        showHeader        = config.getint("SETTINGS", "showHeader")
        fontSize          = config.getint("SETTINGS", "fontSize")
        opacity           = config.getint("SETTINGS", "opacity")
        showBorder        = config.getint("SETTINGS", "showBorder")
        lapDisplayedCount = config.getint("SETTINGS", "lapDisplayedCount")
        showDelta         = config.getint("SETTINGS", "showDelta")
        deltaColor        = config.get("SETTINGS", "deltaColor")
        redAt             = config.getint("SETTINGS", "redAt")
        greenAt           = config.getint("SETTINGS", "greenAt")
        reference         = config.get("SETTINGS", "reference")
        showCurrent       = config.getint("SETTINGS", "showCurrent")
        showTotal         = config.getint("SETTINGS", "showTotal")
        showReference     = config.getint("SETTINGS", "showReference")
        updateTime        = config.getint("SETTINGS", "updateTime")
        logLaps           = config.getint("SETTINGS", "logLaps")
        logBest           = config.get("SETTINGS", "logBest")
        lockBest          = config.getint("SETTINGS", "lockBest")

        trackName = ac.getTrackName(0)
        trackConf = ac.getTrackConfiguration(0)
        carName = ac.getCarName(0)

        if trackConf == "":
            bestLapFile = "apps/python/MultiLaps/MultiLaps_bestlap/{0} - {1}.ini".format(
                trackName, carName)
        else:
            bestLapFile = "apps/python/MultiLaps/MultiLaps_bestlap/{0} [{1}] - {2}.ini".format(
                trackName, trackConf, carName)
        
        if trackName == "ks_nordschleife" and trackConf == "touristenfahrten":
            nurbTourist = True

        multiLapsApp = MultiLaps("MultiLaps", "Laps")
        multiLapsApp.refreshParameters()
        ac.addRenderCallback(multiLapsApp.window, onRenderCallback)
        
        configApp = MultiLaps_config("MultiLaps_config", "MultiLaps config", fontSizeConfig, 0)
        configApp.updateView()
        
        return "MultiLaps"
    except Exception as e:
        ac.log("MultiLaps: Error in acMain: %s" % e)
示例#9
0
def acMain(ac_version):
  try:
    deltabar_data.app_id = ac.newApp('deltabar')
    ac.addRenderCallback(deltabar_data.app_id, onRender)

    return deltabar_app.acMain(ac_version)
  except:
    log_error()
    raise
示例#10
0
def acMain(ac_version):
    global appWindow
    
    appWindow = ac.newApp("Analog Speedometer")
    ac.setTitle(appWindow, "")
    ac.setIconPosition(appWindow, 0, -10000)
    ac.setSize(appWindow, width, height)
    ac.drawBorder(appWindow, 0)

    ac.addRenderCallback(appWindow, drawNeedle)
示例#11
0
def acMain(ac_version):
	global appWindow, CamberIndicators, CheckBoxes, Buttons, Options, Labels, UIData
	loadOptions()
	appWindow = ac.newApp("CamberExtravaganza")
	ac.setSize(appWindow, 200, 200)
	ac.drawBorder(appWindow, 0)
	ac.setBackgroundOpacity(appWindow, 0)
	ac.setIconPosition(appWindow, 0, -10000)

	# Only enable rendering if app is activated
	ac.addOnAppActivatedListener(appWindow, onAppActivated)
	ac.addOnAppDismissedListener(appWindow, onAppDismissed)

	# Target Camber Labels
	Labels["target"] = ac.addLabel(appWindow, "Target:")
	ac.setPosition(Labels["target"], 85, 100)
	ac.setFontSize(Labels["target"], 10)
	Labels["targetCamberF"] = ac.addLabel(appWindow, "")
	ac.setPosition(Labels["targetCamberF"], 75, 76)
	ac.setFontSize(Labels["targetCamberF"], 24)
	Labels["targetCamberR"] = ac.addLabel(appWindow, "")
	ac.setPosition(Labels["targetCamberR"], 75, 105)
	ac.setFontSize(Labels["targetCamberR"], 24)

	# Options Checkbox
	CheckBoxes["options"] = ac.addCheckBox(appWindow, "Options")
	ac.setPosition(CheckBoxes["options"], 50, 225)
	ac.addOnCheckBoxChanged(CheckBoxes["options"], checkboxHandler)

	# Option Buttons
	uidata = [
		["drawGraphs", "Draw Graphs", drawGraphsHandler],
		["normalize", "Normalize", normalizeHandler],
		["useSpectrum", "Use Spectrum", useSpectrumHandler]
	]
	x = 50
	y = 255
	dy = 30
	for d in uidata:
		Buttons[d[0]] = ac.addButton(appWindow, d[1])
		ac.setPosition(Buttons[d[0]], x, y)
		ac.setSize(Buttons[d[0]], 100, 25)
		ac.addOnClickedListener(Buttons[d[0]], d[2])
		ac.setVisible(Buttons[d[0]], 0)
		y += dy

	# Get optimal camber from files
	loadTireData()

	CamberIndicators["FL"] = CamberIndicator(appWindow, 25, 75)
	CamberIndicators["FR"] = CamberIndicator(appWindow,125, 75)
	CamberIndicators["RL"] = CamberIndicator(appWindow, 25,175)
	CamberIndicators["RR"] = CamberIndicator(appWindow,125,175)
	ac.addRenderCallback(appWindow, onFormRender)
	return "CamberExtravaganza"
示例#12
0
def acMain(ac_version):
    global appWindow, Labels, gearSpacing, fontSize, gears, PxPer1000RPM, RPMdivs
    appWindow = ac.newApp("Reventach")
    ac.setSize(appWindow, appWidth, appHeight)
    ac.drawBorder(appWindow, 0)
    ac.setBackgroundOpacity(appWindow, 0)
    ac.setIconPosition(appWindow, 0, -10000)
    ac.setTitle(appWindow, "")

    # Only enable rendering if app is activated
    ac.addOnAppActivatedListener(appWindow, onAppActivated)
    ac.addOnAppDismissedListener(appWindow, onAppDismissed)

    loadCarData()
    PxPer1000RPM = 1000 * appHeight / CarData["maxRPM"]
    RPMdivs = CarData["maxRPM"] // 10000 + 1
    #~ fontSize = PxPer1000RPM * 0.5 * RPMdivs
    fontSize = appHeight / 15

    y = appHeight - PxPer1000RPM * RPMdivs
    count = RPMdivs
    while y > -1:
        dx = (appHeight - y) / lineSlope
        Labels["rpmL" + str(count)] = ac.addLabel(appWindow, str(count))
        ac.setPosition(Labels["rpmL" + str(count)], dx - fontSize,
                       y - fontSize / 2)
        ac.setFontSize(Labels["rpmL" + str(count)], fontSize)
        ac.setFontAlignment(Labels["rpmL" + str(count)], "center")
        Labels["rpmR" + str(count)] = ac.addLabel(appWindow, str(count))
        ac.setPosition(Labels["rpmR" + str(count)], appWidth - dx + fontSize,
                       y - fontSize / 2)
        ac.setFontSize(Labels["rpmR" + str(count)], fontSize)
        ac.setFontAlignment(Labels["rpmR" + str(count)], "center")

        if y < PxPer1000RPM * RPMdivs - 1:
            ac.setFontColor(Labels["rpmL" + str(count)], 0.7, 0.0, 0.0, 0.9)
            ac.setFontColor(Labels["rpmR" + str(count)], 0.7, 0.0, 0.0, 0.9)

        y -= (PxPer1000RPM * RPMdivs)
        count += RPMdivs

    for n in range(CarData["totalGears"]):
        gears.insert(0, str(n + 1))

    gearSpacing = appHeight / (CarData["totalGears"] + 2)
    fontSize = gearSpacing * 0.8

    for n, c in enumerate(gears):
        Labels["gear" + c] = ac.addLabel(appWindow, c)
        ac.setPosition(Labels["gear" + c], appWidth / 2, (n * gearSpacing))
        ac.setFontSize(Labels["gear" + c], fontSize)
        ac.setFontAlignment(Labels["gear" + c], "center")

    ac.addRenderCallback(appWindow, onFormRender)
    return "Reventach"
示例#13
0
    def setup(self):
        ac.addRenderCallback(self.appWindow, onRender)
        ac.setSize(self.appWindow, 800, 100)
        ac.drawBorder(self.appWindow, 0)
        ac.drawBackground(self.appWindow, 0)
        for el in self.uiElements:
            el.setup()

        ac.setPosition(self.graph, 0, 100)
        ac.setSize(self.graph, 800, 100)
        ac.setRange(self.graph, 0.0, 600, 2000)
示例#14
0
def acMain(ac_version):
    global rpm_display, boost_display, gear_display, speed_display, fuel_display
    global min_rpm_spinner_Label, min_rpm_spinner, max_rpm_spinner_Label, max_rpm_spinner, settings_box_Label
    global units_spinner_Label, units_spinner
    global rpm_tag, speed_tag, boost_tag, fuel_tag

    appWindow = ac.newApp("RevHunterSkunkworks")
    ac.setTitle(appWindow, " ")
    ac.setSize(appWindow, windowx, windowy)
    ac.drawBorder(appWindow, 0)
    ac.setBackgroundOpacity(appWindow, 0)
    ac.addRenderCallback(appWindow, onFormRender)

    rpm_display = Label(appWindow, "").setSize(0, 0).setPosition(
        (2.05 * windowx / 3),
        (1.05 * windowy / 3)).setFontSize(50).setFontAlign("right")
    gear_display = Label(appWindow).setSize(0, 0).setPosition(
        (windowx / 2), -50).setFontSize(140).setFontAlign("center")
    speed_display = Label(appWindow, "").setSize(0, 0).setPosition(
        (1.25 * windowx / 3),
        (1.05 * windowy / 3)).setFontSize(50).setFontAlign("right")
    fuel_display = Label(appWindow, "").setSize(0, 0).setPosition(
        (0.8 * windowx / 3),
        (1.25 * windowy / 3)).setFontSize(35).setFontAlign("right")
    settings_box_Label = Label(appWindow, "").setSize(0, 0).setPosition(
        940, 83).setFontSize(15).setFontAlign("left")

    rpm_tag = Label(appWindow, "").setText("RPM").setSize(0, 0).setPosition(
        (2.06 * windowx / 3),
        (2.1 * windowy / 3)).setFontSize(15).setFontAlign("left")
    speed_tag = Label(appWindow, "").setText("MPH").setSize(0, 0).setPosition(
        (1.26 * windowx / 3),
        (2.1 * windowy / 3)).setFontSize(15).setFontAlign("left")
    fuel_tag = Label(appWindow, "").setText("%FUEL").setSize(0, 0).setPosition(
        (0.81 * windowx / 3),
        (1.9 * windowy / 3)).setFontSize(15).setFontAlign("left")

    min_rpm_spinner = ac.addSpinner(appWindow, "Min %RPM")
    spinnerConfig(min_rpm_spinner, 0, 125, 80, 20, 0, 1, 100, 80, setMinRPM, 0)
    max_rpm_spinner = ac.addSpinner(appWindow, "Max %RPM")
    spinnerConfig(max_rpm_spinner, 100, 125, 80, 20, 90, 1, 100, 97, setMaxRPM,
                  0)

    units_spinner = ac.addSpinner(appWindow, "Units")
    spinnerConfig(units_spinner, 200, 125, 80, 20, 1, 1, 2, 1, setUnits, 0)

    settings_box = ac.addCheckBox(appWindow, "")
    ac.setPosition(settings_box, 950, 95)
    ac.setSize(settings_box, 10, 10)

    ac.addOnCheckBoxChanged(settings_box, toggle_settings_visiblity)

    return "RevHunterSkunkworks"
def acMain(ac_version):
	global appWindow, timeLabel
	appWindow=ac.newApp("Time")
	ac.setTitle(appWindow,"Time")
	ac.setSize(appWindow,160,60)
	ac.drawBorder(appWindow,0)
	ac.setBackgroundOpacity(appWindow,0)
	theTime=datetime.now()
	timeLabel=ac.addLabel(appWindow, "{}".format(theTime.strftime("%H:%M")))
	ac.setPosition(timeLabel,70,30)
	ac.addRenderCallback(appWindow , onFormRender)
	return "Time"
示例#16
0
def acMain(ac_version):
  global fuelUsage
  appWindow = ac.newApp("Fuel Usage")
  ac.drawBackground(appWindow, background)  
  ac.drawBorder(appWindow, background)
  ac.setBackgroundOpacity(appWindow, background)
  ac.setSize(appWindow, x_app_size, y_app_size)
  fuelUsage = Fuel_Usage(appWindow, x_start, y_start)  
  ac.addRenderCallback(appWindow, onFormRender)
  
  ac.log("Fuel Usage App loaded")
  return "Fuel Usage App"
示例#17
0
 def __init__(self, name, tyre=None, render_function=None):
     self.window = ac.newApp(name)
     self.tyre = tyre
     ac.setIconPosition(self.window, 9999999, 99999999)  # hide the icon
     ac.setSize(self.window, TyreWindow.width, TyreWindow.height)
     self.opt_label = ac.addLabel(self.window, "Opt:")
     ac.setPosition(self.opt_label, 5, 50)
     self.slip_label = ac.addLabel(self.window, "Slip:\nSkid:")
     ac.setPosition(self.slip_label, 5, 70)
     self.starting_label_no = ac.addLabel(self.window, "")
     ac.addRenderCallback(self.window, render_function)
     ac.setFontSize(self.starting_label_no, 25)
     ac.setPosition(self.starting_label_no, 35, 20)
示例#18
0
def acMain(ac_version):
  # DEBUG
  t = threading.Thread(target=pyroserver)
  t.daemon = True
  t.start()

  try:
    deltabar_data.app_id = ac.newApp('deltabar')
    ac.addRenderCallback(deltabar_data.app_id, onRender)

    return deltabar_lib.deltabar_lib.deltabar_app.acMain(ac_version)
  except:
    log_error()
    raise
def acMain(ac_version):
  # DEBUG
  t = threading.Thread(target=pyroserver)
  t.daemon = True
  t.start()

  try:
    hot_app_data.app_id = ac.newApp('hot_app')
    ac.addRenderCallback(hot_app_data.app_id, onRender)

    return hot_app_lib.hot_app_lib.my_hot_app.acMain(ac_version)
  except:
    log_error()
    raise
示例#20
0
def acMain(ac_version):
    # DEBUG
    t = threading.Thread(target=pyroserver)
    t.daemon = True
    t.start()

    try:
        hot_app_data.app_id = ac.newApp('hot_app')
        ac.addRenderCallback(hot_app_data.app_id, onRender)

        return hot_app_lib.hot_app_lib.my_hot_app.acMain(ac_version)
    except:
        log_error()
        raise
def acMain(ac_version):  #----------------------------- App window Init

    # Don't forget to put anything you'll need to update later as a global variables
    global appWindow  # <- you'll need to update your window in other functions.

    appWindow = ac.newApp(appName)
    ac.setTitle(appWindow, appName)
    ac.setSize(appWindow, width, height)

    ac.addRenderCallback(
        appWindow,
        appGL)  # -> links this app's window to an OpenGL render function

    return appName
def init():
    """Add the info window/app."""
    global info_telemetry
    window_info = ac.newApp("Info")
    ac.setSize(window_info, 160, 205)
    ac.addRenderCallback(window_info, render_app)

    info_telemetry = TelemetryProvider()
    compound_label = CompoundLabel(info_telemetry)
    optimum_temps_label = OptimumTempsLabel(info_telemetry)
    abs_label = ABSLabel(info_telemetry)
    tc_label = TractionControlLabel(info_telemetry)

    lateral_force_label = LateralForceLabel(info_telemetry)
    transverse_force_label = TransverseForceLabel(info_telemetry)

    drs_image_label = DRSImageLabel(info_telemetry)
    abs_image_label = ABSImageLabel(info_telemetry)
    tc_image_label = TCImageLabel(info_telemetry)

    background_label = BackgroundLabel()

    for label in (compound_label, optimum_temps_label, abs_label, tc_label,
                  lateral_force_label, transverse_force_label, drs_image_label,
                  abs_image_label, tc_image_label, background_label):
        label.window = window_info

    # Prepei na mpei teleytaio gia na fortwnei meta to prasino eikonidio gia na
    # kratietai to diafano...
    car_name = ac.getCarName(0)
    car_upgrade = ''
    if car_name.endswith(('_s1', '_s2', '_s3', '_drift', '_dtm')):
        car_upgrade = car_name.split('_')[-1]
    car_upgrade_img_path = os.path.join(
        APP_DIR, "Images/Info{}.png".format(car_upgrade or 'STD'))
    background_label.bg_texture = car_upgrade_img_path

    image_arrow_left = LeftLateralForceImage(
        info_telemetry, pos_x=131, pos_y=147, width=20, height=20,
        color=(1, 1, 0, 1), filename='arrowLeft.png')
    image_arrow_right = RightLateralForceImage(
        info_telemetry, pos_x=132, pos_y=147, width=20, height=20,
        color=(1, 1, 0, 1), filename='arrowRight.png')
    image_arrow_up = PositiveTransverseForceImage(
        info_telemetry, pos_x=104, pos_y=119, width=20, height=20,
        color=(1, 1, 0, 1), filename='arrowUp.png')
    image_arrow_down = NegativeTransverseForceImage(
        info_telemetry, pos_x=104, pos_y=120, width=20, height=20,
        color=(1, 1, 0, 1), filename='arrowDown.png')
示例#23
0
def acMain(ac_version):
    global app_speedometer, speedometer

    app_name = "ACRM"
    x = 200
    y = 200
    w = 450
    h = 300

    # Speedometer
    app_speedometer = gui.App(app_name, x, y, w, h)
    speedometer = gui.Speedometer(app_speedometer.app, w, h)

    app_speedometer.children.append(speedometer)

    ac.addRenderCallback(app_speedometer.app, glRender)

    return app_name
示例#24
0
def acMain(ac_version):
    """Main function that is invoked by Assetto Corsa."""
    global app_window
    app_window = ac.newApp("")
    ac.setSize(app_window, 343, 78)
    ac.drawBorder(app_window, 0)
    app_dir = os.path.dirname(os.path.realpath(__file__))
    ac.setBackgroundTexture(app_window, app_dir + "/Images/Dashboard.png")
    ac.addRenderCallback(app_window, render_app)

    CAR.name = ac.getCarName(0)
    dashboard_elements.init(MAIN_APP_TELEMETRY, app_window, CAR.name)

    tyre_apps.init(MAIN_APP_TELEMETRY)
    info_app.init()

    threading.Thread(target=read_static_shared_memory).start()

    return "AC Dashboard"
示例#25
0
def acMain(ac_version):
    """Run upon startup of Assetto Corsa.
    
    Args:
        ac_version (str): Version of Assetto Corsa.
            AC passes this argument automatically.
    """
    # Read config
    global cfg
    cfg = Config()

    # Initialize session data object
    global session
    session = Session(cfg)

    # Set up app window
    global app_window
    app_window = AppWindow(cfg)
    ac.addRenderCallback(app_window.id, app_render)

    # Initialize fonts
    ac.initFont(0, 'ACRoboto300', 0, 0)
    ac.initFont(0, 'ACRoboto700', 0, 0)

    # Set up labels
    global label_speed, label_gear
    label_speed = ACLabel(app_window.id, font='ACRoboto300', alignment='center')
    label_speed.fit_height(
        Point(cfg.app_width * 0.5,
              cfg.app_height * cfg.app_padding),
        cfg.app_scale * 100)

    # Speed unit selection
    if cfg.use_kmh:
        label_speed.set_postfix(" km/h")
    else:
        label_speed.set_postfix(" mph")

    label_gear = ACLabel(app_window.id, font='ACRoboto700', alignment='center')
    label_gear.fit_height(
        Point(cfg.app_width * 0.5,
              cfg.app_scale * 200),
        cfg.app_scale * 250)
示例#26
0
def acMain(ac_version):
    global appWindow, flag_textures

    # Initialise app
    appWindow = ac.newApp(APP_NAME)
    ac.setSize(appWindow, WINDOW_WIDTH, WINDOW_HEIGHT)
    ac.setIconPosition(appWindow, 0, -999999)
    ac.setTitle(appWindow, " ")
    ac.drawBorder(appWindow, 0)
    ac.setBackgroundOpacity(appWindow, NO_FLAG_BACKGROUND_OPACITY)
    ac.addRenderCallback(appWindow, onWindowRender)

    # Load flag textures
    flag_textures = {
        flag_value: ac.newTexture(TEXTURE_DIR + flag.texture)
        for flag_value, flag in FLAGS.items()
    }

    return APP_NAME
示例#27
0
def acMain(ac_version):
    try:
        global appHeight, appWidth, appWindow, flLabel, frLabel, rlLabel, rrLabel, upperDistance, distanceFromLeft, tyreWidth, tyreHeight
        distanceFromLeft = tyreWidth * 3
        upperDistance = distanceFromLeft
        appWindow = ac.newApp("Traction Loss")
        appWidth = distanceFromLeft * 2 + tyreWidth * 3
        appHeight = upperDistance * 2 + tyreHeight * 3
        ac.setSize(appWindow, appWidth, appHeight)
        define_tachometer()
        if debug:
            create_debug_labels()

        #ac.drawBorder(appWindow, 0)
        ac.addRenderCallback(appWindow, on_update)

        return "Traction Loss"
    except Exception as e:
        ac.console("TractionLoss: Error in function acMain(): %s" % e)
        ac.log("TractionLoss: Error in function acMain(): %s" % e)
示例#28
0
def acMain(ac_version):
    global appWindow, appName, logPrefix, flag1Label, flag2Label, flag3Label
    global cfg_flag1Image
    global cfg_flag2Image
    global cfg_flag3Image
    global cfg_flagWidth, cfg_flagHeight

    ac.console(logPrefix + "acMain")
    try:
        appWindow = ac.newApp(appName)
        ac.setTitle(appWindow, "")
        ac.setIconPosition(appWindow, -7000, -3000)
        ac.setSize(appWindow, cfg_flagWidth, cfg_flagHeight + 30)
        ac.drawBorder(appWindow, 0)
        ac.setBackgroundOpacity(appWindow, 0)

        flag1Label = ac.addLabel(appWindow, "")
        ac.setPosition(flag1Label, 0, 30)
        ac.setSize(flag1Label, cfg_flagWidth, cfg_flagHeight)
        ac.setBackgroundTexture(flag1Label, cfg_flag1Image)
        ac.setVisible(flag1Label, 0)

        flag2Label = ac.addLabel(appWindow, "")
        ac.setPosition(flag2Label, 0, 30)
        ac.setSize(flag2Label, cfg_flagWidth, cfg_flagHeight)
        ac.setBackgroundTexture(flag2Label, cfg_flag2Image)
        ac.setVisible(flag2Label, 0)

        flag3Label = ac.addLabel(appWindow, "")
        ac.setPosition(flag3Label, 0, 30)
        ac.setSize(flag3Label, cfg_flagWidth, cfg_flagHeight)
        ac.setBackgroundTexture(flag3Label, cfg_flag3Image)
        ac.setVisible(flag3Label, 0)

        ac.addRenderCallback(appWindow, onRender)
        ac.console(logPrefix + "Initialized")
    except:
        ac.console(logPrefix + "Initialize failed:", sys.exc_info()[0])

    return appName
示例#29
0
def acMain(ac_version):
    global appWindow, carCount, playerModule1, cars
    ac.log("trainingHelper - start")
    ac.console("trainingHelper - start")
    appWindow = ac.newApp("Training Helper")
    ac.setSize(appWindow, 400, 400)
    ac.drawBorder(appWindow, 0)
    ac.setBackgroundOpacity(appWindow, 0)
    ac.setFontSize(appWindow, 15)
    generalData = getGeneralData()
    carCount = generalData['carCount']
    playerModule1 = Module1(
        appWindow,
        generalData['trackName'] + generalData['trackConfiguration'], carCount)
    for i in range(carCount):
        playerData = getGeneralDataForCar(i)
        car = Car(playerData['carName'], playerData['driverName'], i)
        cars.append(car)
    #ac.log(playerData['carName'])
    #ac.setText(playerModule1.labelCarName, "{0}".format(playerData['carName']))
    ac.addRenderCallback(appWindow, onFormRender)
    return "Training Helper"
def acMain(ac_version):
    global rpm_display, boost_display, gear_display, speed_display, fuel_display
    global min_rpm_spinner_Label, min_rpm_spinner, max_rpm_spinner_Label, max_rpm_spinner, settings_box_Label
    global units_spinner_Label, units_spinner
    global rpm_tag, speed_tag, boost_tag, fuel_tag

    appWindow=ac.newApp("RevHunterSkunkworks")
    ac.setTitle(appWindow, " ")
    ac.setSize(appWindow,windowx,windowy)
    ac.drawBorder(appWindow,0)
    ac.setBackgroundOpacity(appWindow,0)
    ac.addRenderCallback(appWindow, onFormRender)

    rpm_display  = Label(appWindow, "").setSize(0,0).setPosition((2.05*windowx/3),(1.05*windowy/3)).setFontSize(50).setFontAlign("right")
    gear_display = Label(appWindow).setSize(0,0).setPosition((windowx / 2),-50).setFontSize(140).setFontAlign("center")
    speed_display= Label(appWindow, "").setSize(0,0).setPosition((1.25*windowx/3),(1.05*windowy/3)).setFontSize(50).setFontAlign("right")
    fuel_display = Label(appWindow, "").setSize(0,0).setPosition((0.8*windowx/3),(1.25*windowy/3)).setFontSize(35).setFontAlign("right")
    settings_box_Label = Label(appWindow, "").setSize(0,0).setPosition(940,83).setFontSize(15).setFontAlign("left")

    rpm_tag = Label(appWindow, "").setText("RPM").setSize(0,0).setPosition((2.06*windowx/3),(2.1*windowy/3)).setFontSize(15).setFontAlign("left")
    speed_tag=Label(appWindow, "").setText("MPH").setSize(0,0).setPosition((1.26*windowx/3),(2.1*windowy/3)).setFontSize(15).setFontAlign("left")
    fuel_tag = Label(appWindow, "").setText("%FUEL").setSize(0,0).setPosition((0.81*windowx/3),(1.9*windowy/3)).setFontSize(15).setFontAlign("left")

    min_rpm_spinner = ac.addSpinner(appWindow, "Min %RPM")
    spinnerConfig(min_rpm_spinner,0,125,80,20,0,1,100,80,setMinRPM,0)
    max_rpm_spinner = ac.addSpinner(appWindow, "Max %RPM")
    spinnerConfig(max_rpm_spinner,100,125,80,20,90,1,100,97,setMaxRPM,0)

    units_spinner = ac.addSpinner(appWindow, "Units")
    spinnerConfig(units_spinner,200,125,80,20,1,1,2,1,setUnits,0)

    settings_box = ac.addCheckBox(appWindow, "")
    ac.setPosition(settings_box,950,95)
    ac.setSize(settings_box,10,10)

    ac.addOnCheckBoxChanged(settings_box,toggle_settings_visiblity)

    return "RevHunterSkunkworks"
示例#31
0
def acMain(ac_version):
    import time

    global appWindow, hSession, dbgLabel, texture_radar, texture_indicator_left, texture_indicator_right, z
    ac.log("helipicapew::acMain Start {}".format(time.localtime(time.time())))
    try:
        import helipicapewconfig
        helipicapewconfig.handleIni('helipicapew')

        z = helipicapewcar.guiZoomFactor

        appWindow = ac.newApp("helipicapew")
        ac.setSize(appWindow, 200 * z, 200 * z)
        ac.drawBorder(appWindow, 0)
        ac.setBackgroundOpacity(appWindow, 0)
        ac.setTitle(appWindow, "helipicapew v{}".format(version))

        ac.addRenderCallback(appWindow, onFormRender)
        ac.addOnAppActivatedListener(appWindow, onAppActivated)
        appWindowActivated = time.clock()
        showWindowTitle = True

        dbgLabel = ac.addLabel(appWindow, "")
        ac.setPosition(dbgLabel, 15, 405)

        texture_radar = ac.newTexture("apps/python/helipicapew/img/radar.png")
        texture_indicator_left = ac.newTexture(
            "apps/python/helipicapew/img/indicatorL.png")
        texture_indicator_right = ac.newTexture(
            "apps/python/helipicapew/img/indicatorR.png")

        hSession = helipicapewsession.HeliPicaPewSession()

        ac.log("helipicapew::acMain finished")

    except Exception as e:
        ac.log("helipicapew::acMain() %s" % e)
    return "helipicapew"
示例#32
0
def acMain(ac_version):
    global TYREINFO, optimal_spinner_id, optimal_spinner_shown
    appWindow = ac.newApp("Tyre Temperatures")
    ac.drawBackground(appWindow, background)
    ac.drawBorder(appWindow, background)
    ac.setBackgroundOpacity(appWindow, background)
    ac.setSize(appWindow, x_app_size, y_app_size)
    TYREINFO = Tyre_Info(appWindow, x_start, y_start)
    ac.addRenderCallback(appWindow, onFormRender)

    TYREINFO.optimal_temp = d_optimal_temp
    TYREINFO.carinifilepath = inidir + getValidFileName(
        ac.getCarName(0)) + ".ini"
    TYREINFO.needwriteini = 1

    if os.path.exists(TYREINFO.carinifilepath):
        f = open(TYREINFO.carinifilepath, "r")
        TYREINFO.optimal_temp = int(f.readline()[8:])
        f.close()
        TYREINFO.needwriteini = 0

    optimal_spinner_id = ac.addSpinner(appWindow, "optimal")
    ac.setPosition(optimal_spinner_id, 0, y_app_size + 28)
    ac.setStep(optimal_spinner_id, 1)
    if inFahrenheit:
        ac.setRange(optimal_spinner_id, int(CelsiusToFahrenheit(50)),
                    int(CelsiusToFahrenheit(150)))
        ac.setValue(optimal_spinner_id,
                    int(CelsiusToFahrenheit(TYREINFO.optimal_temp)))
    else:
        ac.setRange(optimal_spinner_id, 50, 150)
        ac.setValue(optimal_spinner_id, TYREINFO.optimal_temp)
    ac.addOnValueChangeListener(optimal_spinner_id, onValueChanged)
    optimal_spinner_shown = 1

    ac.log("Danny Giusa Tyre Temperatures loaded")
    return "Danny Giusa Tyre Temperatures"
示例#33
0
    def render_callback(self, render_callback):
        self._render_callback = render_callback

        if self._ac_obj is not None:
            ac.addRenderCallback(self._ac_obj, self._render_callback)
示例#34
0
 def setRenderCallback(self, callback):
     self._callback = callback
     ac.addRenderCallback(self.ac_obj, callback)
示例#35
0
文件: classes.py 项目: acclub/apps
	def onRenderCallback(self, func):
		ac.addRenderCallback(self.app, func)
		return self
def acMain(ac_version):
	global imperial, debug_mode, window_x_pos, window_y_pos, tyre_mon_xpos, tyre_mon_ypos
	global gear_color, gear_background, speed_color, speed_background, throttle_gauge_color, brake_gauge_color, clutch_gauge_color, boost_bar_color, fuel_bar_color
	global draw_digital_speedo, draw_shift_light, draw_gear_indicator, draw_speedometer, draw_tachometer, draw_odometer, draw_g_meter, draw_boost_gauge
	global draw_fuel_gauge, draw_throttle_gauge, draw_brake_gauge, draw_clutch_gauge, draw_tyre_monitor, draw_background
	global tach_needle_end, speedo_needle_end, tach_radius, speedo_radius, rpm_pivot_y, speed_pivot_y, rpm_pivot_x, speed_pivot_x, speedo_tl_x, speedo_tl_y
	global speedo_total_width, speedo_total_height
	global tach_redline_color, tach_bigline_color, tach_smallline_color, tach_needle_color1
	global speedo_bigline_color, speedo_smallline_color, speedo_needle_color1
	global throttle_gauge_inner_radius, throttle_gauge_outer_radius, throttle_gauge_min_y, throttle_gauge_max_y
	global brake_gauge_inner_radius, brake_gauge_outer_radius, brake_gauge_min_y, brake_gauge_max_y
	global clutch_gauge_inner_radius, clutch_gauge_outer_radius, clutch_gauge_min_y, clutch_gauge_max_y
	global throttle_gauge_root_x, throttle_gauge_root_y
	global brake_gauge_root_x, brake_gauge_root_y
	global clutch_gauge_root_x, clutch_gauge_root_y
	global throttle_gauge_right, brake_gauge_right, clutch_gauge_right
	global boost_radius, fuel_radius, boost_pivot_y, fuel_pivot_y, boost_pivot_x, fuel_pivot_x, boost_needle_end, fuel_needle_end, boost_needle_color, fuel_needle_color
	global odometer_fg, odometer_bg, g_meter_range, g_meter_x_anchor, g_meter_y_anchor, g_meter_opacity, window_width, window_height, background_image_path, background_image_path_noboost
	global tyre_monitor_opacity, g_meter_opacity
	global window, debug_label, indicated_max_rpm
	global flt_label1, frt_label1, rlt_label1, rrt_label1
	global flt_label2, frt_label2, rlt_label2, rrt_label2
	global fuel_warning_label
	global config
	global telemetry_client
	global draw_abs_status, draw_tcs_status, abs_label, abs_off_label, tcs_label, tcs_off_label
	global gear_x, gear_y, shift_light_x, shift_light_y, shift_light_radius, gear_width, gear_height
	global tach_min_angle, tach_max_angle, speedo_min_angle, speedo_max_angle
	global shift_light_on_color, shift_light_off_color
	global rpms_file
	config_file = configparser.ConfigParser()
	config_file.read('apps/python/AnalogInstruments/settings.ini')
	config = config_file[config_file['settings']['theme']]
	rpms_file = configparser.ConfigParser()
	rpms_file.read('apps/python/AnalogInstruments/rpms.ini')

	# SETTINGS #

	# Change this to 'True' to have speed measured in MPH
	imperial = config.getboolean('imperial')
	# Debug mode (basically just some numbers)
	debug_mode = config.getboolean('debug_mode')
	# Main window positions, change those if you're not using a single monitor 1080p setup
	window_x_pos  = int(config['window_x_pos'])# (Your horz. res-1320)/2
	window_y_pos  = int(config['window_y_pos']) # Your vert. res - 250
	# These are relative to the window's position
	tyre_mon_xpos = int(config['tyre_mon_x_pos'])# 20 px from the left on single mon 1080p
	tyre_mon_ypos = int(config['tyre_mon_y_pos'])# 920 px from the top
	# Color settings
	gear_color           = parse_color(config['gear_color'])
	gear_background      = parse_color(config['gear_background'])
	speed_color          = parse_color(config['digi_speedo_color'])
	speed_background     = parse_color(config['digi_speedo_background'])
	throttle_gauge_color = parse_color(config['throttle_gauge_color'])
	brake_gauge_color    = parse_color(config['brake_gauge_color'])
	clutch_gauge_color   = parse_color(config['clutch_gauge_color'])
	boost_bar_color      = parse_color(config['boost_bar_color']) 
	fuel_bar_color       = parse_color(config['fuel_bar_color'])
	shift_light_on_color = parse_color(config['shift_light_on_color'])
	shift_light_off_color = parse_color(config['shift_light_off_color'])
	# Some more settings, hopefully pretty self-explanatory
	draw_digital_speedo = config.getboolean('draw_digital_speedo')
	draw_shift_light    = config.getboolean('draw_shift_light')
	draw_gear_indicator = config.getboolean('draw_gear_indicator')
	draw_speedometer    = config.getboolean('draw_speedometer')
	draw_tachometer     = config.getboolean('draw_tachometer')
	draw_odometer       = config.getboolean('draw_odometer')
	draw_g_meter        = config.getboolean('draw_g_meter')
	draw_boost_gauge    = config.getboolean('draw_boost_gauge')
	draw_fuel_gauge     = config.getboolean('draw_fuel_gauge')
	draw_throttle_gauge = config.getboolean('draw_throttle_gauge')
	draw_brake_gauge    = config.getboolean('draw_brake_gauge')
	draw_clutch_gauge   = config.getboolean('draw_clutch_gauge')
	draw_tyre_monitor   = config.getboolean('draw_tyre_monitor')
	draw_background     = config.getboolean('draw_background')
	draw_abs_status     = config.getboolean('draw_abs_status')
	draw_tcs_status     = config.getboolean('draw_tcs_status')

	# Dimensions of things, mess with those at your own risk
	tach_needle_end     = int(config['tach_needle_end'])
	speedo_needle_end   = int(config['speedo_needle_end'])
	tach_radius         = int(config['tach_radius'])
	speedo_radius       = int(config['speedo_radius'])
	rpm_pivot_y         = int(config['tach_y_anchor'])
	speed_pivot_y       = int(config['speedo_y_anchor'])
	rpm_pivot_x         = int(config['tach_x_anchor'])
	speed_pivot_x       = int(config['speedo_x_anchor'])
	speedo_tl_x         = int(config['digi_speedo_x'])
	speedo_tl_y         = int(config['digi_speedo_y'])
	speedo_total_width  = int(config['digi_speedo_width'])
	speedo_total_height = int(config['digi_speedo_height'])
	tach_min_angle      = int(config['tach_min_angle'])
	tach_max_angle      = int(config['tach_max_angle'])
	speedo_min_angle    = int(config['speedo_min_angle'])
	speedo_max_angle    = int(config['speedo_max_angle'])

	tach_redline_color = parse_color(config['tach_redline_color'])
	tach_bigline_color = parse_color(config['tach_bigline_color'])
	tach_smallline_color = parse_color(config['tach_smallline_color'])
	tach_needle_color1 = parse_color(config['tach_needle_color1'])

	speedo_bigline_color = parse_color(config['speedo_bigline_color'])
	speedo_smallline_color = parse_color(config['speedo_smallline_color'])
	speedo_needle_color1 = parse_color(config['speedo_needle_color1'])

	# G-Meter: 500-820
	# Brake/Throttle Max Y: 70 Min: 160
	throttle_gauge_inner_radius = int(config['throttle_gauge_inner_radius'])
	throttle_gauge_outer_radius = int(config['throttle_gauge_outer_radius'])
	throttle_gauge_min_y        = int(config['throttle_gauge_min_y'])
	throttle_gauge_max_y        = int(config['throttle_gauge_max_y'])
	throttle_gauge_root_x       = int(config['throttle_gauge_root_x'])
	throttle_gauge_root_y       = int(config['throttle_gauge_root_y'])
	throttle_gauge_right        = config.getboolean('throttle_gauge_right')
	
	brake_gauge_inner_radius = int(config['brake_gauge_inner_radius'])
	brake_gauge_outer_radius = int(config['brake_gauge_outer_radius'])
	brake_gauge_min_y        = int(config['brake_gauge_min_y'])
	brake_gauge_max_y        = int(config['brake_gauge_max_y'])
	brake_gauge_root_x       = int(config['brake_gauge_root_x'])
	brake_gauge_root_y       = int(config['brake_gauge_root_y'])
	brake_gauge_right        = config.getboolean('brake_gauge_right')
	
	clutch_gauge_inner_radius = int(config['clutch_gauge_inner_radius'])
	clutch_gauge_outer_radius = int(config['clutch_gauge_outer_radius'])
	clutch_gauge_min_y        = int(config['clutch_gauge_min_y'])
	clutch_gauge_max_y        = int(config['clutch_gauge_max_y'])
	clutch_gauge_root_x       = int(config['clutch_gauge_root_x'])
	clutch_gauge_root_y       = int(config['clutch_gauge_root_y'])
	clutch_gauge_right        = config.getboolean('clutch_gauge_right')


	boost_radius     = int(config['boost_radius'])
	fuel_radius      = int(config['fuel_radius'])
	boost_pivot_y    = int(config['boost_y_anchor'])
	fuel_pivot_y     = int(config['fuel_y_anchor'])
	boost_pivot_x    = int(config['boost_x_anchor'])
	fuel_pivot_x     = int(config['fuel_x_anchor'])
	boost_needle_end = int(config['boost_needle_end'])
	fuel_needle_end  = int(config['fuel_needle_end'])
	boost_needle_color = parse_color(config['boost_needle_color'])
	fuel_needle_color = parse_color(config['fuel_needle_color'])


	odometer_fg = parse_color(config['odometer_foreground'])
	odometer_bg = parse_color(config['odometer_background'])

	tyre_monitor_opacity = float(config['tyre_monitor_opacity'])

	g_meter_range = int(config['g_meter_range'])
	g_meter_x_anchor = int(config['g_meter_x_anchor'])
	g_meter_y_anchor = int(config['g_meter_y_anchor'])
	g_meter_opacity = float(config['g_meter_opacity'])
	
	gear_x = int(config['gear_x'])
	gear_y = int(config['gear_y'])
	gear_width = int(config['gear_width'])
	gear_height = int(config['gear_height'])
	shift_light_x = int(config['shift_light_x'])
	shift_light_y = int(config['shift_light_y'])
	shift_light_radius = int(config['shift_light_radius'])

	# Kind of configurable but you'll have change most of the dimensions above so not recommended
	window_width  = int(config['window_width'])
	window_height = int(config['window_height'])
	background_image_path = config['background_path']
	background_image_path_noboost = config['background_noboost_path']
	abs_img = config['abs_img']
	abs_off_img = config['abs_off_img']
	tcs_img = config['tcs_img']
	tcs_off_img = config['tcs_off_img']
	window = ac.newApp("AnalogInstruments")
	ac.setTitle(window," ")
	ac.setBackgroundOpacity(window,0)
	ac.drawBorder(window,0)
	ac.setIconPosition(window,0,-10000)
	if draw_background:
		ac.drawBackground(window,1)
		ac.setBackgroundTexture(window,background_image_path)
	ac.setSize(window,window_width,window_height)
	ac.setPosition(window,window_x_pos,window_y_pos)
	debug_label = ac.addLabel(window,"")
	ac.setPosition(debug_label,20,window_height/10*9)
	ac.addRenderCallback(window,onWindowRender)
	# Setting up the tyre monitor labels (this can be done here because it doesn't depend on any car info)
	if draw_tyre_monitor:
		flt_label1 = ac.addLabel(window," ")
		ac.setPosition(flt_label1,tyre_mon_xpos+37,tyre_mon_ypos+5)
		flt_label2 = ac.addLabel(window," ")
		ac.setPosition(flt_label2,tyre_mon_xpos+37,tyre_mon_ypos+37)
		frt_label1 = ac.addLabel(window," ")
		ac.setPosition(frt_label1,tyre_mon_xpos+117,tyre_mon_ypos+5)
		frt_label2 = ac.addLabel(window," ")
		ac.setPosition(frt_label2,tyre_mon_xpos+117,tyre_mon_ypos+37)
		rlt_label1 = ac.addLabel(window," ")
		ac.setPosition(rlt_label1,tyre_mon_xpos+37,tyre_mon_ypos+101)
		rlt_label2 = ac.addLabel(window," ")
		ac.setPosition(rlt_label2,tyre_mon_xpos+37,tyre_mon_ypos+133)
		rrt_label1 = ac.addLabel(window," ")
		ac.setPosition(rrt_label1,tyre_mon_xpos+117,tyre_mon_ypos+101)
		rrt_label2 = ac.addLabel(window," ")
		ac.setPosition(rrt_label2,tyre_mon_xpos+117,tyre_mon_ypos+133)
	if draw_fuel_gauge:
		fuel_warning_label = ac.addLabel(window,"")
		ac.setSize(fuel_warning_label,12,14)
		ac.setPosition(fuel_warning_label,fuel_pivot_x - 6,fuel_pivot_y - 30)
		ac.setBackgroundTexture(fuel_warning_label,fuel_icon_warning_path)
	if draw_abs_status:
		abs_label = ac.addLabel(window,"")
		ac.setSize(abs_label,window_width,window_height)
		ac.setPosition(abs_label,0,0)
		ac.setBackgroundTexture(abs_label,abs_img)
		abs_off_label = ac.addLabel(window,"")
		ac.setSize(abs_off_label,window_width,window_height)
		ac.setPosition(abs_off_label,0,0)
		ac.setBackgroundTexture(abs_off_label,abs_off_img)
	if draw_tcs_status:
		tcs_label = ac.addLabel(window,"")
		ac.setSize(tcs_label,window_width,window_height)
		ac.setPosition(tcs_label,0,0)
		ac.setBackgroundTexture(tcs_label,tcs_img)
		tcs_off_label = ac.addLabel(window,"")
		ac.setSize(tcs_off_label,window_width,window_height)
		ac.setPosition(tcs_off_label,0,0)
		ac.setBackgroundTexture(tcs_off_label,tcs_off_img)
	return "Analog Instruments"
示例#37
0
def acMain(ac_version):
    global appWindow, dbgLabel
    global xyro_dev
    global DebugInput, DebugInput2, DebugInput3
    global BtnStart, BtnStop

    try:
        import sam_secondz_xyro_config
        sam_secondz_xyro_config.handleIni('3secondz_xyro')

        ac.log("3secondz_xyro:: xyro created")
        xyro_dev = xyrodevice.XyroDevice(UDP_IP, UDP_PORT, DEVICE_ID,
                                         FW_VERSION, STEERING_ANGLE_RANGE,
                                         ALIVE_PACKET_PERIOD,
                                         CAN_PACKET_PERIOD, NAV_PACKET_PERIOD,
                                         MEAS_PACKET_PERIOD)

        appWindow = ac.newApp("3secondz_xyro")
        ac.setSize(appWindow, 300, 100)
        ac.drawBorder(appWindow, 0)
        ac.setBackgroundOpacity(appWindow, 0)
        ac.setTitle(appWindow, '3secondz_xyro')

        IPAddrInput = ac.addTextInput(appWindow, "TEXT_INPUT")
        ac.setPosition(IPAddrInput, 10, 30)
        ac.setSize(IPAddrInput, 120, 20)
        ac.setText(IPAddrInput, str(UDP_IP))

        PortInput = ac.addTextInput(appWindow, "TEXT_INPUT")
        ac.setPosition(PortInput, 140, 30)
        ac.setSize(PortInput, 50, 20)
        ac.setText(PortInput, str(UDP_PORT))

        DebugInput = ac.addTextInput(appWindow, "TEXT_INPUT")
        ac.setPosition(DebugInput, 10, 60)
        ac.setSize(DebugInput, 280, 20)
        ac.setText(DebugInput, "")

        DebugInput2 = ac.addTextInput(appWindow, "TEXT_INPUT")
        ac.setPosition(DebugInput2, 10, 90)
        ac.setSize(DebugInput2, 280, 20)
        ac.setText(DebugInput2, "")

        DebugInput3 = ac.addTextInput(appWindow, "TEXT_INPUT")
        ac.setPosition(DebugInput3, 10, 120)
        ac.setSize(DebugInput3, 280, 20)
        ac.setText(DebugInput3, "")

        BtnStart = ac.addButton(appWindow, "Start")
        ac.setPosition(BtnStart, 10, 150)
        ac.setSize(BtnStart, 90, 20)
        ac.addOnClickedListener(BtnStart, onClickBtnStart)

        BtnStop = ac.addButton(appWindow, "Stop")
        ac.setPosition(BtnStop, 110, 150)
        ac.setSize(BtnStop, 90, 20)
        ac.addOnClickedListener(BtnStop, onClickBtnStop)

        ac.addRenderCallback(appWindow, onFormRender)
        ac.addOnAppActivatedListener(appWindow, onAppActivated)
        appWindowActivated = time.clock()
        showWindowTitle = True

        dbgLabel = ac.addLabel(appWindow, "")
        ac.setPosition(dbgLabel, 15, 405)

        #xyro_dev.turnOn()

        ac.log("3secondz_xyro::acMain finished")
    except Exception as e:
        ac.log("3secondz_xyro::acMain() %s" % e)
    return "3secondz_xyro"
示例#38
0
 def setup(self):
     ac.addRenderCallback(self.appWindow, onRender)
     ac.setSize(self.appWindow,333,70)
     ac.drawBorder(self.appWindow,0)
示例#39
0
文件: ac_widget.py 项目: styinx/ACLIB
    def render_callback(self, render_callback: callable):
        self._render_callback = render_callback

        if self.has_id:
            ac.addRenderCallback(self.id, render_callback)
示例#40
0
def acMain(ac_version: str) -> None:
    """ Initiates the program. """
    global ACD_OBJ
    global CONFIGS
    global LT_VERSION

    log("Starting Live Telemetry {} on AC Python API version {}...".format(
        LT_VERSION, ac_version))

    log("Loading configs...")
    CONFIGS = Config(LT_VERSION)

    log("Loading {} info...".format(ac.getCarName(0)))
    ACD_OBJ = ACD("content/cars/{}".format(ac.getCarName(0)))
    log("Loaded correctly")

    log("Loading options window...")
    global OPTIONS_INFO
    OPTIONS_INFO = OptionsInfo(CONFIGS)
    ac.addOnClickedListener(
        OPTIONS_INFO.get_button_id("Camber"), on_click_camber)
    ac.addOnClickedListener(OPTIONS_INFO.get_button_id("Dirt"), on_click_dirt)
    ac.addOnClickedListener(
        OPTIONS_INFO.get_button_id("Height"), on_click_height)
    ac.addOnClickedListener(OPTIONS_INFO.get_button_id("Load"), on_click_load)
    ac.addOnClickedListener(OPTIONS_INFO.get_button_id("Lock"), on_click_lock)
    ac.addOnClickedListener(
        OPTIONS_INFO.get_button_id("Logging"), on_click_logging)
    ac.addOnClickedListener(OPTIONS_INFO.get_button_id(
        "Pressure"), on_click_pressure)
    ac.addOnClickedListener(
        OPTIONS_INFO.get_button_id("RPMPower"), on_click_rpm)
    ac.addOnClickedListener(OPTIONS_INFO.get_button_id("Size"), on_click_size)
    ac.addOnClickedListener(OPTIONS_INFO.get_button_id(
        "Suspension"), on_click_suspension)
    ac.addOnClickedListener(
        OPTIONS_INFO.get_button_id("Temps"), on_click_temps)
    ac.addOnClickedListener(OPTIONS_INFO.get_button_id("Tire"), on_click_tire)
    ac.addOnClickedListener(OPTIONS_INFO.get_button_id("Wear"), on_click_wear)

    log("Loading engine window...")
    global ENGINE_INFO
    ENGINE_INFO = EngineInfo(ACD_OBJ, CONFIGS)
    window_id = ENGINE_INFO.get_window_id()
    ac.addOnAppActivatedListener(window_id, on_activation)
    ac.addOnAppDismissedListener(window_id, on_dismiss)
    ac.addRenderCallback(ENGINE_INFO.get_window_id(), on_render_engine)

    log("Loading wheel windows...")
    global WHEEL_INFOS
    for index in range(4):
        info = WheelInfo(ACD_OBJ, CONFIGS, index)
        window_id = info.get_window_id()
        ac.addOnAppActivatedListener(window_id, on_activation)
        ac.addOnAppDismissedListener(window_id, on_dismiss)
        WHEEL_INFOS[info.get_id()] = info

    ac.addRenderCallback(WHEEL_INFOS["FL"].get_window_id(), on_render_fl)
    ac.addRenderCallback(WHEEL_INFOS["FR"].get_window_id(), on_render_fr)
    ac.addRenderCallback(WHEEL_INFOS["RL"].get_window_id(), on_render_rl)
    ac.addRenderCallback(WHEEL_INFOS["RR"].get_window_id(), on_render_rr)

    log("Live Telemetry started.")

    return "Live Telemetry"
示例#41
0
 def _create_widget(self):
     self.widget = ac.newApp('Racing Line')
     ac.setSize(self.widget, app_size_x, app_size_y)
     ac.addRenderCallback(self.widget, onFormRender)