Ce logiciel sert à contrôler les huit broches de données du port parallèle pour en faire ce que l'on veut...
Une première application est le jeu de lumière, mais on peut imaginer contrôler toutes sortes de choses comme des outils ménager via un circuit électronique trés simple et peu couteux à réaliser.
Source / Exemple :
// Ceci n'est qu'une partie du source à compiler avec visual c++6
// Télécharger le zip
// Je décline toute responsabilité dans le cas d'utilisations non conventionnelles du
// logiciel.
// Attention à votre imprimante et votre carte mère! ( pas de court circuit
// sur le port parallèle évidement)
// Voilà, tout est là, bonne visite !
#include "stdafx.h"
#include "Para_Control.h"
#include "Para_ControlDlg.h"
#include "conio.h"
#include "math.h"
//#include "stdlib.h"
int p1 = 0x378; // Adresse Port Parallèle
CString temp;
int pos = 0;
int c = 0;
int Temps = 101; // ( Milli-secondes )
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
int last = 0;
//srand(0);
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPara_ControlDlg dialog
CPara_ControlDlg::CPara_ControlDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPara_ControlDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPara_ControlDlg)
// Initialisation des 'Edit Box'
m_cpt1 = 10;
m_cpt2 = 10;
m_cpt3 = 10;
m_cpt4 = 10;
m_cpt5 = 10;
m_cpt6 = 10;
m_cpt7 = 10;
m_cpt8 = 10;
m_cpt9 = 10;
m_cpt12 = 50;
m_cpt10 = 10;
m_cpt11 = 0;
m_cpt24 = 10;
m_cpt13 = 3;
m_cpt14 = 5;
m_cpt15 = 7;
m_cpt16 = 2;
m_cpt17 = 1;
m_cpt18 = 4;
m_cpt19 = 6;
m_cpt20 = 8;
m_cpt21 = 1;
m_cpt22 = 8;
m_cpt23 = 1;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CPara_ControlDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPara_ControlDlg)
DDX_Text(pDX, IDC_EDIT1, m_cpt1);
DDX_Text(pDX, IDC_EDIT2, m_cpt2);
DDX_Text(pDX, IDC_EDIT3, m_cpt3);
DDX_Text(pDX, IDC_EDIT4, m_cpt4);
DDX_Text(pDX, IDC_EDIT5, m_cpt5);
DDX_Text(pDX, IDC_EDIT6, m_cpt6);
DDX_Text(pDX, IDC_EDIT7, m_cpt7);
DDX_Text(pDX, IDC_EDIT8, m_cpt8);
DDX_Text(pDX, IDC_EDIT9, m_cpt9);
DDX_Text(pDX, IDC_EDIT12, m_cpt12);
DDX_Text(pDX, IDC_EDIT10, m_cpt10);
DDX_Text(pDX, IDC_EDIT24, m_cpt24);
DDX_Text(pDX, IDC_EDIT13, m_cpt13);
DDX_Text(pDX, IDC_EDIT14, m_cpt14);
DDX_Text(pDX, IDC_EDIT15, m_cpt15);
DDX_Text(pDX, IDC_EDIT16, m_cpt16);
DDX_Text(pDX, IDC_EDIT17, m_cpt17);
DDX_Text(pDX, IDC_EDIT18, m_cpt18);
DDX_Text(pDX, IDC_EDIT19, m_cpt19);
DDX_Text(pDX, IDC_EDIT20, m_cpt20);
DDX_Text(pDX, IDC_EDIT21, m_cpt21);
DDX_Text(pDX, IDC_EDIT22, m_cpt22);
DDX_Text(pDX, IDC_EDIT23, m_cpt23);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPara_ControlDlg, CDialog)
//{{AFX_MSG_MAP(CPara_ControlDlg)
// Initialisation des boutons
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON7, On_Allume_tout)
ON_BN_CLICKED(IDC_BUTTON8, On_Eteindre_tout)
ON_BN_CLICKED(IDC_BUTTON1, On_Allum1)
ON_BN_CLICKED(IDC_BUTTON3, On_Cligno1)
ON_BN_CLICKED(IDC_BUTTON2, On_Etein1)
ON_BN_CLICKED(IDC_BUTTON24, On_Allum8)
ON_BN_CLICKED(IDC_BUTTON25, On_Etein8)
ON_BN_CLICKED(IDC_BUTTON26, On_Cligno8)
ON_BN_CLICKED(IDC_BUTTON4, On_Allum2)
ON_BN_CLICKED(IDC_BUTTON5, On_Etein2)
ON_BN_CLICKED(IDC_BUTTON6, On_Cligno2)
ON_BN_CLICKED(IDC_BUTTON9, On_Allum3)
ON_BN_CLICKED(IDC_BUTTON10, On_Etein3)
ON_BN_CLICKED(IDC_BUTTON11, On_Cligno3)
ON_BN_CLICKED(IDC_BUTTON12, On_Allum4)
ON_BN_CLICKED(IDC_BUTTON13, On_Etein4)
ON_BN_CLICKED(IDC_BUTTON14, On_Cligno4)
ON_BN_CLICKED(IDC_BUTTON15, On_Allum5)
ON_BN_CLICKED(IDC_BUTTON16, On_Etein5)
ON_BN_CLICKED(IDC_BUTTON17, On_Cligno5)
ON_BN_CLICKED(IDC_BUTTON18, On_Allum6)
ON_BN_CLICKED(IDC_BUTTON19, On_Etein6)
ON_BN_CLICKED(IDC_BUTTON20, On_Cligno6)
ON_BN_CLICKED(IDC_BUTTON21, On_Allum7)
ON_BN_CLICKED(IDC_BUTTON22, On_Etein7)
ON_BN_CLICKED(IDC_BUTTON23, On_Cligno7)
ON_BN_CLICKED(IDC_BUTTON27, On_Cligno_tout)
ON_BN_CLICKED(IDC_BUTTON28, On_Cheni_DG)
ON_BN_CLICKED(IDC_BUTTON29, On_Cheni_GD)
ON_BN_CLICKED(IDC_BUTTON30, On_Cheni_AR)
ON_BN_CLICKED(IDC_BUTTON31, On_Rencontre)
ON_BN_CLICKED(IDC_BUTTON32, On_Separe)
ON_BN_CLICKED(IDC_BUTTON34, On_Croise)
ON_BN_CLICKED(IDC_BUTTON33, On_Collision)
ON_BN_CLICKED(IDC_BUTTON35, On_Seq)
ON_BN_CLICKED(IDC_BUTTON36, On_Aleatoire1)
ON_BN_CLICKED(IDC_BUTTON37, On_Alleatoire2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPara_ControlDlg message handlers
BOOL CPara_ControlDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
// Mise à zéro de toutes les sorties:
_outp(p1,0);
// Initialisation et positionnement des sliders
CSliderCtrl* pSlide1 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER1) );
pSlide1->SetRange(1,100,true);
pSlide1->SetPos(50);
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER2) );
pSlide2->SetRange(1,100,true);
pSlide2->SetPos(50);
CSliderCtrl* pSlide3 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER3) );
pSlide3->SetRange(1,100,true);
pSlide3->SetPos(50);
CSliderCtrl* pSlide4 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER4) );
pSlide4->SetRange(1,100,true);
pSlide4->SetPos(50);
CSliderCtrl* pSlide5 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER5) );
pSlide5->SetRange(1,100,true);
pSlide5->SetPos(50);
CSliderCtrl* pSlide6 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER6) );
pSlide6->SetRange(1,100,true);
pSlide6->SetPos(50);
CSliderCtrl* pSlide7 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER7) );
pSlide7->SetRange(1,100,true);
pSlide7->SetPos(50);
CSliderCtrl* pSlide8 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER8) );
pSlide8->SetRange(1,100,true);
pSlide8->SetPos(50);
CSliderCtrl* pSlide9 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER9) );
pSlide9->SetRange(1,100,true);
pSlide9->SetPos(50);
CSliderCtrl* pSlide16 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pSlide16->SetRange(1,100,true);
pSlide16->SetPos(100);
CSliderCtrl* pSlide14 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER14) );
pSlide14->SetRange(1,100,true);
pSlide14->SetPos(50);
CSliderCtrl* pSlide13 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER13) );
pSlide13->SetRange(1,100,true);
pSlide13->SetPos(50);
CSliderCtrl* pSlide11 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER11) );
pSlide11->SetRange(1,100,true);
pSlide11->SetPos(50);
return TRUE; // return TRUE unless you set the focus to a control
}
void CPara_ControlDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CPara_ControlDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CPara_ControlDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CPara_ControlDlg::On_Allume_tout()
{
// TODO: Add your control notification handler code here
// On envoi 255, ce qui correspond à 11111111 en binaire:
// Donc toutes les sorties sont activées
// C'est aussi simple que ça...
last = 255;
_outp(p1,last);
}
void CPara_ControlDlg::On_Eteindre_tout()
{
// TODO: Add your control notification handler code here
last = 0;
_outp(p1,last);
}
void CPara_ControlDlg::On_Allum1()
{
// TODO: Add your control notification handler code here
// Ou bit à bit de ce qui était écrit sur le port para avec 0000 0001
// On est sûr que la sortie n°1 est active et que les autres sorties
// n'ont pas étés modifiées
// Si vous ne me croyez pas, révisez la logique...
last = 1 | last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno1()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT1,temp); // Récup valeur dans edit box1
int cpt1 = atoi(temp);// Conversion en entier
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER1) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();// lecture de
// la position des sliders et opération pour déterminer la longueur
// de la pause
c = 0;
int save_last = last;// sauvegarde ancienne config des sorties
last = last & 254;
while(c<cpt1)
{
c++;
last = 1 | last;
_outp(p1,last);
Sleep(pos);
last = 254 & last;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Etein1()
{
// TODO: Add your control notification handler code here
last = 254 & last;// 254 = 11111110
_outp(p1,last); // donc sortie 1 désactivée seule grace à un ET
// bit à bit
}
// Bon aprés c'est quasi tout pareil, bonne lecture...
void CPara_ControlDlg::On_Allum8()
{
// TODO: Add your control notification handler code here
last = 128 | last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Etein8()
{
// TODO: Add your control notification handler code here
last = (255 - 128) & last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno8()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT8,temp);
int cpt8 = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER8) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
last = last & (255 - 128);
while(c<cpt8)
{
c++;
last = 128 | last;
_outp(p1,last);
Sleep(pos);
last = (255 - 128) & last;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Allum2()
{
// TODO: Add your control notification handler code here
last = last | 2;
_outp(p1,last);
}
void CPara_ControlDlg::On_Etein2()
{
// TODO: Add your control notification handler code here
last &= (255 - 2);
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno2()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT2,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER2) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
last = last & (255 - 2);
while(c<cpt)
{
c++;
last = 2 | last;
_outp(p1,last);
Sleep(pos);
last = (255 - 2) & last;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Allum3()
{
// TODO: Add your control notification handler code here
last |= 4;
_outp(p1,last);
}
void CPara_ControlDlg::On_Etein3()
{
// TODO: Add your control notification handler code here
last &= (255 - 4);
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno3()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT3,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER3) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
last = last & (255 - 4);
while(c<cpt)
{
c++;
last = 4 | last;
_outp(p1,last);
Sleep(pos);
last = (255 - 4) & last;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Allum4()
{
// TODO: Add your control notification handler code here
last |= 8;
_outp(p1,last);
}
void CPara_ControlDlg::On_Etein4()
{
// TODO: Add your control notification handler code here
last &= (255 - 8);
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno4()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT4,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER4) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
last = last & (255 - 8);
while(c<cpt)
{
c++;
last = 8 | last;
_outp(p1,last);
Sleep(pos);
last = (255 - 8) & last;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Allum5()
{
// TODO: Add your control notification handler code here
last |= 16;
_outp(p1,last);
}
void CPara_ControlDlg::On_Etein5()
{
// TODO: Add your control notification handler code here
last &= (255 - 16);
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno5()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT5,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER5) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
last = last & (255 - 16);
while(c<cpt)
{
c++;
last = 16 | last;
_outp(p1,last);
Sleep(pos);
last = (255 - 16) & last;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Allum6()
{
// TODO: Add your control notification handler code here
last |= 32;
_outp(p1,last);
}
void CPara_ControlDlg::On_Etein6()
{
// TODO: Add your control notification handler code here
last &= (255-32);
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno6()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT6,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER6) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
last = last & (255 - 32);
while(c<cpt)
{
c++;
last = 32 | last;
_outp(p1,last);
Sleep(pos);
last = (255 - 32) & last;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Allum7()
{
// TODO: Add your control notification handler code here
last |= 64;
_outp(p1,last);
}
void CPara_ControlDlg::On_Etein7()
{
// TODO: Add your control notification handler code here
last &= (255 - 64);
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno7()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT7,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER7) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
last = last & (255 - 64);
while(c<cpt)
{
c++;
last = 64 | last;
_outp(p1,last);
Sleep(pos);
last = (255 - 64) & last;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Cligno_tout()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT9,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER9) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
while(c<cpt)
{
c++;
last = 255;
_outp(p1,last);
Sleep(pos);
last = 0;
_outp(p1,last);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Cheni_DG()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT10,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER13) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 401 - 4*pSlide2->GetPos() + pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
while(c<cpt)
{
c++;
_outp(p1,128);
Sleep(pos);
_outp(p1,64);
Sleep(pos);
_outp(p1,32);
Sleep(pos);
_outp(p1,16);
Sleep(pos);
_outp(p1,8);
Sleep(pos);
_outp(p1,4);
Sleep(pos);
_outp(p1,2);
Sleep(pos);
_outp(p1,1);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Cheni_GD()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT10,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER13) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 401 - 4*pSlide2->GetPos() + pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
while(c<cpt)
{
c++;
_outp(p1,1);
Sleep(pos);
_outp(p1,2);
Sleep(pos);
_outp(p1,4);
Sleep(pos);
_outp(p1,8);
Sleep(pos);
_outp(p1,16);
Sleep(pos);
_outp(p1,32);
Sleep(pos);
_outp(p1,64);
Sleep(pos);
_outp(p1,128);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Cheni_AR()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT10,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER13) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 401 - 4*pSlide2->GetPos() + pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
while(c<cpt)
{
c++;
_outp(p1,128);
Sleep(pos);
_outp(p1,64);
Sleep(pos);
_outp(p1,32);
Sleep(pos);
_outp(p1,16);
Sleep(pos);
_outp(p1,8);
Sleep(pos);
_outp(p1,4);
Sleep(pos);
_outp(p1,2);
Sleep(pos);
_outp(p1,1);
// Sleep(pos);
// _outp(p1,1);
Sleep(pos);
_outp(p1,2);
Sleep(pos);
_outp(p1,4);
Sleep(pos);
_outp(p1,8);
Sleep(pos);
_outp(p1,16);
Sleep(pos);
_outp(p1,32);
Sleep(pos);
_outp(p1,64);
Sleep(pos);
// _outp(p1,128);
// Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Rencontre()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT10,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER13) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 401 - 4*pSlide2->GetPos() + pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
while(c<cpt)
{
c++;
_outp(p1,129);
Sleep(pos);
_outp(p1,66);
Sleep(pos);
_outp(p1,36);
Sleep(pos);
_outp(p1,24);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Separe()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT10,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER13) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 401 - 4*pSlide2->GetPos() + pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
while(c<cpt)
{
c++;
_outp(p1,24);
Sleep(pos);
_outp(p1,36);
Sleep(pos);
_outp(p1,66);
Sleep(pos);
_outp(p1,129);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Croise()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT10,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER13) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 401 - 4*pSlide2->GetPos() + pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
while(c<cpt)
{
c++;
_outp(p1,129);
Sleep(pos);
_outp(p1,66);
Sleep(pos);
_outp(p1,36);
Sleep(pos);
_outp(p1,24);
Sleep(pos);
_outp(p1,36);
Sleep(pos);
_outp(p1,66);
Sleep(pos);
_outp(p1,129);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Collision()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT10,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER13) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 401 - 4*pSlide2->GetPos() + pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
while(c<cpt)
{
c++;
_outp(p1,129);
Sleep(pos);
_outp(p1,66);
Sleep(pos);
_outp(p1,36);
Sleep(pos);
_outp(p1,24);
Sleep(pos);
_outp(p1,255);
Sleep(pos);
_outp(p1,0);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Seq()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT24,temp);
int cpt = atoi(temp);
int n_led;
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER11) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
while( c<cpt )
{
c++;
GetDlgItemText(IDC_EDIT17,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT13,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT14,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT15,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT16,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT18,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT19,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT20,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT21,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT22,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
GetDlgItemText(IDC_EDIT23,temp);
n_led = atoi(temp);
if( (n_led < 9) )
{
switch(n_led)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
}
}
else
{
MessageBox("Malin !",MB_OK,MB_ICONASTERISK);
}
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Aleatoire1()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT12,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER14) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
int x;
while(c<cpt)
{
c++;
x = rand()%256;
_outp(p1,x);
Sleep(pos);
}
last = save_last;
_outp(p1,last);
}
void CPara_ControlDlg::On_Alleatoire2()
{
// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT12,temp);
int cpt = atoi(temp);
CSliderCtrl* pSlide = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER14) );
CSliderCtrl* pSlide2 = static_cast<CSliderCtrl*>( GetDlgItem(IDC_SLIDER16) );
pos = 501 - 4*pSlide2->GetPos() - pSlide->GetPos();
c = 0;
int save_last = last;
int i = 0;
int x;
while(c<cpt)
{
c++;
x = rand()%9;
switch(x)
{
case 1:
_outp(p1,1);
Sleep(pos);
break;
case 2:
_outp(p1,2);
Sleep(pos);
break;
case 3:
_outp(p1,4);
Sleep(pos);
break;
case 4:
_outp(p1,8);
Sleep(pos);
break;
case 5:
_outp(p1,16);
Sleep(pos);
break;
case 6:
_outp(p1,32);
Sleep(pos);
break;
case 7:
_outp(p1,64);
Sleep(pos);
break;
case 8:
_outp(p1,128);
Sleep(pos);
break;
default:
_outp(p1,x);
Sleep(pos);
break;
}
}
last = save_last;
_outp(p1,last);
}
Conclusion :
Pas de bug dans ce programme; a moins que vous en trouviez...
Mise à jour si vous en souhaitez une...
J'attend vos suggestions...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.