Grosse question

cassandre

Membre enregistré
20 Décembre 2003
5
0
bonjour à tous !

je suis nouvelle et j'y connais rien, mais j'aimerais savoir s'il est possible avec developer tools ou autres de convertir (même via grosse bidouille) un .exe windows en appli OSX...

vous devez sûrement savoir ça ! c'est pour un driver :-(
 
Bonjour !
heu, non, ça n'est pas aussi simple. D'une part on ne peut pas modifier un programme sous sa forme compilée (en .exe) à ce point, il faut partir de l'origine du programme (le code source) et en plus, adapter ce code source pour le système voulu. En gros, pas possible comme ça
wink.gif


c'est pour quel genre de driver ? il y a peut-être quand même une solution, dis toujours
smile.gif
 
c'est pour mon lecteur mp3

mon mac comprend qu'il est connecté au port USB
mais le logiciel pour l'utiliser n'est que pour PC
je l'ai acheté pensant qu'étant USB il serait comme beaucoup de périphériques reconnu comme disque externe, et que je pourrais transférer ainsi mes fichiers.
mais c'est pas le cas

sinon, que penses-tu de développer une appli qui dirait que si le périphérique untel est connecté alors qu'il ouvre une fenêtre qui le browse...

c'est possible ça ? comment ?
je viens d'installer developer tools mais j'y comprends pas grand chose :-/
 
Tiens, il n'est pas reconnu par MacOS ? C'est quoi comme marque ?

Sinon, oui c'est possible à priori (tout est possible), pas formcément simple mais possible...
 
mon mac le reconnait (il sait qu'il est connecté) mais ne peut pas l'exploiter...
dans "information système apple" il voit que sur le port USB il y est, mais rien sur le bureau.
testé sur PC, c'est pareil, sauf qu'il y a une application PC qui permet de l'axploiter (transférer les fichiers dessus)

voilà pourqui je pensais refaire l'appli sur mac (mais ça a l'air impossible)...

c'est un cugig (.com !) mais apparemment il y a des utilisateurs PC qui n'arrivent pas à l'utiliser vu comme le driver est mal fichu !

alors si y'a moyen de créer une appli, je suis intéressée par toute solution
smile.gif
 
Peux-tu nous fournir la marque de ton appareil ? J'aimerais bien aller faire un tour sur le site pour voir ce qu'ils en disent...
 
Bon, la bonne nouvelle c'est que le développement de pilotes USB est encouragé par Apple et que du coup, le sujet est très bien documenté sur le site de l'ADC (Apple Developer Connection).

La mauvaise c'est que ça risque d'être un poil complexe, à fortiori pour un débutant...

Ceci étant, en t'y prenant de façon ordonnée, en commençant par le tout début, tu devrais pouvoir arriver à quelquechose.

Voici les liens utiles à ta quête :

Pour tout ce qui concerne l'USB et les HID (Human Interface Device - le nom donné par Apple aux périphériques de ton mac) :

http://developer.apple.com/hardware/usb/

Tu y trouveras en particulier des documentations essentielles sur la programmetion de pilotes qui vont de la base jusqu'au truc plus complexes. Je te conseille FORTEMENT de tout lire, même si celà peut sembler rebarbatif. Tu trouveras cette doc en suivant le lien 'Device Drivers Documentation'. En voici l'adresse directe :

http://developer.apple.com/documentation/DeviceDrivers/DeviceDrivers.html

Sur cette même page tu trouveras un lien intitulé 'Mac OS X HID Manager' qui te méneras à des exemples interessant avec leurs codes sources. Rien de tel pour entrer dans le vif du sujet. Je te conseille en particulier de télécharger le 'HID Utilities Source' puis le 'HID Explorer'. Si tu décompresses ces deux archives dans le même dossier de ton disque (sur le bureau par exemple), tu pourras compiler le 'HID Explorer' dans problème avec Xcode ou PB et ainsi pouvoir constater si oui ou non le 'HID Explorer' trouve ton Cubig. Si c'est le cas, tu seras déjà sur une excellente voie pour la suite...

Voici le lien direct vers les exemples :

http://developer.apple.com/samplecode/Sample_Code/Devices_and_Hardware/HID_Manager.htm




Voilà, c'est tout ce que je peux te dire.

Ah non, encore une chose : il existe sur le net un projet pour créer des pilotes USB pour les webcams incompatibles avec MacOS. A mon avis, celà peut être pour toi une excellente source de conseils et d'exemples (les sources sont disponibles). Va donc y faire un tour, c'est ici que ça se passe :

http://webcam-osx.sourceforge.net



Et n'hésites pas à demander des conseils, de l'aide, n'importe quoi, ici même ! On se fera un plaisir de te répondre et d'essayer de trouver des solutions !
smile.gif

 
Alors tiens...

Tant que l'on parle de HID explorer, existe t'il une version compilée ??? Parce que j'ai pas xcode.

Sinon existe t'il une appli qui décortique de A à Z un périphérique USB? Un peu plus poussé que les infos trouver dans "à propos de ce mac"

Voilà, merci d'avance.
 
Bloc de code:
#include    <stdio.h>
#include    <fcntl.h>
#include    <sys/errno.h>
#include    <sys/termios.h>
#include    <sys/types.h>
#include    <sys/time.h>
#include    <unistd.h>

#include    <sys/filio.h>
#include    <sys/ioctl.h>
#include    <CoreFoundation/CoreFoundation.h>

#include    <IOKit/IOKitLib.h>
#include    <IOKit/serial/IOSerialKeys.h>
#include    <IOKit/IOBSD.h>

int main (int argc, char *argv[]) {
    struct termios  termiosA;
    struct termios  termiosB;
    struct timeval  timeout;
    fd_set          rds;
    fd_set          wds;
    fd_set          exs;
    char            *devA;
    char            *devB;
    char            strA[1024];
    char            strB[1024];
    int             modemA;
    int             modemB;
    int             baudA;
    int             baudB;
    int             fdA;
    int             fdB;
    int             ret;
    int             iA = 0;
    int             iB = 0;
    
    if (argc != 3 && argc != 5) {
        printf("Usage: %s deviceA baudA ?deviceB baudB?\n", argv[0]);
        exit(1);
    }
    
    devA = argv[1];
    baudA = atoi(argv[2]);
    printf("Interface A:\n\tDevice = %s\n\tBaud   = %i\n", devA, baudA);
    
    if (argc == 5) {
       devB = argv[3];
        baudB = atoi(argv[4]);
        printf("Interface B:\n\tDevice = %s\n\tBaud   = %i\n", devB, baudB);
    }
    
    printf("\nOpening Interface A...\n");
    fdA = open(devA, O_RDWR | O_NONBLOCK);
    memset(&termiosA, 0, sizeof(struct termios));
    cfmakeraw(&termiosA);
    cfsetspeed(&termiosA, baudA);   // Set Baud
    termiosA.c_cflag |= CS8;        // 8 Data Bits
    ret = tcsetattr(fdA, TCSANOW, &termiosA);
    if (ret) {
        printf("ioctl (A) - returned %i errno %i\n", ret, errno);
        close(fdA);
        exit(1);
    }
    ioctl(fdA, TIOCMGET, &modemA);
    modemA |= TIOCM_DTR;
    ioctl(fdA, TIOCMSET, &modemA);
    
    if (argc == 5) {
        printf("\nOpening Interface B...\n");
        fdB = open(devB, O_RDWR | O_NONBLOCK);
        memset(&termiosB, 0, sizeof(struct termios));
        cfmakeraw(&termiosB);
        cfsetspeed(&termiosB, baudB);   // Set Baud
        termiosB.c_cflag |= CS8;        // 8 Data Bits
        ret = tcsetattr(fdB, TCSANOW, &termiosB);
        if (ret) {
            printf("ioctl (B) - returned %i errno %i\n", ret, errno);
            close(fdA);
            close(fdB);
            exit(1);
        }
        ioctl(fdB, TIOCMGET, &modemB);
        modemB |= TIOCM_DTR;
        ioctl(fdB, TIOCMSET, &modemB);
    }
    
    printf("Setting up the select loop...\n");
    memset(&timeout, 0, sizeof(struct timeval));
    timeout.tv_sec = 15;
    
    printf("Starting the select loop for %i & %i.\n", fdA, fdB);
    while (1) {
        char    tmpA[1024];
        char    tmpB[1024];
        
        memset(tmpA, '\0', 1024);
        memset(tmpB, '\0', 1024);
        
        FD_ZERO(&rds);
        FD_ZERO(&wds);
        FD_ZERO(&exs);
        FD_SET(fdA, &rds);
        FD_SET(fdA, &wds);
        FD_SET(fdA, &exs);
        if (argc == 5) {
            FD_SET(fdB, &rds);
            FD_SET(fdB, &wds);
            FD_SET(fdB, &exs);
        }
        
        ret = select(5, &rds, &wds, &exs, &timeout);
        
        if (FD_ISSET(fdA, &rds)) {
            if (read(fdA, tmpA, 1) < 0) {
                printf("errno = %i\n", errno);
                break;
            }
            if (tmpA[0] == '\r' || tmpA[0] == '\n') {
                if (iA > 0) {
                    strA[iA] = '\0';
                    printf("A(%i) -> %s\n", iA, strA);
                    memset(strA, '\0', 1024);
                    iA = 0;
                }
                continue;
            } else {
                strA[iA++] = tmpA[0];
                tmpA[0] = '\0';
            }
        }
        if (argc == 5 && FD_ISSET(fdB, &rds)) {
            if (read(fdB, tmpB, 1) < 0) {
                printf("errno = %i\n", errno);
                break;
            }
            if (tmpB[0] == '\r' || tmpB[0] == '\n') {
                if (iB > 0) {
                    strB[iB] = '\0';
                    printf("B(%i) -> %s\n", iB, strB);
                    memset(strB, '\0', 1024);
                    iB = 0;
                }
                continue;
            } else {
                strB[iB++] = tmpB[0];
                tmpB[0] = '\0';
            }
        }
        if (FD_ISSET(fdA, &wds)) {
            printf("Port A ready for writing.\n");
            write(fdA, "Test from port A.\r\n", 19);
        }
        if (argc == 5 && FD_ISSET(fdB, &wds)) {
            printf("Port B ready for writing.\n");
            write(fdB, "Test from port B.\r\n", 19);
        }
        if (FD_ISSET(fdA, &exs)) {
            printf("Port A had an exception.\n");
        }
        if (argc == 5 && FD_ISSET(fdB, &exs)) {
            printf("Port B had an exception.\n");
        }
    }
}
 
:rateau: Sortez l'aspirine... :rateau:

Oui donc, une idée sinon?
 
gosthrider a dit:
Alors tiens...

Tant que l'on parle de HID explorer, existe t'il une version compilée ??? Parce que j'ai pas xcode.
tu devrais l'installer, ca ne coute rien et te procure des tas d'outils dont t'as meme pas idée! (et moi non plus!!) ;)
accessoirement si g tt compris HID explorer c que du c, et gcc est déja la dans tiger sans avoir besoin d'installer xcode si je ne me trompe pas.


gosthrider a dit:
Sinon existe t'il une appli qui décortique de A à Z un périphérique USB? Un peu plus poussé que les infos trouver dans "à propos de ce mac"
Voilà, merci d'avance.
oui, une fois que tu aura installé Xcode tu auras la joie de trouver "usb prober" dans les utilitaires fournis

++

EDIT : a la rigueur si tu veux vraiment te priver d'Xcode tu as ca qui devrait te suffir : http://developer.apple.com/hardwaredrivers/download/usbdebug.html