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

The following is a code for a labjack 7 segment countdown or count up in languag

ID: 3860543 • Letter: T

Question

The following is a code for a labjack 7 segment countdown or count up in language C. Please write write a diagnostic code for it in C

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<stdbool.h>
#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); ]
}
}
}


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;

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__);
{


    for (i=0; i<10; i++)
        {
        //printf("i%d", i);
        //ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
        //ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);

            for (j=0; j<10; j++)
               {
                //ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
                //ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 9, numbers[j][0], 7);
                //printf("loop");


                    for (k=0; k<33; k++)
                    {
                        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(5);
                        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(5);
                    }
               }
        }
    return 0;
}
}

Explanation / Answer

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<stdbool.h>
#include "LabJackUD.h"
#include "LJUD_DynamicLinking.h"

int i=0;
int j=0;
int k=0;

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__);
{


    for (i=0; i<10; i++)
        {
        //printf("i%d", i);
        //ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 8, 1, 0);
        //ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 0, numbers[i][0], 7);

            for (j=0; j<10; j++)
               {
                //ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_BIT, 7, 1, 0);
                //ljError = ePut(ljHandle, LJ_ioPUT_DIGITAL_PORT, 9, numbers[j][0], 7);
                //printf("loop");


                    for (k=0; k<33; k++)
                    {
                        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(5);
                        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(5);
                    }
               }
        }
    return 0;
}
}

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); ]
}
}
}


const int numbers[10][1] = {

{64},   
{121},
{36},   
{48},   
{25},
{18},
{2},
{120},
{0},   
{24}
};