<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def getAnalogChannelData(self,ChNumber):
 """ Returns an array of numbers containing the data values of the channel number "ChNumber". ChNumber is the number of the channal as in .cfg file. """


        if not self.DatFileContent:
            print "No data file content. Use the method ReadDataFile first"
            return 0
        
        if (ChNumber > self.A):
            print "Channel number greater than the total number of channels."
            return 0
            
        # Fomating string for struct module:
        str_struct = "ii%dh" %(self.A + int(numpy.ceil((float(self.D)/float(16)))))
        # Number of bytes per sample:
        NB = 4 + 4 + self.A*2 + int(numpy.ceil((float(self.D)/float(16))))*2        
        # Number of samples:
        N = self.getNumberOfSamples()
        
        # Empty column vector:
        values = numpy.empty((N,1))

        ch_index = self.An.index(ChNumber)

        # Reading the values from DatFileContent string:
        for i in range(N):
            data = struct.unpack(str_struct,self.DatFileContent[i*NB:(i*NB)+NB])
            values[i] = data[ChNumber+1] # The first two number ar the sample index and timestamp

        values = values * self.a[ch_index] # a factor
        values = values + self.b[ch_index] # b factor
        
        return values