Skip to content
Sections de la documentation

Résoudre pour une valeur cible

POSThttps://rftools.io/api/py/v1/calculate/solve

Trouve la valeur d'une entrée du calculateur qui amène l'une de ses sorties à une cible (la largeur de piste qui donne 50 Ω, l'écart qui donne une impédance différentielle cible) et la renvoie avec le résultat direct calculé exactement à cette valeur. Un seul appel décompté remplace les appels directs qu'un client dépenserait autrement à chercher à la main.

Corps de la requête

SolveRequest
ChampDescription
slugobligatoirestringLe calculateur.
inputsobligatoireobject of numbersToutes les entrées sauf solveFor. Une valeur donnée pour solveFor n'est que le point de départ de la recherche, utilisé pour départager plusieurs solutions.
solveForobligatoirestringUne entrée numérique déclarée du calculateur.
target.outputobligatoirestringUne clé de sortie que renvoie le calculateur.
target.valueobligatoirenumberLa valeur que cette sortie doit atteindre.
gridnumberUne grille de fabrication positive ; la valeur renvoyée est arrondie à son multiple le plus proche dans la plage.
range[number, number]Resserre les bornes indiquées de solveFor ; obligatoire quand il n'en indique aucune.

Réponse

SolveResponse
ChampDescription
valuenumberLa valeur résolue, arrondie à grid lorsqu'une grille a été donnée.
unroundednumberLa solution exacte, avant l'arrondi à la grille.
reachedbooleanSi la cible a été atteinte ; false porte quand même la valeur la plus proche trouvée, pas une supposition.
evaluationsintegerLe nombre d'évaluations directes utilisées par la recherche.
warningsstring[]Les constats propres à la résolution : une autre solution dans la plage, ou une cible non atteinte.
resultobjectExactement ce que /calculate renvoie pour les entrées avec solveFor fixé à value : values, warnings, errors et provenance.
slug, solveFor, target, gridechoLes champs de la requête, tels que fournis ; grid vaut null quand aucune grille n'a été donnée.

Coût et solutions multiples

Coût

Un appel décompté, facturé comme /calculate après toutes les vérifications ci-dessous, et restitué si le service échoue ensuite. Une cible que la recherche ne peut pas atteindre reste un succès et est facturée, avec reached: false et la valeur la plus proche trouvée : l'appelant a demandé quelque chose que le service a fourni.

Plus d'une solution

Lorsque la sortie croise la cible plus d'une fois dans la plage, l'appel renvoie le croisement le plus proche de la valeur de départ (la valeur de l'appelant pour solveFor, sinon la valeur par défaut du calculateur) et ajoute un avertissement qui nomme l'autre.

Refus

Une requête impossible à résoudre est refusée avant toute facturation, et param nomme le champ en cause :

Refus de solve
StatutQuand
404Le slug du calculateur n'existe pas.
400solveFor n'est pas l'une des entrées numériques déclarées du calculateur (param: solveFor, avec allowed).
400target.output n'est pas l'une des sorties du calculateur (param: target.output, avec allowed).
400grid est fourni et n'est pas un nombre fini et positif, ou n'a aucun multiple dans la plage.
400Une valeur fournie (une entrée, target.value ou une borne de plage) n'est pas finie.
400solveFor n'a pas de borne indiquée et le corps ne fournit pas de range, ou la plage fournie sort des bornes indiquées ou est vide.
400Une entrée fixe dépasse une limite que le calculateur impose à sa propre durée d'exécution, comme pour /calculate.