haruzira_sdk 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/ruby
2
+ # -*- coding: utf-8 -*-
3
+ require "haruzira_sdk/HaruziraMessage"
4
+
5
+
6
+ # <summary>
7
+ # 通信開始要求メッセージ(0x00)
8
+ # </summary>
9
+ class MsgReqStartComm
10
+
11
+ def initialize()
12
+ #region 変数・定数定義
13
+ # <summary>
14
+ # メンバーIndex offset定義
15
+ # </summary>
16
+ @INDEX_ID = 0 #メッセージID
17
+ @INDEX_ENC_FLG = 1 #暗号化フラグ
18
+ @INDEX_CER_FLG = 2 #認証フラグ
19
+ @INDEX_PADDING = 3 #アライメント
20
+ @INDEX_PORT = 4 #ポート番号
21
+ @INDEX_NAME_LEN = 6 #接続元名称サイズ
22
+ @INDEX_PASSWD_LEN = 8 #パスワードサイズ
23
+ @INDEX_PADDING2 = 10 #アライメント
24
+ @INDEX_NAME = 12 #接続元名称
25
+ #endregion
26
+
27
+ # <summary>
28
+ # 送信メンバデータ値定義
29
+ # </summary>
30
+ #暗号化フラグ
31
+ @ENC_FLG_OFF = 0x00 #暗号化無
32
+ @ENC_FLG_ON = 0x01 #暗号化有
33
+ #認証フラグ
34
+ @CER_FLG_OFF = 0x00 #認証無
35
+ @CER_FLG_ON = 0x01 #認証有
36
+
37
+ @id = MSG_REQ_START_COMM #メッセージID
38
+ @enc_flg = 0x00 #暗号化フラグ
39
+ @cer_flg = 0x00 #認証フラグ
40
+ @padding = 0x00 #アライメント
41
+ @port = 46000 #ポート番号
42
+ @name_len = 0x00 #接続元名称サイズ
43
+ @passwd_len = 0x00 #パスワードサイズ
44
+ @padding2 = Array.new(2, 0x00) #アライメント
45
+ @name = nil #接続元名称
46
+ @passwd = nil #パスワード
47
+ #@byte[] reserve { get; set; } #予備
48
+ @head_len = (1 * 4) + (2 * 3) + @padding2.size #ヘッダーサイズ(読み上げデータを除いたサイズ)
49
+ @total_len = 0 #送信フィールド合計サイズ
50
+ end
51
+
52
+ #アクセサ定義(メンバーIndex offset)
53
+ attr_reader :INDEX_ID, :INDEX_ENC_FLG, :INDEX_CER_FLG, :INDEX_PADDING, :INDEX_PORT, :INDEX_NAME_LEN, :INDEX_PASSWD_LEN, :INDEX_PADDING2, :INDEX_NAME
54
+
55
+ #アクセサ定義(送信メンバデータ値)
56
+ attr_reader :ENC_FLG_OFF, :ENC_FLG_ON, :CER_FLG_OFF, :CER_FLG_ON
57
+
58
+ #アクセサ定義
59
+ attr_accessor :enc_flg, :cer_flg, :port, :name_len, :passwd_len, :name, :passwd
60
+ attr_reader :id, :head_len, :total_len
61
+
62
+ public
63
+ # <summary>
64
+ # 送信データ生成
65
+ # </summary>
66
+ # <returns>生成データサイズ, 生成データ</returns>
67
+ def makeSendData()
68
+ @total_len = @head_len + (@name_len + @passwd_len);
69
+ data = nil
70
+
71
+ begin
72
+ #パスワードとアカウント名のチェック
73
+ if(name_len > 0 && name == nil)
74
+ return ret, nil
75
+ end
76
+
77
+ if(passwd_len > 0 && passwd == nil)
78
+ return ret, nil
79
+ end
80
+
81
+ #ネットワークバイトオーダー(little -> big)変換後に、Byte配列に変換
82
+ bPort = [port].pack("n*").unpack("C*")
83
+ bUserLen = [name_len].pack("n*").unpack("C*")
84
+ bPasswdLen = [passwd_len].pack("n*").unpack("C*")
85
+
86
+ if(@name != nil && @passwd != nil)
87
+ data = [@id] + [@enc_flg] + [@cer_flg] + [@padding] + bPort + bUserLen + bPasswdLen + @padding2 + @name + @passwd
88
+ else
89
+ data = [@id] + [@enc_flg] + [@cer_flg] + [@padding] + bPort + bUserLen + bPasswdLen + @padding2
90
+ end
91
+
92
+ rescue Exception => ex
93
+ p ex
94
+ @total_len = 0
95
+ ensure
96
+ return @total_len, data
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/ruby
2
+ # -*- coding: utf-8 -*-
3
+ require "haruzira_sdk/HaruziraMessage"
4
+
5
+ # <summary>
6
+ # 読み上げデータ送信メッセージ(0x03)
7
+ # </summary>
8
+ class MsgSendSpeechData
9
+
10
+ def initialize()
11
+ #region 変数・定数定義
12
+ #メンバーIndex offset定義
13
+ @INDEX_ID = 0 #メッセージID
14
+ @INDEX_ENC_FLG = 1 #暗号化フラグ
15
+ @INDEX_DATA_TYPE = 2 #データ区分(Text or SSML)
16
+ @INDEX_PRIORITY = 3 #プライオリティ
17
+ @INDEX_LANG_CODE = 4 #ロケールID(言語コード)
18
+ @INDEX_GENDER = 6 #性別
19
+ @INDEX_AGE = 7 #年齢
20
+ @INDEX_REPEAT = 8 #リピート回数
21
+ @INDEX_TIME_STAMP = 9 #タイムスタンプ(00:00:00)
22
+ @INDEX_PADDING = 17 #アライメント
23
+ @INDEX_NAME_LEN = 18 #接続元名称サイズ
24
+ @INDEX_SIZE = 20 #読み上げデータサイズ
25
+ @INDEX_NAME = 24 #接続元名称(可変)
26
+
27
+ # <summary>
28
+ # 送信メンバデータ値定義
29
+ # </summary>
30
+ #暗号化フラグ
31
+ @ENC_FLG_OFF = 0x00 #暗号化無
32
+ @ENC_FLG_ON = 0x01 #暗号化有
33
+ #データ区分
34
+ @DATA_TYPE_TEXT = 0x00 #Text
35
+ @DATA_TYPE_SSML = 0x01 #SSML
36
+ @DATA_TYPE_TEXT_COMP = 0x10 #Text(圧縮データ)
37
+ @DATA_TYPE_SSML_COMP = 0x11 #SSML(圧縮データ)
38
+ #プライオリティ
39
+ @PRIORITY_LOW = 0x00 #低い(読み上げない)
40
+ @PRIORITY_NORMAL = 0x01 #通常(順次読み上げ)
41
+ @PRIORITY_HIGH = 0x02 #高い(割り込み読み上げ)
42
+ #@PRIORITY_EMARGENCY = 0x03 #緊急(最優先で割り込み読み上げ)
43
+ #言語コード
44
+ @LANG_LOW = 0x00 #
45
+ #性別
46
+ @GENDER_FEMALE = 0x00 #女性
47
+ @GENDER_MALE = 0x01 #男性
48
+ @GENDER_UNKNOWN = 0x02 #中性
49
+ #性別
50
+ #AGE_6 = 0x06 #6歳
51
+ #繰り返し回数
52
+ @REPEAT_NONE = 0x00 #繰り返し無
53
+ @REPEAT_INFINITY = 0xff #繰り返し無限
54
+
55
+ @id = MSG_SEND_SPEECH_DATA #メッセージID
56
+ @enc_flg = 0x00 #暗号化フラグ
57
+ @data_type = 0x00 #データ区分(Text or SSML)
58
+ @priority = 0x01 #プライオリティ
59
+ @lang_code = 0x00 #ロケールID(言語コード)
60
+ @gender = 0x00 #性別
61
+ @age = 0x00 #年齢
62
+ @repeat = 0x00 #リピート回数
63
+ @time_stamp = Array.new(8, 0x00) #タイムスタンプ(00:00:00)
64
+ @padding = 0x00 #アライメント
65
+ @name_len = 0x00 #接続元名称サイズ
66
+ @size = 0x00 #読み上げデータサイズ
67
+ @name = nil #接続元名称(可変)
68
+ @data = nil #データ(可変)
69
+ @head_len = (1 * 4) + (2 + 1 * 12) + (2 + 4) #ヘッダーサイズ(読み上げデータを除いたサイズ)
70
+ @total_len = 0 #送信フィールド合計サイズ
71
+ #endregion
72
+ end
73
+
74
+ #アクセサ定義(メンバーIndex offset)
75
+ attr_reader :INDEX_ID, :INDEX_ENC_FLG, :INDEX_DATA_TYPE, :INDEX_PRIORITY, :INDEX_LANG_CODE, :INDEX_LANG_CODE, \
76
+ :INDEX_GENDER, :INDEX_AGE, :INDEX_REPEAT, :INDEX_TIME_STAMP, :INDEX_PADDING, :INDEX_NAME_LEN, \
77
+ :INDEX_SIZE, :INDEX_NAME
78
+
79
+ #アクセサ定義(送信メンバデータ値)
80
+ attr_reader :ENC_FLG_OFF, :ENC_FLG_ON, :DATA_TYPE_TEXT, :DATA_TYPE_SSML, :DATA_TYPE_TEXT_COMP, :DATA_TYPE_SSML_COMP, \
81
+ :PRIORITY_LOW, :PRIORITY_NORMAL, :PRIORITY_HIGH, :LANG_LOW, :GENDER_FEMALE, :GENDER_MALE, \
82
+ :GENDER_UNKNOWN, :REPEAT_NONE, :REPEAT_INFINITY
83
+
84
+ #アクセサ定義
85
+ attr_accessor :enc_flg, :data_type, :priority, :lang_code, :gender, :age, :repeat, :time_stamp, :padding, \
86
+ :name_len, :size, :name, :data
87
+ attr_reader :id, :head_len, :total_len
88
+
89
+
90
+ # <summary>
91
+ # 送信データ生成
92
+ # </summary>
93
+ # <returns>生成データサイズ, 生成データ</returns>
94
+ def makeSendData()
95
+ @total_len = @head_len + @name_len + @size
96
+ mdata = nil
97
+
98
+ begin
99
+ #ネットワークバイトオーダー後に、Byte配列に変換
100
+ bLangCode = [@lang_code].pack("n*").unpack("C*")
101
+ bNameLen = [@name_len].pack("n*").unpack("C*")
102
+ bSize = [@size].pack("N*").unpack("C*")
103
+
104
+ if(@name != nil )
105
+ mdata = [@id] + [@enc_flg] + [@data_type] + [@priority] + bLangCode + [@gender] + [@age] + [@repeat] + \
106
+ @time_stamp + [@padding] + bNameLen + bSize + @name + @data
107
+ else
108
+ mdata = [@id] + [@enc_flg] + [@data_type] + [@priority] + bLangCode + [@gender] + [@age] + [@repeat] + \
109
+ @time_stamp + [@padding] + bNameLen + bSize + @data
110
+ end
111
+
112
+ rescue Exception => ex
113
+ p ex
114
+ @total_len = 0
115
+ ensure
116
+ return @total_len, mdata
117
+ end
118
+ end
119
+
120
+ end
@@ -0,0 +1,3 @@
1
+ module HaruziraSdk
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,6 @@
1
+ require "haruzira_sdk/version"
2
+ require "haruzira_sdk/HzClientTcpCommunication"
3
+
4
+ module HaruziraSdk
5
+ # Your code goes here...
6
+ end
metadata ADDED
@@ -0,0 +1,111 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: haruzira_sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Symmetry Soft
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-09-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: This gem is a SDK for Haruzira to text to remote speech.
56
+ email:
57
+ - git@symmetry-soft.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - ".gitignore"
63
+ - ".rspec"
64
+ - ".travis.yml"
65
+ - CODE_OF_CONDUCT.md
66
+ - Gemfile
67
+ - README.md
68
+ - Rakefile
69
+ - bin/console
70
+ - bin/setup
71
+ - haruzira_sdk.gemspec
72
+ - lib/haruzira_sdk.rb
73
+ - lib/haruzira_sdk/HaruziraMessage.rb
74
+ - lib/haruzira_sdk/HaruziraRequire.rb
75
+ - lib/haruzira_sdk/HzClientTcpCommunication.rb
76
+ - lib/haruzira_sdk/HzEncryption.rb
77
+ - lib/haruzira_sdk/HzTrace.rb
78
+ - lib/haruzira_sdk/MsgAckCancelReading.rb
79
+ - lib/haruzira_sdk/MsgAckSendSpeechData.rb
80
+ - lib/haruzira_sdk/MsgAckStartComm.rb
81
+ - lib/haruzira_sdk/MsgNotifyCompleteSpeech.rb
82
+ - lib/haruzira_sdk/MsgNotifyEndComm.rb
83
+ - lib/haruzira_sdk/MsgNotifyStopComm.rb
84
+ - lib/haruzira_sdk/MsgReqCancelReading.rb
85
+ - lib/haruzira_sdk/MsgReqStartComm.rb
86
+ - lib/haruzira_sdk/MsgSendSpeechData.rb
87
+ - lib/haruzira_sdk/version.rb
88
+ homepage: ''
89
+ licenses: []
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.6.6
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: SDK for Haruzira UWP application.
111
+ test_files: []