ecrire sur la memoire Ram............. - C++ - Programmation
Marsh Posté le 08-09-2004 à 09:41:35
oui, forcement, suffit de pas ecrire sur le hdd
par contre si les images son grosse et qu'il en a beaucoup ca sera difficile d'eviter le swap
Marsh Posté le 08-09-2004 à 09:44:22
j'ai 256Mo de ram et j'ai calculé, j'aurai besoin d'enviro 100Mo gros maxi.
Connais-tu la procedure pour effectuer cette operation ?
Marsh Posté le 08-09-2004 à 09:47:23
roromaino a écrit : j'ai 256Mo de ram et j'ai calculé, j'aurai besoin d'enviro 100Mo gros maxi. |
tant que tu n'écris pas sur le disque ton image est dans la RAM, il n'y a donc pas de procédure à appliquer si ce n'est de ne pas écraser ce qui n'est pas sauvegardé sur le dur.
Marsh Posté le 08-09-2004 à 09:54:44
ok, et au niveau du code , quel sont les commandes pour acceder a cette ram pour ecrire sur celle-ci ?
faut-il créer un disque virtuel ?
Marsh Posté le 08-09-2004 à 09:56:48
roromaino a écrit : ok, et au niveau du code , quel sont les commandes pour acceder a cette ram pour ecrire sur celle-ci ? |
mais non!
Tu n'as rien de particulier à faire, tu crois qu'elles sont où tes images avant que tu les sauvegardes là?
Marsh Posté le 08-09-2004 à 10:00:30
skeye a écrit : mais non! |
moi m'sieur
moi m'sieur
je sais
dans la mémoire de la carte d'acquisition
Marsh Posté le 08-09-2004 à 10:01:58
moktar1er a écrit : moi m'sieur |
Complique pas le pb toi hein!
Marsh Posté le 08-09-2004 à 10:02:43
moktar1er a écrit : moi m'sieur |
non, dans l'écran, sinon ils les afficheraient pas
Marsh Posté le 08-09-2004 à 10:05:44
vous avez tout faut c'est stocker dans le bus pci
Marsh Posté le 08-09-2004 à 10:12:21
Dion a écrit : non, dans l'écran, sinon ils les afficheraient pas |
il parle d'acquisition
par où ça passe, je te prie, avant d'arriver à l'écran hein?
à la rigueur, tu m'aurais répondu: "sous forme de charge éléctrique dans le capteur du dispositif d'acquisition", j'aurais compris, mais là hein
Marsh Posté le 08-09-2004 à 10:15:57
moktar1er a écrit : il parle d'acquisition |
par le cable du moniteur
Marsh Posté le 08-09-2004 à 10:17:06
Mes image sont enregistrer sur la carte d'acquisition , mais une seule image est enregistrée car elle ne dispose pas de memoire tampon, l'image suivante ecrase la precedente.
J'enregistre mon image a l'aide d'une fonction de la dll pilotant la carte sur mon disque dur.
Si j'enregistre rien sur mon disque dur , les images sont a mon avis pas presentes sur la ram.
Comment enregistrer mes images sur la memoire Ram pour ensuite les copiers toutes sur le disque dur une fois l'operation terminé pour ainsi gagner du temps de boucle ?
je veux me servire de la ram comme memoire tampon...
Avant sous dos, je créais un disque virtuel utilisant une partie de la memoire Ram que je definissais. Une fois mon processus terminé je copiais mes informations sur le disque pour ensuite detruire ce disque virtuel.
Marsh Posté le 08-09-2004 à 10:19:40
bah comment tu récupères ton image de ta carte d'acq. avant de la mettre sur le DD
tu passes par une variable non?
et cette variable où est-elle (physiquement) à ton avis?
Marsh Posté le 08-09-2004 à 10:19:59
roromaino a écrit : Mes image sont enregistrer sur la carte d'acquisition , mais une seule image est enregistrée car elle ne dispose pas de memoire tampon, l'image suivante ecrase la precedente. |
ok, dans ce cas il te suffit de créer une nouvelle variable dans laquelle tu feras des copies de tes images avant de faire une nouvelle acquisition.
Marsh Posté le 08-09-2004 à 10:20:28
moktar1er a écrit : bah comment tu récupères ton image de ta carte d'acq. avant de la mettre sur le DD |
Je suppose qu'il utilise un sdk particulier correspondant à la carte?
Marsh Posté le 08-09-2004 à 10:25:56
moktar1er a écrit : il parle d'acquisition |
Non parce que ca passe petit bout par petit bout le cable, c'est recomposé sur l'écran
Le plus simple c'est de prendre une photo de l'écran
Marsh Posté le 08-09-2004 à 14:22:23
Yen a qui se déchainent aujourd'hui ....
Un peu de sérieux enfin.
LabwindowsCvi fournit bien une API en C non ?
Dans ce cas, la solution a ton pb (écrire en RAM), consiste à allouer un gros buffer. En C, on ferait ca avec la fonction malloc.
Marsh Posté le 08-09-2004 à 14:55:08
et en c++ avec l'opérateur new
Marsh Posté le 08-09-2004 à 18:51:45
ReplyMarsh Posté le 08-09-2004 à 19:13:21
Génial le titre ! A encadrer, surtout pour la catégorie C++.
Pour répondre à roromaino : cherche dans la doc de ton API s'il n'existerait pas une fonction pour écrire dans un buffer - en ram, donc - plutôt que directement sur le disque (allez, prochaine question, Sujet : ecrire sur la memoire buffer..........).
Marsh Posté le 08-09-2004 à 21:06:46
Reply
Marsh Posté le 08-09-2004 à 09:37:21
bonjour,
Je dois effectuer de l'acquisition d'images sur mon disque dur.
Mais l'enregistrement des images sur le disque dur fait ramer inconstestablement mon logiciel.En effet mon logiciel est basé integralement sur la gestion de compteur. les temps de boucle s'allonge donc inconsiderablement du a l'ecrire sur le disque et me fait perdre donc des informations
J'ai pensé a utiliser un second pc qui lui ne ferais qu'enregistrer les acquisitions mais celà fait un systeme lourd (systeme avec 2 pc).
Voila ma solution , est-il possible d'ecrire mes acquiqitions sur la memoire Ram pour ensuite les copiers toutes sur le disque dur une fois l'operation terminé.
merci de vos reponses.....
NB: je travaille sous Win98 avec LabwindowsCvi version 5.5