Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: src/command.cpp
- Revision:
- 54:660af33fa930
- Parent:
- 37:1cbd51e24610
- Child:
- 55:0f5457bc4094
--- a/src/command.cpp Wed Nov 06 20:21:37 2019 +0000 +++ b/src/command.cpp Thu Nov 14 19:51:37 2019 +0000 @@ -114,6 +114,12 @@ double CURRENT_IN_5; double CURRENT_IN_6; +double CURRENT_48_CORRECTION0; +double CURRENT_48_CORRECTION1; +double CURRENT_48_CORRECTION2; +double CURRENT_48_CORRECTION3; +double CURRENT_48_CORRECTION4; +double CURRENT_48_CORRECTION5; double CURRENT_12_CORRECTION0; double CURRENT_12_CORRECTION1; double CURRENT_12_CORRECTION2; @@ -1001,7 +1007,117 @@ { if (section == 48) { - printf("Not yet implimented."); + if (Aloc == 0) + { + printf("Begin Voltage 48 current calibration? (Enter Scl=1 to continue)"); + Aloc = -1; + } + else if (Aloc == -1) + { + if (commandData == 1) + { + printf("Set current to smallest reference point(1/6). Enter actual current amount. (Ex. Scl=1.25)"); + Aloc = -2; + } else{ + printf("Calibration cancelled."); + Aloc = 0; + } + } + else if (Aloc == -2) + { + CURRENT_IN_1 = commandData; + adcValues adcVals = getADCresults(); + CURRENT_REF_1 = adcVals.i48; + printf("Increase input current. Enter new actual input current(2/6)."); + Aloc = -3; + } + else if (Aloc == -3) + { + CURRENT_IN_2 = commandData; + adcValues adcVals = getADCresults(); + CURRENT_REF_2 = adcVals.i48; + printf("Increase input current. Enter new actual input current(3/6)."); + Aloc = -4; + } + else if (Aloc == -4) + { + CURRENT_IN_3 = commandData; + adcValues adcVals = getADCresults(); + CURRENT_REF_3 = adcVals.i48; + printf("Increase input current. Enter new actual input current(4/6)."); + Aloc = -5; + } + else if (Aloc == -5) + { + CURRENT_IN_4 = commandData; + adcValues adcVals = getADCresults(); + CURRENT_REF_4 = adcVals.i48; + printf("Increase input current. Enter new actual input current(5/6)."); + Aloc = -6; + } + else if (Aloc == -6) + { + CURRENT_IN_5 = commandData; + adcValues adcVals = getADCresults(); + CURRENT_REF_5 = adcVals.i48; + printf("Increase input current. Enter new actual input current(6/6)."); + Aloc = -7; + } + else if (Aloc == -7) + { + CURRENT_IN_6 = commandData; + adcValues adcVals = getADCresults(); + CURRENT_REF_6 = adcVals.i48; + Aloc = 0; + sprintf(strbuf, " %f;%d;%d", CURRENT_12_OFFSET,CURRENT_12_DIV_THRESH5,CURRENT_12_DIV_THRESH1); + sendSerial(strbuf); + if ((CURRENT_REF_6 - CURRENT_48_OFFSET < 0 && CURRENT_REF_1 - CURRENT_48_OFFSET < 0 && CURRENT_REF_6 > CURRENT_REF_1) + || (CURRENT_REF_6 - CURRENT_48_OFFSET > 0 && CURRENT_REF_1 - CURRENT_48_OFFSET > 0 && CURRENT_REF_6 < CURRENT_REF_1)) + { + CURRENT_48_DIV_THRESH5 = CURRENT_REF_1-CURRENT_48_OFFSET; + CURRENT_48_DIV_THRESH4 = CURRENT_REF_2-CURRENT_48_OFFSET; + CURRENT_48_DIV_THRESH3 = CURRENT_REF_3-CURRENT_48_OFFSET; + CURRENT_48_DIV_THRESH2 = CURRENT_REF_4-CURRENT_48_OFFSET; + CURRENT_48_DIV_THRESH1 = CURRENT_REF_5-CURRENT_48_OFFSET; + CURRENT_48_DIV_FACTOR5 = (CURRENT_REF_1-CURRENT_48_OFFSET)/CURRENT_IN_1; + CURRENT_48_CORRECTION5 = ((CURRENT_REF_1-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR5)-CURRENT_IN_1; + CURRENT_48_DIV_FACTOR4 = (CURRENT_REF_2-CURRENT_REF_1)/(CURRENT_IN_2-CURRENT_IN_1); + CURRENT_48_CORRECTION4 = ((CURRENT_REF_2-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR4)-CURRENT_IN_2; + CURRENT_48_DIV_FACTOR3 = (CURRENT_REF_3-CURRENT_REF_2)/(CURRENT_IN_3-CURRENT_IN_2); + CURRENT_48_CORRECTION3 = ((CURRENT_REF_3-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR3)-CURRENT_IN_3; + CURRENT_48_DIV_FACTOR2 = (CURRENT_REF_4-CURRENT_REF_3)/(CURRENT_IN_4-CURRENT_IN_3); + CURRENT_48_CORRECTION2 = ((CURRENT_REF_4-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR2)-CURRENT_IN_4; + CURRENT_48_DIV_FACTOR1 = (CURRENT_REF_5-CURRENT_REF_4)/(CURRENT_IN_5-CURRENT_IN_4); + CURRENT_48_CORRECTION1 = ((CURRENT_REF_5-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR1)-CURRENT_IN_5; + CURRENT_48_DIV_FACTOR0 = (CURRENT_REF_6-CURRENT_REF_5)/(CURRENT_IN_6-CURRENT_IN_5); + CURRENT_48_CORRECTION0 = ((CURRENT_REF_6-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR0)-CURRENT_IN_6; + } + else if ((CURRENT_REF_6 - CURRENT_48_OFFSET < 0 && CURRENT_REF_1 - CURRENT_48_OFFSET < 0 && CURRENT_REF_6 < CURRENT_REF_1) + || (CURRENT_REF_6 - CURRENT_48_OFFSET > 0 && CURRENT_REF_1 - CURRENT_48_OFFSET > 0 && CURRENT_REF_6 > CURRENT_REF_1)) + { + CURRENT_48_DIV_THRESH5 = CURRENT_REF_5-CURRENT_48_OFFSET; + CURRENT_48_DIV_THRESH4 = CURRENT_REF_4-CURRENT_48_OFFSET; + CURRENT_48_DIV_THRESH3 = CURRENT_REF_3-CURRENT_48_OFFSET; + CURRENT_48_DIV_THRESH2 = CURRENT_REF_2-CURRENT_48_OFFSET; + CURRENT_48_DIV_THRESH1 = CURRENT_REF_1-CURRENT_48_OFFSET; + CURRENT_48_DIV_FACTOR0 = (CURRENT_REF_1-CURRENT_48_OFFSET)/CURRENT_IN_1; + CURRENT_48_CORRECTION0 = 0; + CURRENT_48_DIV_FACTOR1 = (CURRENT_REF_2-CURRENT_REF_1)/(CURRENT_IN_2-CURRENT_IN_1); + CURRENT_48_CORRECTION1 = ((CURRENT_REF_2-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR1)-CURRENT_IN_2; + CURRENT_48_DIV_FACTOR2 = (CURRENT_REF_3-CURRENT_REF_2)/(CURRENT_IN_3-CURRENT_IN_2); + CURRENT_48_CORRECTION2 = ((CURRENT_REF_3-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR2)-CURRENT_IN_3; + CURRENT_48_DIV_FACTOR3 = (CURRENT_REF_4-CURRENT_REF_3)/(CURRENT_IN_4-CURRENT_IN_3); + CURRENT_48_CORRECTION3 = ((CURRENT_REF_4-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR3)-CURRENT_IN_4; + CURRENT_48_DIV_FACTOR4 = (CURRENT_REF_5-CURRENT_REF_4)/(CURRENT_IN_5-CURRENT_IN_4); + CURRENT_48_CORRECTION4 = ((CURRENT_REF_5-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR4)-CURRENT_IN_5; + CURRENT_48_DIV_FACTOR5 = (CURRENT_REF_6-CURRENT_REF_5)/(CURRENT_IN_6-CURRENT_IN_5); + CURRENT_48_CORRECTION5 = ((CURRENT_REF_6-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR5)-CURRENT_IN_6; + } + sprintf(strbuf, " %f;%d;%d", CURRENT_48_OFFSET,CURRENT_48_DIV_THRESH5,CURRENT_48_DIV_THRESH1); + sendSerial(strbuf); + printf("\r\n48V current calibration completed.\r\n"); + //printf("%4.2f, %4.2f\r\n", VOLTAGE_48_ACTUAL_VALUE, VOLTAGE_48_OFFSET); + } } else if (section == 24) { @@ -1082,7 +1198,7 @@ CURRENT_12_DIV_THRESH2 = CURRENT_REF_4-CURRENT_12_OFFSET; CURRENT_12_DIV_THRESH1 = CURRENT_REF_5-CURRENT_12_OFFSET; CURRENT_12_DIV_FACTOR5 = (CURRENT_REF_1-CURRENT_12_OFFSET)/CURRENT_IN_1; - CURRENT_12_CORRECTION4 = ((CURRENT_REF_1-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR5)-CURRENT_IN_1; + CURRENT_12_CORRECTION5 = ((CURRENT_REF_1-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR5)-CURRENT_IN_1; CURRENT_12_DIV_FACTOR4 = (CURRENT_REF_2-CURRENT_REF_1)/(CURRENT_IN_2-CURRENT_IN_1); CURRENT_12_CORRECTION4 = ((CURRENT_REF_2-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR4)-CURRENT_IN_2; CURRENT_12_DIV_FACTOR3 = (CURRENT_REF_3-CURRENT_REF_2)/(CURRENT_IN_3-CURRENT_IN_2); @@ -1257,6 +1373,57 @@ sprintf(storoFrag, "%4.2f", VOLTAGE_12_OFFSET); strcat(storoBuild, storoFrag); strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_THRESH1); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_THRESH2); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_THRESH3); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_THRESH4); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_THRESH5); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_FACTOR0); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%4.2f", CURRENT_48_CORRECTION0); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_FACTOR1); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%4.2f", CURRENT_48_CORRECTION1); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_FACTOR2); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%4.2f", CURRENT_48_CORRECTION2); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_FACTOR3); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%4.2f", CURRENT_48_CORRECTION3); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_FACTOR4); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%4.2f", CURRENT_48_CORRECTION4); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%d", CURRENT_48_DIV_FACTOR5); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); + sprintf(storoFrag, "%4.2f", CURRENT_48_CORRECTION5); + strcat(storoBuild, storoFrag); + strcat(storoBuild, storoSpace); sprintf(storoFrag, "%d", CURRENT_12_DIV_THRESH1); strcat(storoBuild, storoFrag); strcat(storoBuild, storoSpace); @@ -1344,6 +1511,40 @@ ptr = strtok(NULL, delim); VOLTAGE_12_OFFSET = atof(ptr); ptr = strtok(NULL, delim); + CURRENT_48_DIV_THRESH1 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_THRESH2 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_THRESH3 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_THRESH4 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_THRESH5 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_FACTOR0 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_CORRECTION0 = atof(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_FACTOR1 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_CORRECTION1 = atof(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_FACTOR2 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_CORRECTION2 = atof(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_FACTOR3 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_CORRECTION3 = atof(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_FACTOR4 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_CORRECTION4 = atof(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_DIV_FACTOR5 = atoi(ptr); + ptr = strtok(NULL, delim); + CURRENT_48_CORRECTION5 = atof(ptr); + ptr = strtok(NULL, delim); CURRENT_12_DIV_THRESH1 = atoi(ptr); ptr = strtok(NULL, delim); CURRENT_12_DIV_THRESH2 = atoi(ptr);