Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C Language: Write a diagnostic code for the following code. And please tell me w

ID: 3865989 • Letter: C

Question

C Language: Write a diagnostic code for the following code. And please tell me what it will check for. This code does the following: its using 2 7 Segment LEDs

Hit Switch

Count Up

Hit Switch

Display Time

Hit Switch

Count Down from 99

Hit Switch

Display time

Hit Switch

Turn off display

The diagonistic code should check: All segement of the LEDs and or buttons to make sure they work fine.

#include
#include
#include
#include
#include "LabJackUD.h"
#include "LJUD_DynamicLinking.h"


void ErrorHandler (LJ_ERROR ljError, long lngLineNumber)
{
    char err[255];
    if (ljError != LJE_NOERROR)
    {
        ErrorToString(ljError, err);
        printf("Error # %ld: %s ", ljError, err);
        printf("Source line number = %ld ", lngLineNumber);
        if(ljError > LJE_MIN_GROUP_ERROR)
        {
            getchar();
            exit(0); // Quit if serious error
        }
    }
}


const int numbers[10][1] =
{
    // 1: segment lit, 0: segment unlit
    //           a b c d e f g
    {64},   //0 1, 1, 1, 1, 1, 1, 0 1000000
    {121}, //1 0, 1, 1, 0, 0, 0, 0 1111001
    {36},   //2 1, 1, 0, 1, 1, 0, 1 0100100
    {48},   //3 1, 1, 1, 1, 0, 0, 1 0110000
    {25},   //4 0, 1, 1, 0, 0, 1, 1 0011001
    {18},   //5 1, 0, 1, 1, 0, 1, 1 0010010
    {2},    //6 1, 0, 1, 1, 1, 1, 1 0000010
    {120}, //7 1, 1, 1, 0, 0, 0, 0 1111000
    {0},    //8 1, 1, 1, 1, 1, 1, 1 0000000
    {24}    //9 1, 1, 1, 0, 0, 1, 1 0011000
};


int i=0;
int j=0;
int k=0;
int l=0;
int m=0;
double ReadVal=1;
main()
{
    LJ_ERROR ljError; // LabJack error code
    LJ_HANDLE ljHandle = 0; // ID# assigned to the opened LabJack
    LoadLabJackUD(); // Load the LabJack DLL

// Open the first found LabJack U3
    ljError = OpenLabJack (LJ_dtU3, LJ_ctUSB, "1", 1, &ljHandle);
    ErrorHandler(ljError, __LINE__);

// Set all pin assignments to the factory default condition
    ljError = ePut(ljHandle, LJ_ioPIN_CONFIGURATION_RESET, 0, 0, 0);
    ErrorHandler(ljError, __LINE__);
    {
        while (ReadVal==1)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }

        while (ReadVal==0)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }

        while (m < 3300 && ReadVal==1)
        {
            i=k/330;
            j=l/33;

            if (j==10)
                l=0;


            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);
            Sleep(1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7);
            Sleep(1);
            k++;
            l++;
            m++;
        }

        while (ReadVal==0)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }
        while (ReadVal==1)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);
            Sleep(12);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7);
            Sleep(12);


        }

        while (ReadVal==0)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }

        m=3300;
        k=3300;
        l=330;
        while (ReadVal==1 && m > 0)
        {

            i=k/330;
            j=l/33;

            if (l==0)
                l=330;


            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);
            Sleep(1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7);
            Sleep(1);
            k--;
            l--;
            m--;
        }

        while (ReadVal==0)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }

        while (ReadVal==1)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);
            Sleep(12);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7);
            Sleep(12);
        }

        ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
        ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
        return 0;
    }
}

Explanation / Answer

#include
#include
#include
#include
#include "LabJackUD.h"
#include "LJUD_DynamicLinking.h"


void ErrorHandler (LJ_ERROR ljError, long lngLineNumber)
{
    char err[255];
    if (ljError != LJE_NOERROR)
    {
        ErrorToString(ljError, err);
        printf("Error # %ld: %s ", ljError, err);
        printf("Source line number = %ld ", lngLineNumber);
        if(ljError > LJE_MIN_GROUP_ERROR)
        {
            getchar();
            exit(0); // Quit if serious error
        }
    }
}


const int numbers[10][1] =
{
    // 1: segment lit, 0: segment unlit
    //           a b c d e f g
    {64},   //0 1, 1, 1, 1, 1, 1, 0 1000000
    {121}, //1 0, 1, 1, 0, 0, 0, 0 1111001
    {36},   //2 1, 1, 0, 1, 1, 0, 1 0100100
    {48},   //3 1, 1, 1, 1, 0, 0, 1 0110000
    {25},   //4 0, 1, 1, 0, 0, 1, 1 0011001
    {18},   //5 1, 0, 1, 1, 0, 1, 1 0010010
    {2},    //6 1, 0, 1, 1, 1, 1, 1 0000010
    {120}, //7 1, 1, 1, 0, 0, 0, 0 1111000
    {0},    //8 1, 1, 1, 1, 1, 1, 1 0000000
    {24}    //9 1, 1, 1, 0, 0, 1, 1 0011000
};


int i=0;
int j=0;
int k=0;
int l=0;
int m=0;
double ReadVal=1;
main()
{
    LJ_ERROR ljError; // LabJack error code
    LJ_HANDLE ljHandle = 0; // ID# assigned to the opened LabJack
    LoadLabJackUD(); // Load the LabJack DLL

// Open the first found LabJack U3
    ljError = OpenLabJack (LJ_dtU3, LJ_ctUSB, "1", 1, &ljHandle);
    ErrorHandler(ljError, __LINE__);

// Set all pin assignments to the factory default condition
    ljError = ePut(ljHandle, LJ_ioPIN_CONFIGURATION_RESET, 0, 0, 0);
    ErrorHandler(ljError, __LINE__);
    {
        while (ReadVal==1)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }

        while (ReadVal==0)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }

        while (m < 3300 && ReadVal==1)
        {
            i=k/330;
            j=l/33;

            if (j==10)
                l=0;


            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);
            Sleep(1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7);
            Sleep(1);
            k++;
            l++;
            m++;
        }

        while (ReadVal==0)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }
        while (ReadVal==1)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);
            Sleep(12);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7);
            Sleep(12);


        }

        while (ReadVal==0)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }

        m=3300;
        k=3300;
        l=330;
        while (ReadVal==1 && m > 0)
        {

            i=k/330;
            j=l/33;

            if (l==0)
                l=330;


            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);
            Sleep(1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7);
            Sleep(1);
            k--;
            l--;
            m--;
        }

        while (ReadVal==0)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
        }

        while (ReadVal==1)
        {
            ljError = eGet (ljHandle, LJ_ioGET_DIGITAL_BIT, 11, &ReadVal, 1);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);
            Sleep(12);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
            ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[j][0], 7);
            Sleep(12);
        }

        ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 0, 0);
        ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 0, 0);
        return 0;
    }
}