/* BACnetCalendarEntry ::= CHOICE { date  Date, dateRange  BACnetDateRange, weekNDay  BacnetWeekNday }  */
static guint fCalendarEntry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
/* BACnetCalendarEntry ::= CHOICE { date  Date, dateRange  BACnetDateRange, weekNDay  BacnetWeekNday }  */
static guint fCalendarEntry(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
    guint8  tag_no, tag_info;
    guint32 lvt;
    switch (fTagNo(tvb, offset)) {
    case 0:
        offset = fDate(tvb, pinfo, tree, offset, "Date: ");
        break;
    case 1:
        offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
        offset  = fDateRange(tvb, pinfo, tree, offset);
        offset += fTagHeaderTree(tvb, pinfo, tree, offset, &tag_no, &tag_info, &lvt);
        break;
    case 2:
        offset = fWeekNDay(tvb, pinfo, tree, offset);
        break;
    default:
        return offset;
    }
    return offset;
}