code: def AddDigitalShortIdRecord(site_service, tag, time_value, value,
      status_string="OK              ", warn=False, chattering=False,
      unreliable=False, manual=False):
      
      # Define all required variables in the correct ctypes format
      szService = c_char_p(site_service.encode('utf-8'))
      szPointId = c_char_p(tag.encode('utf-8'))
      tTime = c_long(int(time_value))
      # TODO- check if the string is exactly 16 characters and convert
      szStatus = create_string_buffer(status_string.encode('utf-8'))
      bSet = c_int(int(value))
      bDigitalWarning = c_int(int(warn))
      bDigitalChattering = c_int(int(chattering))
      bUnreliable = c_int(int(unreliable))
      bManual = c_int(int(manual))
  
      # Try to push the data. Function will return 0 if successful.
      nRet = dnaserv_dll.DnaAddDigitalShortIdRecord(szService, szPointId,
                  tTime, bSet, szStatus, bDigitalWarning, bDigitalChattering,
                  bUnreliable, bManual)
      return nRet
docs: This function will add a digital value to the specified eDNA service and
      tag, including all default point status definitions.
  
      :param site_service: The site.service where data will be pushed
      :param tag: The eDNA tag to push data. Tag only (e.g. ADE1CA01)
      :param time_value: The time of the point, which MUST be in UTC Epoch
                  format. For example, "1483926416" not "2016/01/01 01:01:01".
      :param value: should be either TRUE or FALSE
      :param status_string: a string that must be EXACTLY 16 characters
      :param warn: TRUE if the point is in a warning state
      :param chattering: TRUE if the point is in a chattering state
      :param unreliable: TRUE if the point is in an unreliable state
      :param manual: TRUE if the point was manually set
      :return: 0, if the data push is successful