Skip to content

Commit ce688d8

Browse files
committed
feat(place/area_management): add desk checked in to summary
1 parent 25fc6fc commit ce688d8

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

drivers/place/area_management.cr

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class Place::AreaManagement < PlaceOS::Driver
6969
desk_usage: Int32,
7070
capacity: LevelCapacity,
7171
sensors: Hash(String, Float64),
72+
desk_checked_in: Int32,
7273
)
7374

7475
getter? campus : Bool = false
@@ -425,6 +426,7 @@ class Place::AreaManagement < PlaceOS::Driver
425426
wireless_count = 0
426427
desk_count = 0
427428
desk_bookings = 0
429+
desk_checked_in = 0
428430
xy_locs = locations.select do |loc|
429431
case loc["location"].as_s
430432
when "wireless"
@@ -436,7 +438,10 @@ class Place::AreaManagement < PlaceOS::Driver
436438
desk_count += 1 if (loc["at_location"]?.try(&.as_i?) || 0) > 0
437439
false
438440
when "booking"
439-
desk_bookings += 1 if loc["type"].as_s == "desk"
441+
if loc["type"].as_s == "desk"
442+
desk_bookings += 1
443+
desk_checked_in += 1 if loc["checked_in"]?.try(&.as_bool) == true
444+
end
440445
false
441446
else
442447
false
@@ -462,6 +467,7 @@ class Place::AreaManagement < PlaceOS::Driver
462467
desk_usage: desk_count,
463468
capacity: details,
464469
sensors: sensor_summary,
470+
desk_checked_in: desk_checked_in,
465471
}
466472

467473
# we need to know the map dimensions to be able to count people in areas
@@ -586,7 +592,7 @@ class Place::AreaManagement < PlaceOS::Driver
586592
area.polygon.contains(x, y)
587593
end
588594

589-
protected def build_level_stats(wireless_devices, desk_bookings, desk_usage, capacity, sensors)
595+
protected def build_level_stats(wireless_devices, desk_bookings, desk_usage, capacity, sensors, desk_checked_in)
590596
# raw data
591597
total_desks = capacity[:total_desks]
592598
total_capacity = capacity[:total_capacity]
@@ -607,8 +613,9 @@ class Place::AreaManagement < PlaceOS::Driver
607613
{
608614
"measurement" => "level_summary",
609615
"desk_count" => total_desks,
610-
"desk_bookings" => desk_bookings, # booked desks
611-
"desk_usage" => desk_usage, # sensor detected someone at a desk
616+
"desk_bookings" => desk_bookings, # booked desks
617+
"desk_checked_in" => desk_checked_in, # booked desks that were checked in
618+
"desk_usage" => desk_usage, # sensor detected someone at a desk
612619
"device_capacity" => total_capacity,
613620
"device_count" => wireless_devices,
614621
"estimated_people" => adjusted_devices.to_i,

drivers/place/area_management_spec.cr

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ DriverSpecs.mock_driver "Place::AreaCount" do
2222
exec(:is_inside?, 5, 3, "lobby1").get.should eq(true)
2323
exec(:is_inside?, 3.1, 5, "lobby1").get.should eq(true)
2424

25-
exec(:is_inside?, 3, 6, "lobby1").get.should eq(nil)
26-
exec(:is_inside?, 4, 6, "lobby1").get.should eq(nil)
27-
exec(:is_inside?, 4.6, 5.9, "lobby1").get.should eq(nil)
28-
exec(:is_inside?, 5.2, 5.4, "lobby1").get.should eq(nil)
29-
exec(:is_inside?, 5.5, 1.5, "lobby1").get.should eq(nil)
30-
exec(:is_inside?, 5.9, 2, "lobby1").get.should eq(nil)
25+
exec(:is_inside?, 3, 6, "lobby1").get.should eq(false)
26+
exec(:is_inside?, 4, 6, "lobby1").get.should eq(false)
27+
exec(:is_inside?, 4.6, 5.9, "lobby1").get.should eq(false)
28+
exec(:is_inside?, 5.2, 5.4, "lobby1").get.should eq(false)
29+
exec(:is_inside?, 5.5, 1.5, "lobby1").get.should eq(false)
30+
exec(:is_inside?, 5.9, 2, "lobby1").get.should eq(false)
3131
end

0 commit comments

Comments
 (0)