0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #include <stdio.h>
0026 #include <stdlib.h>
0027 #include <string.h>
0028 #include "tsdef.h"
0029 #include "tsconf.h"
0030 #if (client == MAC)
0031 #include <Connections.h>
0032 #endif
0033 #include "tsfonc.h"
0034 #include "tsmes.h"
0035 #include "tstype.h"
0036 #include "tsext.h"
0037
0038 #include "ceaf.h"
0039
0040
0041 #define erreur_valeur (Longint)113
0042 #define choc_pas_la (Longint)114
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069 Longint TSWdb(num_choc, nom_diagnostic, format_acq,
0070 nb_donnees, nom_donnees,
0071 long_coord, tab_coord,
0072 long_val, tab_val)
0073
0074 Longint num_choc;
0075 char *nom_diagnostic;
0076 char format_acq;
0077 short nb_donnees;
0078 char *nom_donnees[128];
0079 Longint long_coord;
0080 Longint *tab_coord;
0081 Longint long_val;
0082 char *tab_val;
0083
0084 {
0085 Longint CR = 0;
0086 Longint code_param;
0087 int i;
0088
0089 #if (client == MAC)
0090 ConnHandle NumSocket;
0091 #else
0092 int NumSocket;
0093 #endif
0094 short int CodeFonc;
0095 Longint Resultat;
0096
0097
0098
0099
0100 pS_Entree ptEntree;
0101 char date[TAILLE_DATE], heure[TAILLE_HEURE];
0102 Longint numv, nbcoord[5], certif[64];
0103
0104
0105
0106
0107 if (num_choc < 0) {
0108 code_param = p_numchoc;
0109 return (Gestion_Erreur(erreur_valeur,code_param));
0110 }
0111 if (nb_donnees<=0) {
0112 code_param = p_longueurs;
0113 return (Gestion_Erreur(erreur_tableau_vide,code_param));
0114 }
0115 if (nb_donnees >128 ) {
0116 code_param = p_nbmax;
0117 return (Gestion_Erreur(erreur_valeur,code_param));
0118 }
0119 if (long_coord<=0) {
0120 code_param = p_longnb;
0121 return (Gestion_Erreur(erreur_tableau_vide,code_param));
0122 }
0123 if (long_val<=0) {
0124 code_param = p_valnb;
0125 return (Gestion_Erreur(erreur_tableau_vide,code_param));
0126 }
0127
0128 if (nom_diagnostic==NULL) {
0129 code_param = p_nomdiag;
0130 return (Gestion_Erreur(erreur_chaine_vide,code_param));
0131 }
0132
0133 if (nom_donnees==NULL) {
0134 code_param = p_nomdon;
0135 return (Gestion_Erreur(erreur_tableau_vide,code_param));
0136 }
0137 if (tab_coord==NULL) {
0138 code_param = p_coord;
0139 return (Gestion_Erreur(erreur_tableau_vide,code_param));
0140 }
0141 if (tab_val==NULL) {
0142 code_param = p_tabval;
0143 return (Gestion_Erreur(erreur_tableau_vide,code_param));
0144 }
0145
0146
0147
0148
0149
0150 ptEntree = (pS_Entree) malloc (sizeof (struct S_Entree));
0151 ptEntree->union_var.lval = num_choc;
0152 ptEntree->ps_suivant = NULL;
0153
0154
0155
0156
0157
0158 if ((Resultat = Debut_Communication (&NumSocket, 1)) != ok)
0159 return Resultat;
0160
0161
0162
0163 CodeFonc = fonc_tswdb;
0164 if ((Resultat = Emission(NumSocket,(char *)&CodeFonc,taille_short,p_codefonc))
0165 != ok)
0166 return Resultat;
0167
0168
0169
0170
0171 if ((Resultat = Emission(NumSocket,(char *)&num_choc,taille_long,p_numchoc))
0172 != ok)
0173 return Resultat;
0174
0175 if ((Resultat = Emission(NumSocket,nom_diagnostic,TAILLE_NOM_DIAGNOSTIC,p_nomdiag))
0176 != ok)
0177 return Resultat;
0178
0179 if ((Resultat = Emission(NumSocket,&format_acq, 1, p_unite))
0180 != ok)
0181 return Resultat;
0182
0183 if (( Resultat = Emission(NumSocket,(char *)&nb_donnees,taille_short,p_longueurs))
0184 != ok)
0185 return Resultat;
0186
0187 for (i=0; iif (( Resultat = Emission(NumSocket,nom_donnees[i],TAILLE_NOM_DONNEE,p_nomdon))
0189 != ok)
0190 return Resultat;
0191 }
0192
0193 if (( Resultat = Emission(NumSocket,(char *)&long_coord,taille_long,p_longnb))
0194 != ok)
0195 return Resultat;
0196
0197 if (( Resultat = Emission(NumSocket,(char *)tab_coord,long_coord,p_coord))
0198 != ok)
0199 return Resultat;
0200
0201 if (( Resultat = Emission(NumSocket,(char *)&long_val,taille_long,p_valnb))
0202 != ok)
0203 return Resultat;
0204
0205 if (( Resultat = Emission(NumSocket,(char *)tab_val,long_val,p_tabval))
0206 != ok)
0207 return Resultat;
0208
0209
0210
0211 #if ((client!=PC) && (client !=MAC))
0212 if (( Resultat = Fin_Emission(NumSocket))
0213 == erreur_fin_emission)
0214 return Resultat;
0215 #endif
0216
0217
0218
0219 if (( Resultat = Reception(NumSocket,(char *)&CR,taille_long,p_cr))
0220 != ok)
0221 return Resultat;
0222
0223
0224
0225 Fin_Communication(NumSocket);
0226
0227 if (CR==305) printf (" TSWdb : trame de rang 0 interdite en ajout \n");
0228 else if (CR==307) printf (" TSWdb : Serveur_Choc n'a pas encore ecrit \n");
0229 return CR;
0230 }