Le support gris, sera du PVC. (Metal trop cher et difficile à usiner)
En bref, modifier dans la RAM ne marche pas sur les boutons dépendant d'autres boutons.
Mais pas de panique! On va se rabattre sur ma précédente idée : les zones cliquables du panel. Mon frère et moi avons commencé à écrire un programme en c++ pour simuler une souris qui cliquerait sur le pannel.
Le seul hic, c'est que le programme prends comme reference de coordonnées de la souris le coin en haut à gauche DE L'ECRAN, qui est le 0:0 quoi. Nous, on voudrait que la référence soit un poind du pannel...
#include "stdafx.h"
#include <windows.h>
#include "saturn.cpp"
#include "saturn.h"
int __stdcall WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
while(1)
{
printf("%d",EMSFunctionSwitch.GetState());
Sleep(1000);
}
}
1>.\modVal.cpp(12) : error C2065: 'EMSFunctionSwitch' : identificateur non déclaré
1>.\modVal.cpp(12) : error C2228: la partie gauche de '.GetState' doit avoir un class/struct/union
1> le type est ''unknown-type''
Salut tout le monde, je suis le frère d'antoo...Bonjour, et bienvenue !!! :beer:
En fait ils en parle sur le forum de la conquête spatiale.tiens, merci de pointé mon fil, c'est sympas :)
voici le lien:
http://www.forum-conquete-spatiale.fr/t13414-maquette-papier-apollo-command-module-112 (http://www.forum-conquete-spatiale.fr/t13414-maquette-papier-apollo-command-module-112)
et j'en parle déjà en première page de ce fil :badsmile:
Ben ouais! S'ils s'étaient ouverts la capsule serait à l'endroit :):badsmile: :badsmile: :badsmile: :badsmile: :badsmile:
/*******************************************************************************************************
CKI.pp
Maxime Bezanilla
23/02/2016
La dll doit être chargée par Orbiter, puis récupérer des informations du port USB( en provenance
du cockpit) pour modifier les données du jeu dans Orbiter.
Eventuellement, elle fera aussi le retour d'information pour les afficheurs.
version: 2016/02/24 14:00
******************************************************************************************************/
//####################################################################################################//
#define STRICT
#define ORBITER_MODULE
/* if not using cki.h
#include <windows.h>
#include <stdio.h>
#include <mmeapi.h>
#include <winsock.h>
#include "OrbiterAPI.h"
#include "soundlib.h"
#include "apolloguidance.h"
#include "dsky.h"
#include "connector.h"
#include "CSMconnector.h"
#include "CSMcomputer.h"
#include "toggleswitch.h"
#include "IMU.h"
#include "saturn.h"
#include "resource.h"
*/
#include "stdafx.h"
#include "cki.h"
#include <iostream>
#include <string>
#include <fstream>
HINSTANCE g_hInst; // module instance handle
//***************** entry point ********************\\
DLLCLBK void InitModule (HINSTANCE hDLL)
{
g_hInst = hDLL;
};
//***************** exit point ****************\
DLLCLBK void ExitModule (HINSTANCE hDLL)
{
}
DLLCLBK void opcPreStep(double simt, double simdt, double mjd)
{
mainFunc();
};
void mainFunc()
{
int i;
int j;
OBJHANDLE hv = oapiGetFocusObject(); //vessel handle
VESSEL2 v = VESSEL2(hv, 1);
for (i = 100; i < 110; i++)
{
for (j = 100; j < 110; j++)
{
v.clbkPanelMouseEvent(IDB_CSM_MAIN_PANEL, PANEL_MOUSE_LBDOWN, i, j);
Sleep(30);
v.clbkPanelMouseEvent(IDB_CSM_MAIN_PANEL, PANEL_MOUSE_LBUP, i, j);
Sleep(30);
};
};
};
/*******************************************************************************************************
CKI.h
Maxime Bezanilla
23/02/2016
version: 2016/02/24 14:00
******************************************************************************************************/
//####################################################################################################//
#include <windows.h>
#include <stdio.h>
#include "stdafx.h"
#include <mmeapi.h>
#include <winsock.h>
#include "OrbiterAPI.h"
#include "soundlib.h"
#include "apolloguidance.h"
#include "dsky.h"
#include "connector.h"
#include "CSMconnector.h"
#include "CSMcomputer.h"
#include "toggleswitch.h"
#include "IMU.h"
#include "saturn.h"
#include "resource.h"
void mainFunc();
La capsule devra être déménageable. Moi, j'ai idée de l'endroit où elle devrait
être exposée=> la cité de l'espace.
Je termine en remettant des photos qui se sont enlevées des posts précédents (merci Hosting Pics :( ).Essaye là, ça marche bien...
D'autres nouvelles très bientôt les gars. Déjà de très très nombreuses heures de travail que l'on ne compte pas. Enivrant !A+Dis donc... je ne me souviens plus...
int numButton, newState;
if (NASSPC_getButtonState(&numButton, &newState))
{
if (numButton == 0)
{
EMSFunctionSwitch.SetState(newState);
}
if (numButton == 1)
{
EMSModeSwitch.SetState(newState);
}
if (numButton == 2)
{
GTASwitch.Unguard();
GTASwitch.SetState(newState);
}
if (numButton == 3)
{
int event;
int clicked_x = 10;
int clicked_y;
switch (newState)
{
case 0:
event = PANEL_MOUSE_RBUP;
break;
case 1:
event = PANEL_MOUSE_LBPRESSED;
clicked_y = 25;
case 2:
event = PANEL_MOUSE_RBPRESSED;
clicked_y = 25;
case 3:
event = PANEL_MOUSE_LBPRESSED;
clicked_y = 50;
case 4:
event = PANEL_MOUSE_RBPRESSED;
clicked_y = 50;
}
EMSDvSetSwitch.CheckMouseClick(event, clicked_x, clicked_y);
}
}
//écriture des données en sortie dans un fichier texte
std::ofstream out_fHandle;
out_fHandle.open("NASSPC_OUT.txt", std::ios::app);
// DeltaV
out_fHandle << "EMS Dv Display : " << EMSDvDisplay.GetState() << endl; // à diviser par 10
// Scroller. Et le bug ???
out_fHandle << "EMS Scroll Display : " << ems.GetScrollOffset()+EMSScrollDisplay.GetState()-65 << endl; // en pixels
out_fHandle << "SPS Thrust light : " << ems.SPSThrustLight() << endl; // led droite
out_fHandle << ".05G light : " << ems.pt05GLight() << endl; // led gauche
//Truc en bas à gauche
out_fHandle << "EMS RSI Rotation : " << ems.GetRSIRotation() << endl; // radians
out_fHandle << "EMS Lift Vect Light : " << ems.LiftVectLight() << endl; // -1, 0, 1 // -1 est la led du bas, 1 celle du haut
out_fHandle.close();
A la relecture il apparaît qu'un petit switch/case ne ferait pas de mal. Il devait être 2h du mat...bool NASSPC_getButtonState(int *numButton, int *newState)
{
CSerial serial;
if (serial.Open(6, 9600))
{
char* lpBuffer = new char[5];
int nBytesRead = serial.ReadData(lpBuffer, 5);
serial.Close();
if ((nBytesRead > 0) && (lpBuffer[0] == '<'))
{
*numButton = (int)lpBuffer[1];
*newState = (int)lpBuffer[3];
#ifdef MAX_DEBUG_MODE
out.open("NASSPC_log.txt", std::ios::app);
out << "serial received : " << *numButton << ";" << *newState << endl;
out.close();
#endif
delete[]lpBuffer;
return true;
}
}
return false;
}
Et.... on pourra visiter quand cela sera fonctionnel ???
Et il y aura vraiment 3 places couchettes ???
Et le bar ? hein n'oubliez pas le bar dans le casier du commandant
Mais là j'ai faim donc je vais manger quoi !
Bon appétit !!!
Salut tout le monde !
Le projet a été pausé un petit mois à cause de mon déménagement... en Chine. Mais ça avance quand même !
La carte électronique du proto EMS est a priori finie. Je vais checker vite-fait le routage et lancer la production d'ici la fin du mois.
On y arrive !
A plus et merci !
En Chine avec le décalage horaire cela ne va pas être facile :eek:
Ils arriveront chez moi ce weekend, petit coup de fer à souder et on passe aux choses sérieuse !
:doubt: il se passe encore un truc ici ?
Et hop, 3600 messages sur le fofo :) !ça vaut bien 1 karma de plus, tout ça ! :beer:
Un petit lamellé-collé en bois et tu cintres ta porte facile.