void readrom() //read the serial { uchar sn1,sn2; dsreset(); delay(1); tmpwritebyte(0x33); sn1=tmpread(); sn2=tmpread(); }
//获取DS18B20温度值 uint tmp() { float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp<<=8; //two byte compose a int variable temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp; }
TIFILE_t* ImportVarData(FILE *infile, TIFILE_t *tifile, int varNumber) { switch (tifile->type) { case ROM_TYPE: return ImportROMFile(infile, tifile); case FLASH_TYPE: return ImportFlashFile(infile, tifile); case SAV_TYPE: tifile->save = ReadSave(infile); if (!tifile->save) return FreeTiFile(tifile); tifile->model = tifile->save->model; return tifile; } int i, tmp; unsigned short headersize; unsigned short length; unsigned char vartype, *ptr; if (varNumber == 0) { tmpread(infile); length2 = tmp; tmpread(infile); length2 += tmp << 8; } tmpread(infile); headersize = tmp; tmpread(infile); headersize += tmp << 8; tmpread(infile); length = tmp; tmpread(infile); length += tmp << 8; tmpread(infile); vartype = tmp; if ((tifile->model == TI_73 && vartype == 0x13) || (tifile->model == TI_82 && vartype == 0x0F) || (tifile->model == TI_85 && vartype == 0x1D)) { tifile->backup = (TIBACKUP_t *) malloc(sizeof(TIBACKUP_t)); if (tifile->backup == NULL) return FreeTiFile(tifile); tifile->backup->headersize = headersize; tifile->backup->length1 = length; tifile->backup->vartype = vartype; return ImportBackup(infile, tifile); } if (length2 > length + 17 || tifile->type == GROUP_TYPE) { tifile->type = GROUP_TYPE; length2 -= 0x39; } else { tifile->type = VAR_TYPE; } tifile->var = (TIVAR_t *) malloc(sizeof(TIVAR_t)); tifile->vars[varNumber] = tifile->var; if (tifile->var == NULL) return FreeTiFile(tifile); tifile->var->headersize = headersize; tifile->var->length = length; tifile->var->vartype = vartype; ptr = tifile->var->name; for(i = 0; i < 8 && !feof(infile); i++) { tmpread(infile); ptr[i] = tmp; } if (tifile->model == TI_83P) { tmp = fgetc(infile); if (tmp == EOF) { fclose(infile); FreeTiFile(tifile); return NULL; } ptr[i++] = tmp; tmp = fgetc(infile); if (tmp == EOF) return FreeTiFile(tifile); ptr[i++] =tmp; } else { ptr[i++] = 0; ptr[i++] = 0; } tmp = fgetc(infile); if (tmp == EOF) return FreeTiFile(tifile); ptr[i++] = tmp; tmp = fgetc(infile); if (tmp == EOF) return FreeTiFile(tifile); ptr[i++] = tmp; tifile->var->data = (unsigned char *) malloc(tifile->var->length); if (tifile->var->data == NULL) return FreeTiFile(tifile); i = 0; if (tifile->model == TI_86) fgetc(infile); for(i = 0; i < tifile->var->length && !feof(infile); i++) { tmp = fgetc(infile); if (tmp == EOF) return FreeTiFile(tifile); tifile->var->data[i] = tmp; } if (tifile->type == GROUP_TYPE) { if (varNumber != 0) return tifile; while (tifile != NULL) { length2 -= tifile->var->length + tifile->var->headersize; if (length2 < 0) break; tifile = ImportVarData(infile, tifile, ++varNumber); } } tifile->chksum = (fgetc(infile) & 0xFF) + ((fgetc(infile) & 0xFF) << 8 ); return tifile; }
TIFILE_t* ImportBackup(FILE *infile, TIFILE_t *tifile) { int i, tmp; tifile->backup->data1 = NULL; tifile->backup->data2 = NULL; tifile->backup->data3 = NULL; tmpread(infile); tifile->backup->length2 = tmp; tmpread(infile); tifile->backup->length2 += tmp << 8; tmpread(infile); tifile->backup->length3 = tmp; tmpread(infile); tifile->backup->length3 += tmp << 8; tmpread(infile); tifile->backup->address = tmp; tmpread(infile); tifile->backup->address += tmp << 8; tmpread(infile); tifile->backup->length1a = tmp; tmpread(infile); tifile->backup->length1a += tmp << 8; tifile->backup->data1 = (unsigned char *) malloc(tifile->backup->length1); if (tifile->backup->data1 == NULL) return FreeTiFile(tifile); for(i = 0; i < tifile->backup->length1 && !feof(infile); i++) { tmpread(infile); tifile->backup->data1[i] = tmp; } tmpread(infile); tifile->backup->length2a = tmp; tmpread(infile); tifile->backup->length2a += tmp << 8; tifile->backup->data2 = (unsigned char *) malloc(tifile->backup->length2); if (tifile->backup->data2 == NULL) return FreeTiFile(tifile); for(i = 0; i < tifile->backup->length2 && !feof(infile); i++) { tmpread(infile); tifile->backup->data2[i] =tmp; } tmpread(infile); tifile->backup->length3a = tmp; tmpread(infile); tifile->backup->length3a += tmp << 8; tifile->backup->data3 = (unsigned char *) malloc(tifile->backup->length3); if (tifile->backup->data3 == NULL) return FreeTiFile(tifile); for(i=0; i<tifile->backup->length3 && !feof(infile); i++) { tmpread(infile); tifile->backup->data3[i] = tmp; } tifile->chksum = (fgetc(infile) & 0xFF) + ((fgetc(infile) & 0xFF) << 8); tifile->type = BACKUP_TYPE; return tifile; }