From: <cs-...@li...> - 2012-02-27 12:15:10
|
details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/2a25fea29648 changeset: 14129:2a25fea29648 user: Markus Moeller <mar...@de...> date: Mon Feb 27 12:30:21 2012 +0100 description: o.c.ams.delivery: Added method isTestMessage() to class BaseIncomingMessage. details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/8c168d92d920 changeset: 14130:8c168d92d920 user: Markus Moeller <mar...@de...> date: Mon Feb 27 12:31:39 2012 +0100 description: o.c.ams.delivery.sms: Changed the device (modem) check. Created an inner thread that does all the testing work. details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/162dc67364fe changeset: 14131:162dc67364fe user: Markus Moeller <mar...@de...> date: Mon Feb 27 13:11:59 2012 +0100 description: o.c.ams.delivery.sms: Small bug fix. details: http://cs-studio.hg.sourceforge.net/hgweb/cs-studio/cs-studio//hgroot/cs-studio/cs-studio/rev/897f66debab0 changeset: 14132:897f66debab0 user: Markus Moeller <mar...@de...> date: Mon Feb 27 13:14:41 2012 +0100 description: Merge to main diffstat: .hgtags | 2 + applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/IncomingSmsMessage.java | 59 + applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/ModemTestStatus.java | 4 - applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryDevice.java | 459 ++- applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryWorker.java | 162 +- applications/plugins/org.csstudio.ams.delivery/src/org/csstudio/ams/delivery/message/BaseIncomingMessage.java | 6 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/10_widgets.opi | 1368 +------- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/1_1_Start_Up.opi | 390 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/1_2_WidgetExamples.opi | 1465 +-------- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/2_OPI_Editor_Perspective.opi | 311 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/3_Use_OPI_Editor.opi | 440 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/4_Actions_1.opi | 609 +--- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/4_Actions_2.opi | 718 +---- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/5_1_Rules.opi | 330 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/5_2_Script.opi | 516 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/5_3_Rules_Script.opi | 572 +--- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/5_4_Python_Script.opi | 611 +--- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/5_5_FileIOWithScript.opi | 398 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/5_6_UseThreadInScript.opi | 266 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/6_1_ProbeOPI.opi | 539 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/6_Macro.opi | 502 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/7_Color_Font_Macro.opi | 470 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/8_2_PVWidgets_Properties.opi | 366 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/8_Widget_Properties.opi | 253 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/9_Display.opi | 216 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/main.opi | 541 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/1_1_Rectangle_Ellipse.opi | 318 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/1_2_Image.opi | 418 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/1_3_Label.opi | 291 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/1_4_Arc.opi | 308 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/1_5_Polyline_Polygon.opi | 1189 ------- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/1_6_Connection.opi | 467 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_1_LED.opi | 417 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_2_Text_Update.opi | 360 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_3_Gauge_Meter.opi | 609 +--- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_4_Tank_Thermo.opi | 923 +----- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_5_1_XY_Graph.opi | 436 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_5_2_XY_Graph.opi | 312 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_5_3_XY_Graph.opi | 345 -- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_5_4_XY_Graph.opi | 349 -- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_5_5_XY_Graph.opi | 979 ------ applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_6_1_IntensityGraph.opi | 261 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_6_2_IntensityGraph.opi | 699 ---- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_6_2_IntensityGraph_Javascript.opi | 437 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/2_6_3_IntensityGraph_Python.opi | 407 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_1_Action_Button.opi | 261 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_2_1_BoolButton_Switch.opi | 1117 +------ applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_2_2_BoolButton_Switch.opi | 1591 ---------- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_3_Menu_Button.opi | 558 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_4_Text_Input.opi | 525 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_5_Knob_Slider.opi | 1260 +------ applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_6_ChoiceWidgets.opi | 594 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_6_ComboBox.opi | 728 ---- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/3_7_ChoiceWidgets.opi | 882 ----- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/4_1_GroupingContainer.opi | 882 +---- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/4_2_2_LinkingContainer.opi | 376 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/4_2_LinkingContainer.opi | 674 +--- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/4_3_TabbedContainer.opi | 868 +----- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/4_4_WebBrowser.opi | 317 +- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/4_5_Table.opi | 489 +-- applications/plugins/org.csstudio.opibuilder.examples/examples/BOY Examples/widgets/5_1_GridLayout.opi | 422 +-- applications/plugins/org.csstudio.opibuilder.widgets/src/org/csstudio/opibuilder/widgets/editparts/AbstractPolyEditPart.java | 4 +- applications/plugins/org.csstudio.opibuilder.widgets/src/org/csstudio/opibuilder/widgets/editparts/LinkingContainerEditpart.java | 1 + applications/plugins/org.csstudio.opibuilder.widgets/src/org/csstudio/opibuilder/widgets/model/AbstractPolyModel.java | 42 +- applications/plugins/org.csstudio.opibuilder.widgets/src/org/csstudio/opibuilder/widgets/model/IntensityGraphModel.java | 1 + applications/plugins/org.csstudio.opibuilder.widgets/src/org/csstudio/opibuilder/widgets/model/LinkingContainerModel.java | 26 + applications/plugins/org.csstudio.opibuilder/html/script/Python.html | 2 +- applications/plugins/org.csstudio.opibuilder/src/org/csstudio/opibuilder/datadefinition/DisplayScaleData.java | 2 +- applications/plugins/org.csstudio.opibuilder/src/org/csstudio/opibuilder/model/AbstractWidgetModel.java | 6 +- applications/plugins/org.csstudio.swt.widgets/src/org/csstudio/swt/widgets/figures/GaugeFigure.java | 8 +- applications/plugins/org.csstudio.swt.widgets/src/org/csstudio/swt/widgets/figures/KnobFigure.java | 4 +- applications/plugins/org.csstudio.swt.widgets/src/org/csstudio/swt/widgets/figures/MeterFigure.java | 8 +- applications/plugins/org.csstudio.swt.widgets/src/org/csstudio/swt/widgets/util/PointsUtil.java | 219 + applications/plugins/org.csstudio.swt.widgets/src/org/csstudio/swt/widgets/util/RotationUtil.java | 203 - applications/plugins/org.csstudio.trends.databrowser2/preferences.ini | 2 +- core/plugins/org.csstudio.testsuite/kekTestConfiguration.ini | 9 + products/KEK/features/org.csstudio.kek.applications.feature/feature.xml | 1 - products/KEK/features/org.csstudio.kek.core.feature/feature.xml | 7 - products/KEK/plugins/org.csstudio.kek.build/CSSKEKTests.launch | 60 + products/KEK/plugins/org.csstudio.kek.build/gen_wrapper.sh | 8 +- products/KEK/plugins/org.csstudio.kek.build/index.html.template | 6 +- products/KEK/plugins/org.csstudio.kek.build/plugins.list | 1 - products/KEK/plugins/org.csstudio.kek.product/META-INF/MANIFEST.MF | 17 +- products/KEK/plugins/org.csstudio.kek.product/css-kek.product | 12 +- products/KEK/plugins/org.csstudio.kek.product/icons/aboutSide.png | 0 products/KEK/plugins/org.csstudio.kek.product/icons/css.icns | 0 products/KEK/plugins/org.csstudio.kek.product/icons/css.ico | 0 products/KEK/plugins/org.csstudio.kek.product/icons/css128.png | 0 products/KEK/plugins/org.csstudio.kek.product/icons/css16.png | 0 products/KEK/plugins/org.csstudio.kek.product/icons/css32.png | 0 products/KEK/plugins/org.csstudio.kek.product/icons/css48.png | 0 products/KEK/plugins/org.csstudio.kek.product/icons/css48.xpm | 54 + products/KEK/plugins/org.csstudio.kek.product/icons/css64.png | 0 products/KEK/plugins/org.csstudio.kek.product/icons/project_close.png | 0 products/KEK/plugins/org.csstudio.kek.product/icons/project_open.png | 0 products/KEK/plugins/org.csstudio.kek.product/plugin.xml | 23 +- products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/login/DummyLoginModule.java | 25 - products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/Activator.java | 21 +- products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/ApplicationWorkbenchAdvisor.java | 90 + products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/ApplicationWorkbenchWindowAdvisor.java | 63 + products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/CSS_Perspective.java | 68 + products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/Messages.java | 31 + products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/PasswordInput.java | 99 + products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/StartupParameters.java | 249 + products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/Workbench.java | 166 + products/KEK/plugins/org.csstudio.kek.product/src/org/csstudio/kek/product/messages.properties | 6 + products/SNS/plugins/org.csstudio.scan.client/test/org/csstudio/scan/client/ScanClientDemo.java | 13 +- products/SNS/plugins/org.csstudio.scan.custom/src/org/csstudio/scan/command/CommentCommand.java | 2 +- products/SNS/plugins/org.csstudio.scan.server/src/org/csstudio/scan/server/internal/Scan.java | 1 + products/SNS/plugins/org.csstudio.scan.ui.plot/test/org/csstudio/scan/ui/plot/PlotDataModelHeadlessTest.java | 156 + products/SNS/plugins/org.csstudio.scan.ui.plot/test/org/csstudio/scan/ui/plot/PlotDataModelUnitTest.java | 156 - products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/icons/abort.gif | 0 products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/icons/pause.gif | 0 products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/icons/resume.gif | 0 products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/actions/AbortAction.java | 3 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/actions/AbstractGUIAction.java | 10 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/actions/InfoAction.java | 3 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/actions/PauseAction.java | 5 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/actions/RemoveAction.java | 3 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/actions/RemoveCompletedAction.java | 3 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/actions/ResumeAction.java | 5 +- products/SNS/plugins/org.csstudio.scan.ui.scanmonitor/src/org/csstudio/scan/ui/scanmonitor/actions/ShowDevicesAction.java | 3 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/CommandTreeLabelProvider.java | 27 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/Messages.java | 8 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/OpenScanTreeAction.java | 67 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/ScanEditor.java | 277 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/ScanEditorContributor.java | 13 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/ScanTreeGUI.java | 67 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/messages.properties | 8 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/src/org/csstudio/scan/ui/scantree/properties/OptionListCellEditor.java | 23 +- products/SNS/plugins/org.csstudio.scan.ui.scantree/test/org/csstudio/scan/ui/scantree/ScanTreeGUIDemo.java | 2 + products/SNS/plugins/org.csstudio.scan.ui/.classpath | 1 - products/SNS/plugins/org.csstudio.scan.ui/build.properties | 3 +- products/SNS/plugins/org.csstudio.scan.ui/icons/abort.gif | 0 products/SNS/plugins/org.csstudio.scan.ui/icons/pause.gif | 0 products/SNS/plugins/org.csstudio.scan.ui/icons/resume.gif | 0 products/SNS/plugins/org.csstudio.scan/examples/ml_example.m | 2 +- products/SNS/plugins/org.csstudio.scan/examples/scan_client.py | 2 +- products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/TODO.java | 2 + products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/command/DelayCommand.java | 2 +- products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/command/LogCommand.java | 2 +- products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/command/LoopCommand.java | 2 +- products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/command/ScanCommand.java | 5 +- products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/command/SetCommand.java | 2 +- products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/command/WaitCommand.java | 2 +- products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/server/ScanInfo.java | 18 +- products/SNS/plugins/org.csstudio.scan/src/org/csstudio/scan/server/ScanState.java | 38 +- 147 files changed, 5797 insertions(+), 29325 deletions(-) diffs (truncated from 57062 to 300 lines): diff -r 7848472f4519 -r 897f66debab0 .hgtags --- a/.hgtags Fri Feb 24 16:08:36 2012 +0100 +++ b/.hgtags Mon Feb 27 13:14:41 2012 +0100 @@ -40,3 +40,5 @@ e6fcf928a84b55734cf4610832c738daffc714b4 DESY_3.1.0 44e70272b6de0332ec9b0bed1041c21701525b10 DESY_3.1.0 963693518e1d423299e3dd13e3f877411ee1e7e4 CSS Core 3.1.0 +ebd99693fd1d1e5d6bb1c2aeb2d00f8063ee3f5a KEK_3.1.0 + diff -r 7848472f4519 -r 897f66debab0 applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/IncomingSmsMessage.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/IncomingSmsMessage.java Mon Feb 27 13:14:41 2012 +0100 @@ -0,0 +1,59 @@ + +/* + * Copyright (c) 2012 Stiftung Deutsches Elektronen-Synchrotron, + * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY. + * + * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS. + * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED + * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND + * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE + * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR + * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. + * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, + * OR MODIFICATIONS. + * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION, + * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS + * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY + * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM + * + * $Id: DesyKrykCodeTemplates.xml,v 1.7 2010/04/20 11:43:22 bknerr Exp $ + */ + +package org.csstudio.ams.delivery.sms; + +import org.csstudio.ams.delivery.message.BaseIncomingMessage; +import org.smslib.InboundMessage; + +/** + * @author mmoeller + * @version 1.0 + * @since 27.02.2012 + */ +public class IncomingSmsMessage extends BaseIncomingMessage { + + public IncomingSmsMessage(Object origMessage) { + super(origMessage); + } + + public InboundMessage getInboundMessage() { + InboundMessage result = null; + if (getOriginalMessage() instanceof InboundMessage) { + result = (InboundMessage) getOriginalMessage(); + } + return result; + } + + @Override + public boolean isTestAnswer() { + boolean testAnswer = false; + if (getInboundMessage() != null) { + String text = getInboundMessage().getText().trim(); + testAnswer = text.startsWith("[MODEMTEST{"); + } + return testAnswer; + } +} \ No newline at end of file diff -r 7848472f4519 -r 897f66debab0 applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/ModemTestStatus.java --- a/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/ModemTestStatus.java Fri Feb 24 16:08:36 2012 +0100 +++ b/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/ModemTestStatus.java Mon Feb 27 13:14:41 2012 +0100 @@ -90,10 +90,6 @@ } } - public boolean isTestAnswer(final String text) { - return text.startsWith("[MODEMTEST{"); - } - public void setDeviceTestMessageContent(final DeviceTestMessageContent o) { initiatorMessage = o; } diff -r 7848472f4519 -r 897f66debab0 applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryDevice.java --- a/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryDevice.java Fri Feb 24 16:08:36 2012 +0100 +++ b/applications/plugins/org.csstudio.ams.delivery.sms/src/org/csstudio/ams/delivery/sms/SmsDeliveryDevice.java Mon Feb 27 13:14:41 2012 +0100 @@ -27,15 +27,18 @@ import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.List; + import javax.jms.JMSException; import javax.jms.MapMessage; + import org.csstudio.ams.AmsActivator; import org.csstudio.ams.delivery.device.DeviceListener; import org.csstudio.ams.delivery.device.DeviceObject; import org.csstudio.ams.delivery.device.IDeliveryDevice; import org.csstudio.ams.delivery.device.IReadableDevice; import org.csstudio.ams.delivery.message.BaseAlarmMessage.State; -import org.csstudio.ams.delivery.message.BaseIncomingMessage; import org.csstudio.ams.delivery.service.Environment; import org.csstudio.ams.delivery.sms.internal.SmsConnectorPreferenceKey; import org.csstudio.ams.delivery.util.jms.JmsProperties; @@ -48,12 +51,13 @@ import org.slf4j.LoggerFactory; import org.smslib.AGateway; import org.smslib.IInboundMessageNotification; +import org.smslib.InboundBinaryMessage; import org.smslib.InboundMessage; import org.smslib.InboundMessage.MessageClasses; +import org.smslib.Message.MessageEncodings; +import org.smslib.Message.MessageTypes; import org.smslib.OutboundMessage; import org.smslib.Service; -import org.smslib.Message.MessageEncodings; -import org.smslib.Message.MessageTypes; import org.smslib.modem.SerialModemGateway; /** @@ -67,102 +71,119 @@ /** The static class logger */ private static final Logger LOG = LoggerFactory.getLogger(SmsDeliveryDevice.class); - + + static Logger getLogger() { + return LOG; + } + private static final int MAX_MODEM_NUMBER = 3; - + /** Text for the test SMS */ private static final String SMS_TEST_TEXT = "[MODEMTEST{$CHECKID,$GATEWAYID}]"; - private JmsProperties jmsProps; - + private final JmsProperties jmsProps; + private Service modemService; - + /** This class contains all modem ids (names) */ - private ModemInfoContainer modemInfo; + private final ModemInfoContainer modemInfo; - private DeviceListener listener; - + /** This listener is informed if a inbound message has been receibved. */ + private final List<DeviceListener> listener; + + /** Status information of the current modem test */ + private final ModemTestStatus testStatus; + /** Reading period (in ms) for the modem */ - private long readWaitingPeriod; + private final long readWaitingPeriod; - public SmsDeliveryDevice(ModemInfoContainer deviceInfo, JmsProperties jms) { + public SmsDeliveryDevice(final ModemInfoContainer deviceInfo, final JmsProperties jms, final long readInterval) { modemService = null; modemInfo = deviceInfo; jmsProps = jms; + listener = Collections.synchronizedList(new ArrayList<DeviceListener>()); + testStatus = new ModemTestStatus(); + readWaitingPeriod = readInterval; initModem(); } - - public void setDeviceListener(DeviceListener l) { - listener = l; + + public void addDeviceListener(final DeviceListener l) { + listener.add(l); } - - public void removeDeviceListener() { - listener = null; + + public void removeDeviceListener(final DeviceListener l) { + listener.remove(l); } - + + protected Service getDeviceService() { + return modemService; + } + @Override public void process(final AGateway gateway, final MessageTypes msgType, final InboundMessage msg) { + final Object[] param = { msg.getText(), msg.getOriginator(), gateway.getGatewayId() }; LOG.info("Incoming message: {} from phone number {} received by gateway {}", param); - final BaseIncomingMessage inMsg = new BaseIncomingMessage(msg); - if (listener != null) { - listener.onIncomingMessage(new DeviceObject(this, inMsg)); + + final IncomingSmsMessage inMsg = new IncomingSmsMessage(msg); + for (final DeviceListener o : listener) { + o.onIncomingMessage(new DeviceObject(this, inMsg)); } - + if (deleteMessage(msg)) { LOG.info("Message has been deleted."); } else { LOG.warn("Message CANNOT be deleted."); } } - - public void setInboundMessageNotification(IInboundMessageNotification notification) { + + public void setInboundMessageListener(final IInboundMessageNotification notification) { modemService.setInboundMessageNotification(notification); } - + @Override - public boolean deleteMessage(InboundMessage message) { + public boolean deleteMessage(final InboundMessage message) { boolean success = false; try { success = modemService.deleteMessage(message); - } catch (Exception e) { + } catch (final Exception e) { LOG.error("[*** " + e.getClass().getSimpleName() + " ***]: " + e.getMessage()); } return success; } - + @Override public int sendMessages(final Collection<SmsAlarmMessage> msgList) { int sent = 0; - for (SmsAlarmMessage o : msgList) { + for (final SmsAlarmMessage o : msgList) { if (sendMessage(o)) { sent++; } } return sent; } - + @Override - public boolean sendMessage(SmsAlarmMessage message) { - + public boolean sendMessage(final SmsAlarmMessage message) { + boolean success = false; - - OutboundMessage msg = new OutboundMessage(message.getReceiverAddress(), message.getMessageText()); + + final OutboundMessage msg = new OutboundMessage(message.getReceiverAddress(), message.getMessageText()); msg.setEncoding(MessageEncodings.ENC7BIT); // Changed by Markus Moeller, 2009-01-30 // To avoid restarts of the modems // msg.setStatusReport(true); msg.setStatusReport(false); msg.setValidityPeriod(8); - + // Total number of outbound messages since restart - int totalOutBefore = modemService.getOutboundMessageCount(); - + final int totalOutBefore = modemService.getOutboundMessageCount(); + // TODO: Eventuell die Liste aller Modems und ihre Zustände ausgeben try { LOG.info("Try to send SMS..."); modemService.sendMessage(msg); - int totalOutAfter = modemService.getOutboundMessageCount(); + final int totalOutAfter = modemService.getOutboundMessageCount(); if (totalOutBefore < totalOutAfter) { LOG.info("SMS sent to: '{}' with text: '{}'", message.getReceiverAddress(), message.getMessageText()); message.setMessageState(State.SENT); @@ -178,69 +199,38 @@ } } LOG.info("Number of sent SMS: {}", totalOutAfter); - } catch(Exception e) { + } catch(final Exception e) { LOG.error("[*** {} ***]: Could not send message: {}", e.getClass().getSimpleName(), e.getMessage()); } return success; } - public void sendDeviceTestMessage(ModemTestStatus testStatus) { - - OutboundMessage outMsg = null; - String name = null; - String number = null; |