I am trying to write a python script to play subsequent beeps at the end of a print so i can hear when it's done. I have already got it to show up in Cura (a feat on its own), and now I'm trying to make the script run like I want it to. Here is the script:
# SEEKMSMSMSM
# Script to play beeps
from typing import List, Dict
from ..Script import Script
import re
class Soundy(Script):
version = "1.0.0"
def getSettingDataString(self):
return """{
"name": "Soundy",
"key": "Soundy",
"metadata": {},
"version": 2,
"settings":
{
"startFreq":
{
"label": "Start Frequency",
"description": "The starting value of the sound.",
"type": "int",
"default_value": 300
},
"endFreq":
{
"label": "End Frequency",
"description": "The ending value of the sound.",
"type": "int",
"default_value": 800
},
"individualDuration":
{
"label": "Individual Sample Duration",
"description": "How long should each frequency between the range play?",
"type": "int",
"default_value": 1,
"minimum_value": 0.2,
"maximum_value": 20,
"maximum_value_warning": 15
}
}
}"""
def __init__(self):
super().__init__()
def execute(self, data):
StartFreq = self.getSettingValueByKey("startFreq")
EndFreq = self.getSettingValueByKey("endFreq")
ID = self.getSettingValueByKey("individualDuration")
sound = range(StartFreq,EndFreq)
Command = "M300"
for n in sound:
SoundCode = str(Command," P",ID," S",n,sep='')
for layer in data:
index = data.index(layer)
layer = layer + "\n" + SoundCode
data[index] = layer
return data
break
return data
The script shows up, shows the values I can edit, then when I check the Gcode, there's non of the commands I want (M300 P1 S500, for example)