Quelques points essentiels à retenir :
- On ne pose qu' UNE question par discussion
- Le titre de la question doit refléter le souci rencontré ( Help.. SOS.. Urgent.. n'apporte aucune information utile !)
- Lorsque votre question est résolue.. merci de clore le sujet (lien Marquer comme résolu se trouvant sous le titre de votre question).
- Une question obtiendra de meilleurs réponses si elle est correctement rédigée, que les explications sont clairs et qu'éventuellement vous postez le code qui pose problème.
- Si vous avez un message d'erreur..... MARQUEZ LE (dans son intégralité).
Merci.
void CNstSquiggleCtrlDemoCppDlg::OnBnClickedButton3() { ifstream F; double X,Y,x,y; X=0; Y=0; F.open("trajectoire cercle 5mm de rayon.txt", ios::in); while(! F.eof() ) { F>>x>>y; //lecture des coordonnées x et y d'un point de la trajectoire if( !F.fail() ) { SendDisplacementBothOneBis((x-X)*1000000); //déplacement du moteur 1 SendDisplacementBothTwoBis((y-Y)*1000000); // déplacement du moteur 2 X=(x+X)*1000000; //mise à jour de la coordonnée actuelle X Y=(y+Y)*1000000; //mise à jour de la coordonnée actuelle Y } } F.close(); }
Je crois qu'il faut l'écrire en C# (langage que je connais peu) et non pas en C++:Comment ça ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionAméliorez votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
// NstSquiggleCtrlDemoCppDlg.cpp : implementation file
//
#include "stdafx.h"
#include "NstSquiggleCtrlDemoCpp.h"
#include "NstSquiggleCtrlDemoCppDlg.h"
#include ".\nstsquigglectrldemocppdlg.h"
#include <math.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
/*****************************************************************************
*
* Static information used in displaying the list of axis owned by a
* controller.
*
******************************************************************************/
typedef struct _AXIS_LVCOLUMN
{
char *m_pszStr; // Column Name
int m_nWidth; // Default width of column
int m_nFormat; // Format (left, center or right justified)
} AXIS_LVCOLUMN;
typedef struct Point
{
double x;
double y;
} Point;
// Column Indexes
#define AXIS_LVC_NUMBER 0
#define AXIS_LVC_POSITION 1
#define AXIS_LVC_ERROR 2
#define AXIS_LVC_ENCRES 3
#define AXIS_LVC_STATUS 4
#define AXIS_LVC_ATLIMIT 5
// Column List
static AXIS_LVCOLUMN g_AxisColumn[] =
{
{ "Axis", 60, LVCFMT_LEFT }, // Col 0: Left used regardless of this setting
{ "Position (µm)", 150, LVCFMT_RIGHT },
{ "Error (µm)", 70, LVCFMT_RIGHT },
{ "Enc Res", 60, LVCFMT_RIGHT },
{ "Status", 100, LVCFMT_CENTER },
{ "At Limit", 60, LVCFMT_CENTER },
{ 0 }
};
/*****************************************************************************
*
* Position Units Lookup Table
*
******************************************************************************/
static char *s_pszUnitsArray[] =
{
"enc",
"nm",
"µm",
"mm",
"in",
"asec",
"deg",
"urad",
"rad",
"grad",
NULL,
};
/*****************************************************************************
*
* Dialog Control IDs
*
******************************************************************************/
// Closed loop specific IDs
static UINT CL_Controls[] =
{
IDC_ENC_REF_CHK,
IDC_ZERO_BTN,
IDC_TARGET_EDIT,
IDC_TARGET_BTN,
IDC_HOME_BTN,
IDC_ENC_STEP_EDIT,
IDC_STEP_REV_BTN,
IDC_STEP_FWD_BTN,
IDC_RUN_SPEED_EDIT,
IDC_CUT_SPEED_EDIT,
IDC_ACCEL_EDIT,
IDC_APPLY_SPEED_BTN,
IDC_TRAJECTORY_BTN,
0,
};
// Open loop specific IDs
static UINT OL_Controls[] =
{
IDC_CL_ENA_CHK, // Closed loop enable must be accessable when in open loop mode
IDC_EEPROM_BTN,
IDC_SEND_BTN,
IDC_COMMAND_EDIT,
IDC_JOG_REV_BTN,
IDC_JOG_FWD_BTN,
IDC_RUN_REV_BTN,
IDC_RUN_FWD_BTN,
IDC_STOP_BTN,
IDC_MTR_STEPS_EDIT,
IDC_STEP_INTERVAL_EDIT,
IDC_STEP_DURATION_EDIT,
IDC_STEPS_ONE_EDIT,
IDC_STEPS_TWO_EDIT,
IDC_INTERVAL_ONE_EDIT,
IDC_DURATION_ONE_EDIT,
IDC_INTERVAL_TWO_EDIT,
IDC_DURATION_TWO_EDIT,
IDC_BURST_REV_BTN,
IDC_BURST_FWD_BTN,
IDC_SPEED_SLIDER,
IDC_COORDX,
IDC_COORDY,
IDC_STATIC,
0,
};
/*****************************************************************************
*
* Axis Status Flags (value returned by get_Status())
*
******************************************************************************/
#define F_USER_RUNMODE 0x000001 // MOTOR IN USER RUN MODE
#define F_DIRECTION 0x000002 // DIRECTION FLAG
#define F_RUNNING 0x000004 // MOTOR RUNNING
#define F_RUNNING_MSK 0x000006 // MOTOR RUNNING/DIR MASK
#define F_RUNNING_FWD 0x000006 // MOTOR RUNNING IN FWD DIRECTION
#define F_RUNNING_REV 0x000004 // MOTOR RUNNING IN REV DIRECTION
#define F_INTERLOCK 0x000008 // INTERLOCK (Controllers equipped to handle smart connector only)
#define F_NUMBERED_BURSTS 0x000010 // SPECIFIC NUMBER OF BURSTS COMMAND
#define F_TIMED_RUN 0x000020 // TIMED RUN (using TMR1)
#define F_MULTIPLX_PCB 0x000040 // Multiplexer PCB Connected
#define F_COMP_CONTROL 0x000080 // UNDER COMPUTER CONTROL FLAG
#define F_AT_FWD_LIMIT 0x000200 // CURRENTLY AT FORWARD LIMIT
#define F_AT_REV_LIMIT 0x000400 // CURRENTLY AT REVERSE LIMIT
#define F_BURST_MODE 0x000800 // SET TO 1 FOR BURST MODE OPERATION
#define F_CL_ENC_ERR 0x010000 // SET IF ENCODER MISSED COUNT ERROR DETECTED
#define F_CL_ENC_ZERO 0x020000 // SET IF ZERO MARK READ ENABLED
#define F_CL_ON_TARGET 0x040000 // SET IF POSITION = TARGET
#define F_CL_MV_TARGET 0x080000 // SET IF MOVING TOWARD A TARGET
#define F_CL_MAINT_MODE 0x100000 // MAINTENANCE MODE FOR MAINTAINING POSITION
#define F_CL_MODE_ENABLE 0x200000 // SET IF CLOSED LOOP MODE ENABLED
#define F_CL_ACCEL 0x400000 // SET IF ACCELERATING
#define F_CL_STALLED 0x800000 // SET IF STALLED
/*****************************************************************************
*
* CAboutDlg dialog used for App About
*
******************************************************************************/
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
/*****************************************************************************
*
* CNstSquiggleCtrlDemoCppDlg dialog
*
******************************************************************************/
//-------------------------------------------------------------------
// CNstSquiggleCtrlDemoCppDlg
//-------------------------------------------------------------------
CNstSquiggleCtrlDemoCppDlg::CNstSquiggleCtrlDemoCppDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNstSquiggleCtrlDemoCppDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_nCurAxis = 0;
}
Mon stage se termine dans moins d'un mois et je n'ai pas le temps d'étudier les bases en programmation.