Page 1 sur 1

Geko GS105 paramétrage M2000C

Publié : dim. oct. 21, 2018 12:16 pm
par AMAX
bonjour a tous,

comme il était difficile pour moi de paramétrer le geko gs105 avec DCS M2000C qui n'est pas encore à jour . voici le message de Julien de chez geko syteme:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
C'est effectivement lie a l'appareil. DCS est source de beaucoup de problemes car les avions ne repondent pas tous aux fonctions de la documentation.
Voici une version du GSeat Manager qui fonctionne avec le mirage 2000 et d'autres appareils qui sont sources d'erreur de scripts dans DCS.

https://drive.google.com/file/d/1pP9z2z ... w05Bh/view

Le script lua est different il faut donc le reinstaller.

Cordialement,

Julien Regnard,
Geko Systems


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
voici un lien de mon drive pour le patch si des fois que celui de julien etait temporairehttps://drive.google.com/file/d/1pP9z2z ... sp=sharing
aprés installation du patch j'ai une version de G-seat manager 2.05.6271

voici le lien de mon drive pour le manuel en Francais : https://drive.google.com/file/d/14j_aHk ... sp=sharing

voici aussi le manuel du m2000C https://drive.google.com/file/d/0B-uSpZ ... sp=sharing

voici aussi une version du dernier firmware https://drive.google.com/file/d/0B0IobE ... sp=sharing


une fois patché il faut refaire la manip decrit dans le manuel page30 mais la encore il n'est pas a jours.

du coup

il vous faudrat donc créer un profile dans G-seat manager. pour ce faire, il fait selectionner un profile dsc au niveau de puissance qui vous convient, cliquer sur copie , puis l'editer . mettre dans la zone port: 8080


en suite, aller creer dans C:\Users\fred\Saved Games\DCS\ un dossier scripts

vous obtenez : C:\Users\fred\Saved Games\DCS\Scripts

mais attention sur windows 10 en francais c'est traduit par : Ce PC/ Disque local (c:) / Utilisateurs /votre nom utilisateur/ Parties enregistrées / DCS / Scripts /

Dans le dossier Script il vous coller deux fichier

comme décrit dans le manuel:

 Copiez le fichier export.lua de
C:\Program Files\Eagle Dynamics\DCS World\Scripts
vers
C:\Users\[your user name]\Saved Games\DCS\Scripts
(Dans le cas d'une installation Steam, Export.lua se trouve dans le répertoire
SteamApps\common\DCSWorld\Scripts de votre librairie Steam.)

 Copiez le fichier GekoSystemsTelemetryExporter.lua
de
C:\Program Files\Geko Systems\GSeat Manager\DCS
vers
C:\Users\[your user name]\Saved Games\DCS\Scripts

 Editez le fichier export.lua contenu dans le répertoire
C:\Users\[your user name]\Saved Games\DCS\Scripts

Et ajoutez tout a la fin de ce fichier la ligne exacte:

dofile( lfs.writedir().."/Scripts/GekoSystemsTelemetryExporter.lua")

et modifier le port ip en 8080


GSUDPAddress, GSUDPPort = "127.0.0.1", 8080



Ducou vous obtenez le script suivant:
----------------------------------------------------------------------------------------------------------------------------------------------------
GekoSystemsTelemetryExporter =
{


ExportStart=function(self)
log_verbose = false
log_file = io.open(lfs.writedir().."/Logs/Geko.log", "w")
log_file:write("GSeat plugin version 2.1 initializing\n")
log_file:write(os.date()..'\n')
-- load namespace
package.path = package.path..";.\\LuaSocket\\?.lua"
--package.cpath = package.cpath..";.\\LuaSocket\\?.dll"
socket = require("socket")

--create socket
GSSocketInit = socket.protect(
function()
GSUDPAddress, GSUDPPort = "127.0.0.1", 8080

GSUDPSocket = socket.udp ()
GSUDPSocket:settimeout (0)
GSUDPSocket:setpeername (GSUDPAddress, GSUDPPort)
end
)
GSSocketInit()

frameCounter=0

end,

RetrieveACInfo=function(self)
if(log_verbose) then log_file:write("RetrieveACInfo\n") end
PlaneType=-1 -- unsupported
LeftThrottleInstr=-1
RightThrottleInstr=-1

PlaneData = LoGetSelfData()
if(PlaneData) then
local planeName=string.lower(PlaneData.Name)
if(log_verbose) then log_file:write("Plane Name: "..planeName..'\n') end
-- print(planeName)
if planeName=="a-10a" then

PlaneType = 0
-- throttle < LoGetEngineInfo

elseif planeName=="a-10c" then

PlaneType = 1
-- throttle
LeftThrottleInstr=78
RightThrottleInstr=80

elseif planeName=="bf-109k-4" then

PlaneType = 2
-- throttle
LeftThrottleInstr=32
RightThrottleInstr=32

elseif planeName=="f-5e-3" then

PlaneType = 16
-- throttle
LeftThrottleInstr=104
RightThrottleInstr=105

elseif planeName=="f-15c" then

PlaneType = 3
-- throttle < LoGetEngineInfo

elseif planeName=="f-86f sabre" then

PlaneType = 4
-- throttle
LeftThrottleInstr=104
RightThrottleInstr=104

elseif planeName=="fw-190d9" then

PlaneType = 5
-- throttle < manifold pressure
LeftThrottleInstr=2
RightThrottleInstr=2

elseif planeName=="ka-50" then

PlaneType = 6
-- throttle < collective
LeftThrottleInstr=104
RightThrottleInstr=104

elseif planeName=="mi-8mt" then

PlaneType = 7
-- throttle < collective
LeftThrottleInstr=191
RightThrottleInstr=191

elseif planeName=="mig-15bis" then

PlaneType = 8
-- throttle
LeftThrottleInstr=205
RightThrottleInstr=205

elseif planeName=="mig-21bis" then

PlaneType = 9
-- throttle
LeftThrottleInstr=50
RightThrottleInstr=50

elseif planeName=="mig-29a" or planeName=="mig-29s" or planeName=="mig-29g" then

PlaneType = 10
-- throttle < LoGetEngineInfo

elseif planeName=="p-51d" or planeName=="tf-51d" then

PlaneType = 11
-- throttle < manifold pressure
LeftThrottleInstr=10
RightThrottleInstr=10

elseif planeName=="su-25" or planeName=="su-25t" then

PlaneType = 12
-- throttle < LoGetEngineInfo

elseif planeName=="su-27" then

PlaneType = 13
-- throttle < LoGetEngineInfo

elseif planeName=="su-33" then

PlaneType = 14
-- throttle < LoGetEngineInfo

elseif planeName=="uh-1h" then

PlaneType = 15
-- throttle < gas producer, rotor
LeftThrottleInstr=123
RightThrottleInstr=119

elseif planeName=="m-2000c" then

PlaneType = 17
LeftThrottleInstr=369
RightThrottleInstr=369

end
if(log_verbose) then
log_file:write(string.format("Plane Type: %d\n",PlaneType))
log_file:write(string.format("Left Throttle Inst: %d\n",LeftThrottleInstr))
log_file:write(string.format("Right Throttle Inst: %d\n",RightThrottleInstr))
end
else
if(log_verbose) then log_file:write("No Plane Data!\n") end
end

end,

--[[
LoGetModelTime() -- returns current model time (args - 0, results - 1 (sec))
LoGetMissionStartTime() -- returns mission start time (args - 0, results - 1 (sec))
LoGetPilotName() -- (args - 0, results - 1 (text string))
LoGetPlayerPlaneId() -- (args - 0, results - 1 (number))
LoGetIndicatedAirSpeed() -- (args - 0, results - 1 (m/s))
LoGetTrueAirSpeed() -- (args - 0, results - 1 (m/s))
LoGetAltitudeAboveSeaLevel() -- (args - 0, results - 1 (meters))
LoGetAltitudeAboveGroundLevel() -- (args - 0, results - 1 (meterst))
LoGetAngleOfAttack() -- (args - 0, results - 1 (rad))
LoGetAccelerationUnits() -- (args - 0, results - table {x = Nx,y = NY,z = NZ} 1 (G))
LoGetVerticalVelocity() -- (args - 0, results - 1(m/s))
LoGetMachNumber() -- (args - 0, results - 1)
LoGetADIPitchBankYaw() -- (args - 0, results - 3 (rad))
LoGetMagneticYaw() -- (args - 0, results - 1 (rad)
LoGetGlideDeviation() -- (args - 0,results - 1)( -1 < result < 1)
LoGetSideDeviation() -- (args - 0,results - 1)( -1 < result < 1)
LoGetSlipBallPosition() -- (args - 0,results - 1)( -1 < result < 1)
LoGetBasicAtmospherePressure() -- (args - 0,results - 1) (mm hg)
LoGetControlPanel_HSI() -- (args - 0,results - table)
]]--


ExportAfterNextFrame=function(self)


local modelTime = LoGetModelTime()
local altitudeAboveGround = LoGetAltitudeAboveGroundLevel()
local pitch, bank, yaw = LoGetADIPitchBankYaw()
local speedVector = LoGetVectorVelocity()
local rotationSpeedVector = LoGetAngularVelocity()
local accelerationVector = LoGetAccelerationUnits()
local windSpeedVector = LoGetVectorWindVelocity()
local planeNotPresent = false

local leftThrottle = 0
local rightThrottle = 0

if (frameCounter == 0) then
GekoSystemsTelemetryExporter.RetrieveACInfo()
frameCounter=100
end
frameCounter = frameCounter - 1

if(PlaneType ~= -1) then
if(LeftThrottleInstr ~= -1) then
local mainPanel = GetDevice(0)
if mainPanel and (type(mainPanel) ~='number') then
leftThrottle = mainPanel:get_argument_value(LeftThrottleInstr)
rightThrottle = mainPanel:get_argument_value(RightThrottleInstr)
else
if(log_verbose) then log_file:write("could not retrieve left throttle instrument from mainpanel\n") end
planeNotPresent = true
end
else
local engineInfo=LoGetEngineInfo()
if engineInfo and (type(engineInfo) ~='number') then
leftThrottle=engineInfo.RPM.left/100.0
rightThrottle=engineInfo.RPM.right/100.0
else
if(log_verbose) then log_file:write("could not retrieve RPM from engineInfo\n") end
planeNotPresent = true
end
end
else
local mainPanel = GetDevice(0)
if mainPanel and (type(mainPanel) ~='number') then
leftThrottle=0.0
rightThrottle=0.0
else
if(log_verbose) then log_file:write("could not retrieve mainPanel\n") end
planeNotPresent = true
end
end

if planeNotPresent then
GSSend = socket.protect(
function()
if GSUDPSocket then
str = string.format(
"%i; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f;",
PlaneType,
-1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
)
if (log_verbose and frameCounter%10 == 0) then log_file:write(str..'\n') end
socket.try(
GSUDPSocket:send( str..'\0')
)

end
end
)
GSSend()
else
GSSend = socket.protect(
function()
if GSUDPSocket then
str = string.format(
"%i; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f; %.8f;",
PlaneType,
modelTime,
altitudeAboveGround,
pitch,
bank,
yaw,
speedVector.x,
speedVector.y,
speedVector.z,
rotationSpeedVector.x,
rotationSpeedVector.y,
rotationSpeedVector.z,
accelerationVector.x,
accelerationVector.y,
accelerationVector.z,
windSpeedVector.x,
windSpeedVector.y,
windSpeedVector.x,
leftThrottle,
rightThrottle
)
if (log_verbose and frameCounter%10 == 0) then log_file:write(str..'\n') end
socket.try(
GSUDPSocket:send( str..'\0')
)
end
end
)
GSSend()
end
end,

ExportStop=function(self)
log_file:write("GSeat plugin closing \n")
log_file:close()
GSUDPSocket:close()
end,

}



----------------------------------------------------
-- Overloading functions
-- LuaExportStart,
-- LuaExportAfterNextFrame,
-- LuaExportStop
-- from Export.lua script
----------------------------------------------------
do
local PrevLuaExportStart=LuaExportStart
LuaExportStart=function()
GekoSystemsTelemetryExporter:ExportStart()
if PrevLuaExportStart then
PrevLuaExportStart()
end
end
end

do
local PrevLuaExportAfterNextFrame=LuaExportAfterNextFrame
LuaExportAfterNextFrame=function()
GekoSystemsTelemetryExporter:ExportAfterNextFrame()
if PrevLuaExportAfterNextFrame then
PrevLuaExportAfterNextFrame()
end
end
end

do
local PrevLuaExportStop=LuaExportStop
LuaExportStop=function()
GekoSystemsTelemetryExporter:ExportStop()
if PrevLuaExportStop then
PrevLuaExportStop()
end
end
end

---------------------------------------------------------------------------------------------------------------------------------------------------


J'ai testé DCS M2000C en Geko avec le casque oculus , un vrais régale.

j’espère que ça aidera quelqu'un.