Bonjour,
Je suis en train de programmer un pic32mx795f512l en ethernet et un module wifi.
Je communique bien avec, seulement j'essai de pouvoir mettre mes nouveaux paramètre réseaux (ip, mask, passerel, ...) en flash interne pour pouvoir les prendre en compte lors d'un reboot.
J'ai donc trouvé ou récupérer ma nouvelle ip une fois le reboot fait, en allant voir dans le buffer de réception :
dans la fonction custom_http_app.c
J'ai placer un "for" pour voir le contenu du buffer, qui présente bien la nouvelle ip, seulement celle-ci n'est pas enregistré en flash ce que j'aimerai faire pour pouvoir l'initialiser au redémérrageCode:if(!strcmp((char *)httpDataBuff, (const char *)"ip")) { // Save new static IP Address //**ajouté par moi for ( inc=6; inc<25; inc++) { val = *( httpDataBuff+inc); } //************************ if(!TCPIP_Helper_StringToIPAddress((char *)(httpDataBuff+6), &newIPAddress)) { bConfigFailure = true; break; } strncpy(httpNetData.ipAddr, (char *)httpDataBuff + 6, sizeof(httpNetData.ipAddr)); }
J'ai repéré l'emplacement ou l'on initialise les paramètre réseau par défaut, ou je pourrai donc charger les nouveaux paramètres
pour comprendre le fonctionnement, j'ai changer directement la valeur de l'IP pour voir si ça fonctionnait, ce qui est le cas.
qui est initialisé par iciCode:const TCPIP_NETWORK_CONFIG __attribute__((unused)) TCPIP_HOSTS_CONFIGURATION_NEW[] = { /*** Network Configuration Index 0 ***/ { TCPIP_NETWORK_DEFAULT_INTERFACE_NAME, // interface TCPIP_NETWORK_DEFAULT_HOST_NAME, // hostName TCPIP_NETWORK_DEFAULT_MAC_ADDR, // macAddr TCPIP_NETWORK_DEFAULT_IP_ADDRESS, // ipAddr TCPIP_NETWORK_DEFAULT_IP_MASK, // ipMask TCPIP_NETWORK_DEFAULT_GATEWAY, // gateway TCPIP_NETWORK_DEFAULT_DNS, // priDNS TCPIP_NETWORK_DEFAULT_SECOND_DNS, // secondDNS TCPIP_NETWORK_DEFAULT_POWER_MODE, // powerMode TCPIP_NETWORK_DEFAULT_INTERFACE_FLAGS, // startFlags &TCPIP_NETWORK_DEFAULT_MAC_DRIVER, // pMacObject }, /*** Network Configuration Index 1 ***/ { TCPIP_NETWORK_DEFAULT_INTERFACE_NAME_IDX1, // interface TCPIP_NETWORK_DEFAULT_HOST_NAME_IDX1, // hostName TCPIP_NETWORK_DEFAULT_MAC_ADDR_IDX1, // macAddr "192.168.1.135", // ipAddr TCPIP_NETWORK_DEFAULT_IP_MASK_IDX1, // ipMask TCPIP_NETWORK_DEFAULT_GATEWAY_IDX1, // gateway TCPIP_NETWORK_DEFAULT_DNS_IDX1, // priDNS TCPIP_NETWORK_DEFAULT_SECOND_DNS_IDX1, // secondDNS TCPIP_NETWORK_DEFAULT_POWER_MODE_IDX1, // powerMode TCPIP_NETWORK_DEFAULT_INTERFACE_FLAGS_IDX1, // startFlags &TCPIP_NETWORK_DEFAULT_MAC_DRIVER_IDX1, // pMacObject }, };
mon problème, ce trouve à l'intermédiaire, c'est à dire mémoriser une chaine de caractère en flash interne pour la charger à l'initialisationCode:SYS_MODULE_OBJ TCPIP_STACK_Init() { TCPIP_STACK_INIT tcpipInit; tcpipInit.moduleInit.sys.powerState = SYS_MODULE_POWER_RUN_FULL; //tcpipInit.pNetConf = TCPIP_HOSTS_CONFIGURATION; tcpipInit.pNetConf = TCPIP_HOSTS_CONFIGURATION_NEW; tcpipInit.nNets = sizeof (TCPIP_HOSTS_CONFIGURATION) / sizeof (*TCPIP_HOSTS_CONFIGURATION); tcpipInit.pModConfig = TCPIP_STACK_MODULE_CONFIG_TBL; tcpipInit.nModules = sizeof (TCPIP_STACK_MODULE_CONFIG_TBL) / sizeof (*TCPIP_STACK_MODULE_CONFIG_TBL); return TCPIP_STACK_Initialize(0, &tcpipInit.moduleInit);
non seulement je souhaite comprendre comment sauver en flash à l'aide de quel fonction.
mais également sous quel forme, c'est à dire que je récupère bien ma nouvelle adresse ip modifier dans le buffer :httpDataBuff en faisant une boucle for je scan les caractères comme tel :
0x31,0x39,0x32,0x2E,0x31,0x36, 0x38,0x2E,0x31,0x31, 0x33,0x35,0x00
Une fois récupéré, comment les stocker en mémoire, comme tel ou je fais un tableau, genre
de manière à récupérer en mémoire des décimal ipaddr[4]={192,168,1,135}
Par contre après comment je balance ça dans rechargement de paramètre sachant que
c'est sous cette forme "192.168.1.135" dans la fonction
Merci pour votre aide qui m'est de plus en plus précieuse au vue du temps qu'il me reste (:Code:{ TCPIP_NETWORK_DEFAULT_INTERFACE_NAME_IDX1, // interface TCPIP_NETWORK_DEFAULT_HOST_NAME_IDX1, // hostName TCPIP_NETWORK_DEFAULT_MAC_ADDR_IDX1, // macAddr "192.168.1.136", // ipAddr TCPIP_NETWORK_DEFAULT_IP_MASK_IDX1, // ipMask TCPIP_NETWORK_DEFAULT_GATEWAY_IDX1, // gateway TCPIP_NETWORK_DEFAULT_DNS_IDX1, // priDNS TCPIP_NETWORK_DEFAULT_SECOND_DNS_IDX1, // secondDNS TCPIP_NETWORK_DEFAULT_POWER_MODE_IDX1, // powerMode TCPIP_NETWORK_DEFAULT_INTERFACE_FLAGS_IDX1, // startFlags &TCPIP_NETWORK_DEFAULT_MAC_DRIVER_IDX1, // pMacObject }, }
-----