BCEdge: SLO-Aware DNN Inference Services with Adaptive Batching on Edge Platforms