The AudioMoth-Chime library provide support to set the time and deployment ID of an AudioMoth using an acoustic tone. In both calls, it is also possible to set a location encoded as a floating point latitude and longitude.
The Kotlin Android library contains two classes that must be included in the app. They define AudioMothChime and AudioMothChimeConnector objects. The latter exposes three public functions:
fun playTone(duration: Int)
fun playTime(calendar: Calendar, latitude: Double, longitude: Double)
fun playTimeAndDeploymentID(calendar: Calendar, latitude: Double?, longitude: Double?, deploymentID: Array<Int>)Below is an example of their use:
val chimeButton: Button = findViewById(R.id.chimeButton)
val audioMothConnector = AudioMothChimeConnector()
chimeButton.setOnClickListener{
val calendar = Calendar.getInstance()
Thread {
audioMothConnector.playTime(calendar, null, null)
}.start()
}The Javascript library contains two classes that must be included in the webpage. They define the global AudioMothChime and AudioMothChimeConnector objects. The latter exposes three public functions:
playTone(duration, callback);
playTime(date, timezoneMinutes, latitude, longitude, callback);
playTimeAndDeploymentID(date, timezoneMinutes, deploymentID, latitude, longitude, callback);Here timezoneMinutes encodes the offset from UTC in minutes (such that UTC+1 is 60). If this value is null or undefined, then the local time zone offset is used. Below is an example of the use of these functions:
var audioMothChimeConnector = new AudioMothChimeConnector();
document.getElementById("chime_button").addEventListener("click", function () {
document.getElementById("chime_button").disabled = true;
var date = new Date();
audioMothChimeConnector.playTime(date, 0, null, null, function () {
document.getElementById("chime_button").disabled = false;
});
});The Swift iOS library contains two classes that must be included in the app. They define AudioMothChime and AudioMothChimeConnector objects. The latter exposes three public functions:
func playTone(duration: Int)
func playTime(date: Date, timezone: TimeZone, latitude: Double?, longitude: Double?)
func playTimeAndDeploymentID(date: Date, timezone: TimeZone, latitude: Double?, longitude: Double?, deploymentID: Array<Int>)Below is an example of their use:
Button(action: {
let date: Date = Date()
let timezone: TimeZone = TimeZone.current
audioMothChimeConnector.playTime(date: date, timezone: timezone, latitude: nil, longitude: nil)
}) {
Text("Play Chime")
}