docs: def getDigitalChannelData(self,ChNumber):
          """
          Returns an array of numbers (0 or 1) containing the values of the 
          digital channel status.
          
          ChNumber: digital channel number.
          """
  
          if not self.DatFileContent:
              print "No data file content. Use the method ReadDataFile first"
              return 0
              
          if (ChNumber > self.D):
              print "Digital channel number greater than the total number of channels."
              return 0
          
          # Fomating string for struct module:
          str_struct = "ii%dh%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))
          # Number of the 16 word where digital channal is. Every word contains
          # 16 digital channels:
          byte_number = int(numpy.ceil((ChNumber-1)/16)+1)
          # Value of the digital channel. Ex. channal 1 has value 2^0=1, channel
          # 2 has value 2^1 = 2, channel 3 => 2^2=4 and so on.
          digital_ch_value = (1<<(ChNumber-1-(byte_number-1)*16))
  
          # Reading the values from DatFileContent string:
          for i in range(N):
              data = struct.unpack(str_struct,self.DatFileContent[i*NB:(i*NB)+NB])
              # The first two number ar the sample index and timestamp.
              # And logic to extract only one channel from the 16 bit.
              # Normalize the output to 0 or 1 
              values[i] = (digital_ch_value & data[self.A+1+byte_number]) * 1/digital_ch_value 
          
          # Return the array.
          return values